001 package net.minecraft.src; 002 003 import java.util.Random; 004 005 public class WorldGeneratorBonusChest extends WorldGenerator 006 { 007 private final WeightedRandomChestContent[] field_76546_a; 008 private final int field_76545_b; 009 010 public WorldGeneratorBonusChest(WeightedRandomChestContent[] par1ArrayOfWeightedRandomChestContent, int par2) 011 { 012 this.field_76546_a = par1ArrayOfWeightedRandomChestContent; 013 this.field_76545_b = par2; 014 } 015 016 public boolean generate(World par1World, Random par2Random, int par3, int par4, int par5) 017 { 018 int var12; 019 020 for (boolean var6 = false; ((var12 = par1World.getBlockId(par3, par4, par5)) == 0 || var12 == Block.leaves.blockID) && par4 > 1; --par4) 021 { 022 ; 023 } 024 025 if (par4 < 1) 026 { 027 return false; 028 } 029 else 030 { 031 ++par4; 032 033 for (int var7 = 0; var7 < 4; ++var7) 034 { 035 int var8 = par3 + par2Random.nextInt(4) - par2Random.nextInt(4); 036 int var9 = par4 + par2Random.nextInt(3) - par2Random.nextInt(3); 037 int var10 = par5 + par2Random.nextInt(4) - par2Random.nextInt(4); 038 039 if (par1World.isAirBlock(var8, var9, var10) && par1World.doesBlockHaveSolidTopSurface(var8, var9 - 1, var10)) 040 { 041 par1World.setBlockWithNotify(var8, var9, var10, Block.chest.blockID); 042 TileEntityChest var11 = (TileEntityChest)par1World.getBlockTileEntity(var8, var9, var10); 043 044 if (var11 != null && var11 != null) 045 { 046 WeightedRandomChestContent.func_76293_a(par2Random, this.field_76546_a, var11, this.field_76545_b); 047 } 048 049 if (par1World.isAirBlock(var8 - 1, var9, var10) && par1World.doesBlockHaveSolidTopSurface(var8 - 1, var9 - 1, var10)) 050 { 051 par1World.setBlockWithNotify(var8 - 1, var9, var10, Block.torchWood.blockID); 052 } 053 054 if (par1World.isAirBlock(var8 + 1, var9, var10) && par1World.doesBlockHaveSolidTopSurface(var8 - 1, var9 - 1, var10)) 055 { 056 par1World.setBlockWithNotify(var8 + 1, var9, var10, Block.torchWood.blockID); 057 } 058 059 if (par1World.isAirBlock(var8, var9, var10 - 1) && par1World.doesBlockHaveSolidTopSurface(var8 - 1, var9 - 1, var10)) 060 { 061 par1World.setBlockWithNotify(var8, var9, var10 - 1, Block.torchWood.blockID); 062 } 063 064 if (par1World.isAirBlock(var8, var9, var10 + 1) && par1World.doesBlockHaveSolidTopSurface(var8 - 1, var9 - 1, var10)) 065 { 066 par1World.setBlockWithNotify(var8, var9, var10 + 1, Block.torchWood.blockID); 067 } 068 069 return true; 070 } 071 } 072 073 return false; 074 } 075 } 076 }