package net.minecraft.server; import java.util.Random; public class WorldGenGroundBush extends WorldGenTrees { private final IBlockData a; private final IBlockData b; public WorldGenGroundBush(IBlockData iblockdata, IBlockData iblockdata1) { super(false); this.b = iblockdata; this.a = iblockdata1; } public boolean generate(World world, Random random, BlockPosition blockposition) { for (IBlockData iblockdata = world.getType(blockposition); (iblockdata.getMaterial() == Material.AIR || iblockdata.getMaterial() == Material.LEAVES) && blockposition.getY() > 0; iblockdata = world.getType(blockposition)) { blockposition = blockposition.down(); } Block block = world.getType(blockposition).getBlock(); if (block == Blocks.DIRT || block == Blocks.GRASS) { blockposition = blockposition.up(); this.a(world, blockposition, this.b); for (int i = blockposition.getY(); i <= blockposition.getY() + 2; ++i) { int j = i - blockposition.getY(); int k = 2 - j; for (int l = blockposition.getX() - k; l <= blockposition.getX() + k; ++l) { int i1 = l - blockposition.getX(); for (int j1 = blockposition.getZ() - k; j1 <= blockposition.getZ() + k; ++j1) { int k1 = j1 - blockposition.getZ(); if (Math.abs(i1) != k || Math.abs(k1) != k || random.nextInt(2) != 0) { BlockPosition blockposition1 = new BlockPosition(l, i, j1); Material material = world.getType(blockposition1).getMaterial(); if (material == Material.AIR || material == Material.LEAVES) { this.a(world, blockposition1, this.a); } } } } } // CraftBukkit start - Return false if gen was unsuccessful } else { return false; } // CraftBukkit end return true; } }