--- ../src_base/common/net/minecraft/src/WorldGenShrub.java +++ ../src_work/common/net/minecraft/src/WorldGenShrub.java @@ -17,10 +17,16 @@ { int var15; - for (boolean var6 = false; ((var15 = par1World.getBlockId(par3, par4, par5)) == 0 || var15 == Block.leaves.blockID) && par4 > 0; --par4) + Block block = null; + do { - ; - } + block = Block.blocksList[par1World.getBlockId(par3, par4, par5)]; + if (block != null && !block.isLeaves(par1World, par3, par4, par5)) + { + break; + } + par4--; + } while (par4 > 0); int var7 = par1World.getBlockId(par3, par4, par5); @@ -42,7 +48,10 @@ { int var14 = var13 - par5; - if ((Math.abs(var12) != var10 || Math.abs(var14) != var10 || par2Random.nextInt(2) != 0) && !Block.opaqueCubeLookup[par1World.getBlockId(var11, var8, var13)]) + block = Block.blocksList[par1World.getBlockId(var11, var8, var13)]; + + if ((Math.abs(var12) != var10 || Math.abs(var14) != var10 || par2Random.nextInt(2) != 0) && + (block == null || block.canBeReplacedByLeaves(par1World, var11, var8, var13))) { this.setBlockAndMetadata(par1World, var11, var8, var13, Block.leaves.blockID, this.field_76527_a); }