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