    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}