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