001    package net.minecraft.src;
002    
003    import java.util.Random;
004    
005    public class WorldGenLiquids extends WorldGenerator
006    {
007        /** The ID of the liquid block used in this liquid generator. */
008        private int liquidBlockId;
009    
010        public WorldGenLiquids(int par1)
011        {
012            this.liquidBlockId = par1;
013        }
014    
015        public boolean generate(World par1World, Random par2Random, int par3, int par4, int par5)
016        {
017            if (par1World.getBlockId(par3, par4 + 1, par5) != Block.stone.blockID)
018            {
019                return false;
020            }
021            else if (par1World.getBlockId(par3, par4 - 1, par5) != Block.stone.blockID)
022            {
023                return false;
024            }
025            else if (par1World.getBlockId(par3, par4, par5) != 0 && par1World.getBlockId(par3, par4, par5) != Block.stone.blockID)
026            {
027                return false;
028            }
029            else
030            {
031                int var6 = 0;
032    
033                if (par1World.getBlockId(par3 - 1, par4, par5) == Block.stone.blockID)
034                {
035                    ++var6;
036                }
037    
038                if (par1World.getBlockId(par3 + 1, par4, par5) == Block.stone.blockID)
039                {
040                    ++var6;
041                }
042    
043                if (par1World.getBlockId(par3, par4, par5 - 1) == Block.stone.blockID)
044                {
045                    ++var6;
046                }
047    
048                if (par1World.getBlockId(par3, par4, par5 + 1) == Block.stone.blockID)
049                {
050                    ++var6;
051                }
052    
053                int var7 = 0;
054    
055                if (par1World.isAirBlock(par3 - 1, par4, par5))
056                {
057                    ++var7;
058                }
059    
060                if (par1World.isAirBlock(par3 + 1, par4, par5))
061                {
062                    ++var7;
063                }
064    
065                if (par1World.isAirBlock(par3, par4, par5 - 1))
066                {
067                    ++var7;
068                }
069    
070                if (par1World.isAirBlock(par3, par4, par5 + 1))
071                {
072                    ++var7;
073                }
074    
075                if (var6 == 3 && var7 == 1)
076                {
077                    par1World.setBlockWithNotify(par3, par4, par5, this.liquidBlockId);
078                    par1World.scheduledUpdatesAreImmediate = true;
079                    Block.blocksList[this.liquidBlockId].updateTick(par1World, par3, par4, par5, par2Random);
080                    par1World.scheduledUpdatesAreImmediate = false;
081                }
082    
083                return true;
084            }
085        }
086    }