001    package net.minecraft.src;
002    
003    import java.util.Random;
004    
005    public class WorldGenTallGrass extends WorldGenerator
006    {
007        /** Stores ID for WorldGenTallGrass */
008        private int tallGrassID;
009        private int tallGrassMetadata;
010    
011        public WorldGenTallGrass(int par1, int par2)
012        {
013            this.tallGrassID = par1;
014            this.tallGrassMetadata = par2;
015        }
016    
017        public boolean generate(World par1World, Random par2Random, int par3, int par4, int par5)
018        {
019            int var11;
020    
021            Block block = null;
022            do 
023            {
024                block = Block.blocksList[par1World.getBlockId(par3,  par4, par5)];
025                if (block != null && !block.isLeaves(par1World, par3, par4, par5))
026                {
027                    break;
028                }
029                par4--;
030            } while (par4 > 0);
031    
032            for (int var7 = 0; var7 < 128; ++var7)
033            {
034                int var8 = par3 + par2Random.nextInt(8) - par2Random.nextInt(8);
035                int var9 = par4 + par2Random.nextInt(4) - par2Random.nextInt(4);
036                int var10 = par5 + par2Random.nextInt(8) - par2Random.nextInt(8);
037    
038                if (par1World.isAirBlock(var8, var9, var10) && Block.blocksList[this.tallGrassID].canBlockStay(par1World, var8, var9, var10))
039                {
040                    par1World.setBlockAndMetadata(var8, var9, var10, this.tallGrassID, this.tallGrassMetadata);
041                }
042            }
043    
044            return true;
045        }
046    }