package me.tyler15555.minibosses.common;
import java.util.Random;
import me.tyler15555.minibosses.block.MBBlocks;
import me.tyler15555.minibosses.util.WorldGenHelper;
import net.minecraft.init.Blocks;
import net.minecraft.init.Items;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.tileentity.TileEntityChest;
import net.minecraft.util.BlockPos;
import net.minecraft.util.MathHelper;
import net.minecraft.world.World;
import net.minecraft.world.chunk.IChunkProvider;
import net.minecraftforge.fml.common.IWorldGenerator;
public class MBWorldGenerator implements IWorldGenerator {
public MBWorldGenerator() {
}
@Override
public void generate(Random random, int chunkX, int chunkZ, World world, IChunkProvider chunkGenerator, IChunkProvider chunkProvider) {
switch(world.provider.getDimensionId()) {
case 0:
generateSurface(world, chunkX, chunkZ, random);
break;
default:
return;
}
}
private void generateSurface(World world, int chunkX, int chunkZ, Random random) {
int posX = chunkX + random.nextInt(16);
int posY = random.nextInt(128);
int posZ = random.nextInt(16) + chunkZ;
if(random.nextInt(100) >= 75) { //All these are here to try to make the structures much much much rarer. These numbers may need some tweaking
if(random.nextInt(100) >= 80) {
if(random.nextInt(100) >= 85) {
if(random.nextBoolean()) {
if(world.getBlockState(new BlockPos(posX, posY, posZ)) == Blocks.stone.getDefaultState()) {
WorldGenHelper.generateSolidCube(world, posX, posY, posZ, MBBlocks.cryptStone, 8, 8, 8);
world.setBlockState(new BlockPos(posX + 4, posY + 4, posZ + 4), Blocks.chest.getDefaultState());
TileEntityChest chest = (TileEntityChest) world.getTileEntity(new BlockPos(posX + 4, posY + 4, posZ + 4));
if(chest != null) { //So we don't crash the game if another structure overwrites the chest
Item[] possibleLoot = new Item[] {Items.diamond, Items.gold_ingot, Items.iron_ingot, Items.emerald, Items.bone, Items.coal, Items.rotten_flesh, Items.carrot, Items.golden_apple};
for(int i = 0; i < MathHelper.getRandomIntegerInRange(random, 1, 9); i++) {
chest.setInventorySlotContents(i, new ItemStack(possibleLoot[random.nextInt(possibleLoot.length)], MathHelper.getRandomIntegerInRange(random, 1, 5)));
}
}
System.out.println("Generated Tomb at: " + posX + " " + posY + " " + posZ);
} else {
return;
}
}
}
}
}
}
}