001package net.minecraft.world.gen.feature;
002
003import java.util.Random;
004import net.minecraft.block.Block;
005import net.minecraft.world.World;
006
007public 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}