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