protected BiomeGenBase(int par1)
 {
     TopBlock                   = (byte)Block.Grass.BlockID;
     FillerBlock                = (byte)Block.Dirt.BlockID;
     Field_6502_q               = 0x4ee031;
     MinHeight                  = 0.1F;
     MaxHeight                  = 0.3F;
     Temperature                = 0.5F;
     Rainfall                   = 0.5F;
     WaterColorMultiplier       = 0xffffff;
     SpawnableMonsterList       = new List <SpawnListEntry>();
     SpawnableCreatureList      = new List <SpawnListEntry>();
     SpawnableWaterCreatureList = new List <SpawnListEntry>();
     EnableRain                 = true;
     WorldGenTrees              = new WorldGenTrees(false);
     WorldGenBigTree            = new WorldGenBigTree(false);
     WorldGenForest             = new WorldGenForest(false);
     WorldGenSwamp              = new WorldGenSwamp();
     BiomeID         = par1;
     BiomeList[par1] = this;
     BiomeDecorator  = CreateBiomeDecorator();
     SpawnableCreatureList.Add(new SpawnListEntry(typeof(net.minecraft.src.EntitySheep), 12, 4, 4));
     SpawnableCreatureList.Add(new SpawnListEntry(typeof(net.minecraft.src.EntityPig), 10, 4, 4));
     SpawnableCreatureList.Add(new SpawnListEntry(typeof(net.minecraft.src.EntityChicken), 10, 4, 4));
     SpawnableCreatureList.Add(new SpawnListEntry(typeof(net.minecraft.src.EntityCow), 8, 4, 4));
     SpawnableMonsterList.Add(new SpawnListEntry(typeof(net.minecraft.src.EntitySpider), 10, 4, 4));
     SpawnableMonsterList.Add(new SpawnListEntry(typeof(net.minecraft.src.EntityZombie), 10, 4, 4));
     SpawnableMonsterList.Add(new SpawnListEntry(typeof(net.minecraft.src.EntitySkeleton), 10, 4, 4));
     SpawnableMonsterList.Add(new SpawnListEntry(typeof(net.minecraft.src.EntityCreeper), 10, 4, 4));
     SpawnableMonsterList.Add(new SpawnListEntry(typeof(net.minecraft.src.EntitySlime), 10, 4, 4));
     SpawnableMonsterList.Add(new SpawnListEntry(typeof(net.minecraft.src.EntityEnderman), 1, 1, 4));
     SpawnableWaterCreatureList.Add(new SpawnListEntry(typeof(net.minecraft.src.EntitySquid), 10, 4, 4));
 }
        /// <summary>
        /// Attempts to grow a sapling into a tree
        /// </summary>
        public virtual void GrowTree(World par1World, int par2, int par3, int par4, Random par5Random)
        {
            int    i    = par1World.GetBlockMetadata(par2, par3, par4) & 3;
            object obj  = null;
            int    j    = 0;
            int    k    = 0;
            bool   flag = false;

            if (i == 1)
            {
                obj = new WorldGenTaiga2(true);
            }
            else if (i == 2)
            {
                obj = new WorldGenForest(true);
            }
            else if (i == 3)
            {
                j = 0;

                do
                {
                    if (j < -1)
                    {
                        break;
                    }

                    k = 0;

                    do
                    {
                        if (k < -1)
                        {
                            break;
                        }

                        if (Func_50076_f(par1World, par2 + j, par3, par4 + k, 3) && Func_50076_f(par1World, par2 + j + 1, par3, par4 + k, 3) && Func_50076_f(par1World, par2 + j, par3, par4 + k + 1, 3) && Func_50076_f(par1World, par2 + j + 1, par3, par4 + k + 1, 3))
                        {
                            obj  = new WorldGenHugeTrees(true, 10 + par5Random.Next(20), 3, 3);
                            flag = true;
                            break;
                        }

                        k--;
                    }while (true);

                    if (obj != null)
                    {
                        break;
                    }

                    j--;
                }while (true);

                if (obj == null)
                {
                    j   = k = 0;
                    obj = new WorldGenTrees(true, 4 + par5Random.Next(7), 3, 3, false);
                }
            }
            else
            {
                obj = new WorldGenTrees(true);

                if (par5Random.Next(10) == 0)
                {
                    obj = new WorldGenBigTree(true);
                }
            }

            if (flag)
            {
                par1World.SetBlock(par2 + j, par3, par4 + k, 0);
                par1World.SetBlock(par2 + j + 1, par3, par4 + k, 0);
                par1World.SetBlock(par2 + j, par3, par4 + k + 1, 0);
                par1World.SetBlock(par2 + j + 1, par3, par4 + k + 1, 0);
            }
            else
            {
                par1World.SetBlock(par2, par3, par4, 0);
            }

            if (!((WorldGenerator)(obj)).Generate(par1World, par5Random, par2 + j, par3, par4 + k))
            {
                if (flag)
                {
                    par1World.SetBlockAndMetadata(par2 + j, par3, par4 + k, BlockID, i);
                    par1World.SetBlockAndMetadata(par2 + j + 1, par3, par4 + k, BlockID, i);
                    par1World.SetBlockAndMetadata(par2 + j, par3, par4 + k + 1, BlockID, i);
                    par1World.SetBlockAndMetadata(par2 + j + 1, par3, par4 + k + 1, BlockID, i);
                }
                else
                {
                    par1World.SetBlockAndMetadata(par2, par3, par4, BlockID, i);
                }
            }
        }