package net.minecraft.world.gen.feature; import java.util.Random; import net.minecraft.block.Block; import net.minecraft.tileentity.TileEntityChest; import net.minecraft.util.WeightedRandomChestContent; import net.minecraft.world.World; public class WorldGeneratorBonusChest extends WorldGenerator { /** * Instance of WeightedRandomChestContent what will randomly generate items into the Bonus Chest. */ private final WeightedRandomChestContent[] theBonusChestGenerator; /** * Value of this int will determine how much items gonna generate in Bonus Chest. */ private final int itemsToGenerateInBonusChest; public WorldGeneratorBonusChest(WeightedRandomChestContent[] par1ArrayOfWeightedRandomChestContent, int par2) { this.theBonusChestGenerator = par1ArrayOfWeightedRandomChestContent; this.itemsToGenerateInBonusChest = par2; } public boolean generate(World par1World, Random par2Random, int par3, int par4, int par5) { int var12; for (boolean var6 = false; ((var12 = par1World.getBlockId(par3, par4, par5)) == 0 || var12 == Block.leaves.blockID) && par4 > 1; --par4) { ; } if (par4 < 1) { return false; } else { ++par4; for (int var7 = 0; var7 < 4; ++var7) { int var8 = par3 + par2Random.nextInt(4) - par2Random.nextInt(4); int var9 = par4 + par2Random.nextInt(3) - par2Random.nextInt(3); int var10 = par5 + par2Random.nextInt(4) - par2Random.nextInt(4); if (par1World.isAirBlock(var8, var9, var10) && par1World.doesBlockHaveSolidTopSurface(var8, var9 - 1, var10)) { par1World.setBlockWithNotify(var8, var9, var10, Block.chest.blockID); TileEntityChest var11 = (TileEntityChest)par1World.getBlockTileEntity(var8, var9, var10); if (var11 != null && var11 != null) { WeightedRandomChestContent.generateChestContents(par2Random, this.theBonusChestGenerator, var11, this.itemsToGenerateInBonusChest); } if (par1World.isAirBlock(var8 - 1, var9, var10) && par1World.doesBlockHaveSolidTopSurface(var8 - 1, var9 - 1, var10)) { par1World.setBlockWithNotify(var8 - 1, var9, var10, Block.torchWood.blockID); } if (par1World.isAirBlock(var8 + 1, var9, var10) && par1World.doesBlockHaveSolidTopSurface(var8 - 1, var9 - 1, var10)) { par1World.setBlockWithNotify(var8 + 1, var9, var10, Block.torchWood.blockID); } if (par1World.isAirBlock(var8, var9, var10 - 1) && par1World.doesBlockHaveSolidTopSurface(var8 - 1, var9 - 1, var10)) { par1World.setBlockWithNotify(var8, var9, var10 - 1, Block.torchWood.blockID); } if (par1World.isAirBlock(var8, var9, var10 + 1) && par1World.doesBlockHaveSolidTopSurface(var8 - 1, var9 - 1, var10)) { par1World.setBlockWithNotify(var8, var9, var10 + 1, Block.torchWood.blockID); } return true; } } return false; } } }