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 }