001    package net.minecraft.src;
002    
003    import java.util.Random;
004    
005    public class WorldGenSand extends WorldGenerator
006    {
007        /** Stores ID for WorldGenSand */
008        private int sandID;
009    
010        /** The maximum radius used when generating a patch of blocks. */
011        private int radius;
012    
013        public WorldGenSand(int par1, int par2)
014        {
015            this.sandID = par2;
016            this.radius = par1;
017        }
018    
019        public boolean generate(World par1World, Random par2Random, int par3, int par4, int par5)
020        {
021            if (par1World.getBlockMaterial(par3, par4, par5) != Material.water)
022            {
023                return false;
024            }
025            else
026            {
027                int var6 = par2Random.nextInt(this.radius - 2) + 2;
028                byte var7 = 2;
029    
030                for (int var8 = par3 - var6; var8 <= par3 + var6; ++var8)
031                {
032                    for (int var9 = par5 - var6; var9 <= par5 + var6; ++var9)
033                    {
034                        int var10 = var8 - par3;
035                        int var11 = var9 - par5;
036    
037                        if (var10 * var10 + var11 * var11 <= var6 * var6)
038                        {
039                            for (int var12 = par4 - var7; var12 <= par4 + var7; ++var12)
040                            {
041                                int var13 = par1World.getBlockId(var8, var12, var9);
042    
043                                if (var13 == Block.dirt.blockID || var13 == Block.grass.blockID)
044                                {
045                                    par1World.setBlock(var8, var12, var9, this.sandID);
046                                }
047                            }
048                        }
049                    }
050                }
051    
052                return true;
053            }
054        }
055    }