Beispiel #1
0
 public WorldChunkManagerHell(net.minecraft.src.BiomeGenBase biomegenbase, double
                              d, double d1)
 {
     // Referenced classes of package net.minecraft.src:
     //            WorldChunkManager, BiomeGenBase, ChunkCoordIntPair
     field_4262_e = biomegenbase;
     field_4261_f = d;
     field_4260_g = d1;
 }
        public virtual net.minecraft.src.BiomeGenBase[] LoadBlockGeneratorData(net.minecraft.src.BiomeGenBase
                                                                               [] abiomegenbase, int i, int j, int k, int l)
        {
            if (abiomegenbase == null || abiomegenbase.Length < k * l)
            {
                abiomegenbase = new net.minecraft.src.BiomeGenBase[k * l];
            }
            temperature  = field_4255_e.Func_4101_a(temperature, i, j, k, k, 0.02500000037252903D, 0.02500000037252903D, 0.25D);
            humidity     = field_4254_f.Func_4101_a(humidity, i, j, k, k, 0.05000000074505806D, 0.05000000074505806D, 0.33333333333333331D);
            field_4257_c = field_4253_g.Func_4101_a(field_4257_c, i, j, k, k, 0.25D, 0.25D, 0.58823529411764708D);
            int i1 = 0;

            for (int j1 = 0; j1 < k; j1++)
            {
                for (int k1 = 0; k1 < l; k1++)
                {
                    double d  = field_4257_c[i1] * 1.1000000000000001D + 0.5D;
                    double d1 = 0.01D;
                    double d2 = 1.0D - d1;
                    double d3 = (temperature[i1] * 0.14999999999999999D + 0.69999999999999996D) * d2
                                + d * d1;
                    d1 = 0.002D;
                    d2 = 1.0D - d1;
                    double d4 = (humidity[i1] * 0.14999999999999999D + 0.5D) * d2 + d * d1;
                    d3 = 1.0D - (1.0D - d3) * (1.0D - d3);
                    if (d3 < 0.0D)
                    {
                        d3 = 0.0D;
                    }
                    if (d4 < 0.0D)
                    {
                        d4 = 0.0D;
                    }
                    if (d3 > 1.0D)
                    {
                        d3 = 1.0D;
                    }
                    if (d4 > 1.0D)
                    {
                        d4 = 1.0D;
                    }
                    temperature[i1]     = d3;
                    humidity[i1]        = d4;
                    abiomegenbase[i1++] = net.minecraft.src.BiomeGenBase.GetBiomeFromLookup(d3, d4);
                }
            }
            return(abiomegenbase);
        }
Beispiel #3
0
 public override net.minecraft.src.BiomeGenBase[] LoadBlockGeneratorData(net.minecraft.src.BiomeGenBase
                                                                         [] abiomegenbase, int i, int j, int k, int l)
 {
     if (abiomegenbase == null || abiomegenbase.Length < k * l)
     {
         abiomegenbase = new net.minecraft.src.BiomeGenBase[k * l];
     }
     if (temperature == null || temperature.Length < k * l)
     {
         temperature = new double[k * l];
         humidity    = new double[k * l];
     }
     SharpBukkitLive.SharpBukkit.SharpUtils.ArrayFill(abiomegenbase, 0, k * l, field_4262_e);
     SharpBukkitLive.SharpBukkit.SharpUtils.ArrayFill(humidity, 0, k * l, field_4260_g);
     SharpBukkitLive.SharpBukkit.SharpUtils.ArrayFill(temperature, 0, k * l, field_4261_f);
     return(abiomegenbase);
 }
Beispiel #4
0
        public virtual void Populate(net.minecraft.src.IChunkProvider ichunkprovider, int
                                     i, int j)
        {
            net.minecraft.src.BlockSand.fallInstantly = true;
            int k = i * 16;
            int l = j * 16;

            net.minecraft.src.BiomeGenBase biomegenbase = worldObj.GetWorldChunkManager().GetBiomeGenAt
                                                              (k + 16, l + 16);
            rand.SetSeed(worldObj.GetSeed());
            long l1 = (rand.NextLong() / 2L) * 2L + 1L;
            long l2 = (rand.NextLong() / 2L) * 2L + 1L;

            rand.SetSeed((long)i * l1 + (long)j * l2 ^ worldObj.GetSeed());
            double d = 0.25D;

            if (rand.Next(4) == 0)
            {
                int i1 = k + rand.Next(16) + 8;
                int l4 = rand.Next(128);
                int i8 = l + rand.Next(16) + 8;
                (new net.minecraft.src.WorldGenLakes(net.minecraft.src.Block.STATIONARY_WATER.ID))
                .Generate(worldObj, rand, i1, l4, i8);
            }
            if (rand.Next(8) == 0)
            {
                int j1 = k + rand.Next(16) + 8;
                int i5 = rand.Next(rand.Next(120) + 8);
                int j8 = l + rand.Next(16) + 8;
                if (i5 < 64 || rand.Next(10) == 0)
                {
                    (new net.minecraft.src.WorldGenLakes(net.minecraft.src.Block.STATIONARY_LAVA.ID)).
                    Generate(worldObj, rand, j1, i5, j8);
                }
            }
            for (int k1 = 0; k1 < 8; k1++)
            {
                int j5  = k + rand.Next(16) + 8;
                int k8  = rand.Next(128);
                int j11 = l + rand.Next(16) + 8;
                (new net.minecraft.src.WorldGenDungeons()).Generate(worldObj, rand, j5, k8, j11);
            }
            for (int i2 = 0; i2 < 10; i2++)
            {
                int k5  = k + rand.Next(16);
                int l8  = rand.Next(128);
                int k11 = l + rand.Next(16);
                (new net.minecraft.src.WorldGenClay(32)).Generate(worldObj, rand, k5, l8, k11);
            }
            for (int j2 = 0; j2 < 20; j2++)
            {
                int l5  = k + rand.Next(16);
                int i9  = rand.Next(128);
                int l11 = l + rand.Next(16);
                (new net.minecraft.src.WorldGenMinable(net.minecraft.src.Block.DIRT.ID, 32))
                .Generate(worldObj, rand, l5, i9, l11);
            }
            for (int k2 = 0; k2 < 10; k2++)
            {
                int i6  = k + rand.Next(16);
                int j9  = rand.Next(128);
                int i12 = l + rand.Next(16);
                (new net.minecraft.src.WorldGenMinable(net.minecraft.src.Block.GRAVEL.ID, 32
                                                       )).Generate(worldObj, rand, i6, j9, i12);
            }
            for (int i3 = 0; i3 < 20; i3++)
            {
                int j6  = k + rand.Next(16);
                int k9  = rand.Next(128);
                int j12 = l + rand.Next(16);
                (new net.minecraft.src.WorldGenMinable(net.minecraft.src.Block.COAL_ORE.ID, 16
                                                       )).Generate(worldObj, rand, j6, k9, j12);
            }
            for (int j3 = 0; j3 < 20; j3++)
            {
                int k6  = k + rand.Next(16);
                int l9  = rand.Next(64);
                int k12 = l + rand.Next(16);
                (new net.minecraft.src.WorldGenMinable(net.minecraft.src.Block.IRON_ORE.ID, 8
                                                       )).Generate(worldObj, rand, k6, l9, k12);
            }
            for (int k3 = 0; k3 < 2; k3++)
            {
                int l6  = k + rand.Next(16);
                int i10 = rand.Next(32);
                int l12 = l + rand.Next(16);
                (new net.minecraft.src.WorldGenMinable(net.minecraft.src.Block.GOLD_ORE.ID, 8
                                                       )).Generate(worldObj, rand, l6, i10, l12);
            }
            for (int l3 = 0; l3 < 8; l3++)
            {
                int i7  = k + rand.Next(16);
                int j10 = rand.Next(16);
                int i13 = l + rand.Next(16);
                (new net.minecraft.src.WorldGenMinable(net.minecraft.src.Block.REDSTONE_ORE.ID
                                                       , 7)).Generate(worldObj, rand, i7, j10, i13);
            }
            for (int i4 = 0; i4 < 1; i4++)
            {
                int j7  = k + rand.Next(16);
                int k10 = rand.Next(16);
                int j13 = l + rand.Next(16);
                (new net.minecraft.src.WorldGenMinable(net.minecraft.src.Block.DIAMOND_ORE.ID
                                                       , 7)).Generate(worldObj, rand, j7, k10, j13);
            }
            for (int j4 = 0; j4 < 1; j4++)
            {
                int k7  = k + rand.Next(16);
                int l10 = rand.Next(16) + rand.Next(16);
                int k13 = l + rand.Next(16);
                (new net.minecraft.src.WorldGenMinable(net.minecraft.src.Block.LAPIS_ORE.ID,
                                                       6)).Generate(worldObj, rand, k7, l10, k13);
            }
            d = 0.5D;
            int k4 = (int)((mobSpawnerNoise.Func_647_a((double)k * d, (double)l * d) / 8D + rand
                            .NextDouble() * 4D + 4D) / 3D);
            int l7 = 0;

            if (rand.Next(10) == 0)
            {
                l7++;
            }
            if (biomegenbase == net.minecraft.src.BiomeGenBase.forest)
            {
                l7 += k4 + 5;
            }
            if (biomegenbase == net.minecraft.src.BiomeGenBase.rainforest)
            {
                l7 += k4 + 5;
            }
            if (biomegenbase == net.minecraft.src.BiomeGenBase.seasonalForest)
            {
                l7 += k4 + 2;
            }
            if (biomegenbase == net.minecraft.src.BiomeGenBase.taiga)
            {
                l7 += k4 + 5;
            }
            if (biomegenbase == net.minecraft.src.BiomeGenBase.desert)
            {
                l7 -= 20;
            }
            if (biomegenbase == net.minecraft.src.BiomeGenBase.tundra)
            {
                l7 -= 20;
            }
            if (biomegenbase == net.minecraft.src.BiomeGenBase.plains)
            {
                l7 -= 20;
            }
            for (int i11 = 0; i11 < l7; i11++)
            {
                int l13 = k + rand.Next(16) + 8;
                int j14 = l + rand.Next(16) + 8;
                net.minecraft.src.WorldGenerator worldgenerator = biomegenbase.GetRandomWorldGenForTrees
                                                                      (rand);
                worldgenerator.Func_420_a(1.0D, 1.0D, 1.0D);
                worldgenerator.Generate(worldObj, rand, l13, worldObj.GetHeightValue(l13, j14), j14
                                        );
            }
            byte byte0 = 0;

            if (biomegenbase == net.minecraft.src.BiomeGenBase.forest)
            {
                byte0 = 2;
            }
            if (biomegenbase == net.minecraft.src.BiomeGenBase.seasonalForest)
            {
                byte0 = 4;
            }
            if (biomegenbase == net.minecraft.src.BiomeGenBase.taiga)
            {
                byte0 = 2;
            }
            if (biomegenbase == net.minecraft.src.BiomeGenBase.plains)
            {
                byte0 = 3;
            }
            for (int i14 = 0; i14 < byte0; i14++)
            {
                int k14 = k + rand.Next(16) + 8;
                int l16 = rand.Next(128);
                int k19 = l + rand.Next(16) + 8;
                (new net.minecraft.src.WorldGenFlowers(net.minecraft.src.Block.YELLOW_FLOWER.ID
                                                       )).Generate(worldObj, rand, k14, l16, k19);
            }
            byte byte1 = 0;

            if (biomegenbase == net.minecraft.src.BiomeGenBase.forest)
            {
                byte1 = 2;
            }
            if (biomegenbase == net.minecraft.src.BiomeGenBase.rainforest)
            {
                byte1 = 10;
            }
            if (biomegenbase == net.minecraft.src.BiomeGenBase.seasonalForest)
            {
                byte1 = 2;
            }
            if (biomegenbase == net.minecraft.src.BiomeGenBase.taiga)
            {
                byte1 = 1;
            }
            if (biomegenbase == net.minecraft.src.BiomeGenBase.plains)
            {
                byte1 = 10;
            }
            for (int l14 = 0; l14 < byte1; l14++)
            {
                byte byte2 = 1;
                if (biomegenbase == net.minecraft.src.BiomeGenBase.rainforest && rand.Next(3)
                    != 0)
                {
                    byte2 = 2;
                }
                int l19 = k + rand.Next(16) + 8;
                int k22 = rand.Next(128);
                int j24 = l + rand.Next(16) + 8;
                (new net.minecraft.src.WorldGenTallGrass(net.minecraft.src.Block.LONG_GRASS.ID
                                                         , byte2)).Generate(worldObj, rand, l19, k22, j24);
            }
            byte1 = 0;
            if (biomegenbase == net.minecraft.src.BiomeGenBase.desert)
            {
                byte1 = 2;
            }
            for (int i15 = 0; i15 < byte1; i15++)
            {
                int i17 = k + rand.Next(16) + 8;
                int i20 = rand.Next(128);
                int l22 = l + rand.Next(16) + 8;
                (new net.minecraft.src.WorldGenDeadBush(net.minecraft.src.Block.DEAD_BUSH.ID)
                ).Generate(worldObj, rand, i17, i20, l22);
            }
            if (rand.Next(2) == 0)
            {
                int j15 = k + rand.Next(16) + 8;
                int j17 = rand.Next(128);
                int j20 = l + rand.Next(16) + 8;
                (new net.minecraft.src.WorldGenFlowers(net.minecraft.src.Block.RED_ROSE.ID))
                .Generate(worldObj, rand, j15, j17, j20);
            }
            if (rand.Next(4) == 0)
            {
                int k15 = k + rand.Next(16) + 8;
                int k17 = rand.Next(128);
                int k20 = l + rand.Next(16) + 8;
                (new net.minecraft.src.WorldGenFlowers(net.minecraft.src.Block.BROWN_MUSHROOM.ID
                                                       )).Generate(worldObj, rand, k15, k17, k20);
            }
            if (rand.Next(8) == 0)
            {
                int l15 = k + rand.Next(16) + 8;
                int l17 = rand.Next(128);
                int l20 = l + rand.Next(16) + 8;
                (new net.minecraft.src.WorldGenFlowers(net.minecraft.src.Block.RED_MUSHROOM.ID
                                                       )).Generate(worldObj, rand, l15, l17, l20);
            }
            for (int i16 = 0; i16 < 10; i16++)
            {
                int i18 = k + rand.Next(16) + 8;
                int i21 = rand.Next(128);
                int i23 = l + rand.Next(16) + 8;
                (new net.minecraft.src.WorldGenReed()).Generate(worldObj, rand, i18, i21, i23);
            }
            if (rand.Next(32) == 0)
            {
                int j16 = k + rand.Next(16) + 8;
                int j18 = rand.Next(128);
                int j21 = l + rand.Next(16) + 8;
                (new net.minecraft.src.WorldGenPumpkin()).Generate(worldObj, rand, j16, j18, j21);
            }
            int k16 = 0;

            if (biomegenbase == net.minecraft.src.BiomeGenBase.desert)
            {
                k16 += 10;
            }
            for (int k18 = 0; k18 < k16; k18++)
            {
                int k21 = k + rand.Next(16) + 8;
                int j23 = rand.Next(128);
                int k24 = l + rand.Next(16) + 8;
                (new net.minecraft.src.WorldGenCactus()).Generate(worldObj, rand, k21, j23, k24);
            }
            for (int l18 = 0; l18 < 50; l18++)
            {
                int l21 = k + rand.Next(16) + 8;
                int k23 = rand.Next(rand.Next(120) + 8);
                int l24 = l + rand.Next(16) + 8;
                (new net.minecraft.src.WorldGenLiquids(net.minecraft.src.Block.WATER.ID
                                                       )).Generate(worldObj, rand, l21, k23, l24);
            }
            for (int i19 = 0; i19 < 20; i19++)
            {
                int i22 = k + rand.Next(16) + 8;
                int l23 = rand.Next(rand.Next(rand.Next(112) + 8) + 8);
                int i25 = l + rand.Next(16) + 8;
                (new net.minecraft.src.WorldGenLiquids(net.minecraft.src.Block.LAVA.ID
                                                       )).Generate(worldObj, rand, i22, l23, i25);
            }
            generatedTemperatures = worldObj.GetWorldChunkManager().GetTemperatures(generatedTemperatures
                                                                                    , k + 8, l + 8, 16, 16);
            for (int j19 = k + 8; j19 < k + 8 + 16; j19++)
            {
                for (int j22 = l + 8; j22 < l + 8 + 16; j22++)
                {
                    int    i24 = j19 - (k + 8);
                    int    j25 = j22 - (l + 8);
                    int    k25 = worldObj.GetTopSolidOrLiquidBlock(j19, j22);
                    double d1  = generatedTemperatures[i24 * 16 + j25] - ((double)(k25 - 64) / 64D) *
                                 0.29999999999999999D;
                    if (d1 < 0.5D && k25 > 0 && k25 < 128 && worldObj.IsAirBlock(j19, k25, j22) && worldObj
                        .GetBlockMaterial(j19, k25 - 1, j22).GetIsSolid() && worldObj.GetBlockMaterial(j19
                                                                                                       , k25 - 1, j22) != net.minecraft.src.Material.ice)
                    {
                        worldObj.SetBlockWithNotify(j19, k25, j22, net.minecraft.src.Block.SNOW.ID);
                    }
                }
            }
            net.minecraft.src.BlockSand.fallInstantly = false;
        }
Beispiel #5
0
        public virtual void ReplaceBlocksForBiome(int i, int j, byte[] abyte0, net.minecraft.src.BiomeGenBase
                                                  [] abiomegenbase)
        {
            byte   byte0 = 64;
            double d     = 0.03125D;

            sandNoise = field_702_n.GenerateNoiseOctaves(sandNoise, i * 16, j * 16, 0.0D, 16,
                                                         16, 1, d, d, 1.0D);
            gravelNoise = field_702_n.GenerateNoiseOctaves(gravelNoise, i * 16, 109.0134D, j
                                                           * 16, 16, 1, 16, d, 1.0D, d);
            stoneNoise = field_701_o.GenerateNoiseOctaves(stoneNoise, i * 16, j * 16, 0.0D, 16
                                                          , 16, 1, d * 2D, d * 2D, d * 2D);
            for (int k = 0; k < 16; k++)
            {
                for (int l = 0; l < 16; l++)
                {
                    net.minecraft.src.BiomeGenBase biomegenbase = abiomegenbase[k + l * 16];
                    bool flag  = sandNoise[k + l * 16] + rand.NextDouble() * 0.20000000000000001D > 0.0D;
                    bool flag1 = gravelNoise[k + l * 16] + rand.NextDouble() * 0.20000000000000001D >
                                 3D;
                    int  i1    = (int)(stoneNoise[k + l * 16] / 3D + 3D + rand.NextDouble() * 0.25D);
                    int  j1    = -1;
                    byte byte1 = biomegenbase.topBlock;
                    byte byte2 = biomegenbase.fillerBlock;
                    for (int k1 = 127; k1 >= 0; k1--)
                    {
                        int l1 = (l * 16 + k) * 128 + k1;
                        if (k1 <= 0 + rand.Next(5))
                        {
                            abyte0[l1] = unchecked ((byte)net.minecraft.src.Block.BEDROCK.ID);
                            continue;
                        }
                        byte byte3 = abyte0[l1];
                        if (byte3 == 0)
                        {
                            j1 = -1;
                            continue;
                        }
                        if (byte3 != net.minecraft.src.Block.STONE.ID)
                        {
                            continue;
                        }
                        if (j1 == -1)
                        {
                            if (i1 <= 0)
                            {
                                byte1 = 0;
                                byte2 = unchecked ((byte)net.minecraft.src.Block.STONE.ID);
                            }
                            else
                            {
                                if (k1 >= byte0 - 4 && k1 <= byte0 + 1)
                                {
                                    byte1 = biomegenbase.topBlock;
                                    byte2 = biomegenbase.fillerBlock;
                                    if (flag1)
                                    {
                                        byte1 = 0;
                                    }
                                    if (flag1)
                                    {
                                        byte2 = unchecked ((byte)net.minecraft.src.Block.GRAVEL.ID);
                                    }
                                    if (flag)
                                    {
                                        byte1 = unchecked ((byte)net.minecraft.src.Block.SAND.ID);
                                    }
                                    if (flag)
                                    {
                                        byte2 = unchecked ((byte)net.minecraft.src.Block.SAND.ID);
                                    }
                                }
                            }
                            if (k1 < byte0 && byte1 == 0)
                            {
                                byte1 = unchecked ((byte)net.minecraft.src.Block.STATIONARY_WATER.ID);
                            }
                            j1 = i1;
                            if (k1 >= byte0 - 1)
                            {
                                abyte0[l1] = byte1;
                            }
                            else
                            {
                                abyte0[l1] = byte2;
                            }
                            continue;
                        }
                        if (j1 <= 0)
                        {
                            continue;
                        }
                        j1--;
                        abyte0[l1] = byte2;
                        if (j1 == 0 && byte2 == net.minecraft.src.Block.SAND.ID)
                        {
                            j1    = rand.Next(4);
                            byte2 = unchecked ((byte)net.minecraft.src.Block.SANDSTONE.ID);
                        }
                    }
                }
            }
        }
Beispiel #6
0
        public virtual void Populate(net.minecraft.src.IChunkProvider ichunkprovider, int
                                     i, int j)
        {
            net.minecraft.src.BlockSand.fallInstantly = true;
            int k = i * 16;
            int l = j * 16;

            net.minecraft.src.BiomeGenBase biomegenbase = field_28079_p.GetWorldChunkManager(
                ).GetBiomeGenAt(k + 16, l + 16);
            field_28085_j.SetSeed(field_28079_p.GetSeed());
            long l1 = (field_28085_j.NextLong() / 2L) * 2L + 1L;
            long l2 = (field_28085_j.NextLong() / 2L) * 2L + 1L;

            field_28085_j.SetSeed((long)i * l1 + (long)j * l2 ^ field_28079_p.GetSeed()
                                  );
            double d = 0.25D;

            if (field_28085_j.NextInt(4) == 0)
            {
                int i1 = k + field_28085_j.NextInt(16) + 8;
                int l4 = field_28085_j.NextInt(128);
                int i8 = l + field_28085_j.NextInt(16) + 8;
                (new net.minecraft.src.WorldGenLakes(net.minecraft.src.Block.STATIONARY_WATER.ID))
                .Generate(field_28079_p, field_28085_j, i1, l4, i8);
            }
            if (field_28085_j.NextInt(8) == 0)
            {
                int j1 = k + field_28085_j.NextInt(16) + 8;
                int i5 = field_28085_j.NextInt(field_28085_j.NextInt(120) + 8);
                int j8 = l + field_28085_j.NextInt(16) + 8;
                if (i5 < 64 || field_28085_j.NextInt(10) == 0)
                {
                    (new net.minecraft.src.WorldGenLakes(net.minecraft.src.Block.STATIONARY_LAVA.ID)).
                    Generate(field_28079_p, field_28085_j, j1, i5, j8);
                }
            }
            for (int k1 = 0; k1 < 8; k1++)
            {
                int j5  = k + field_28085_j.NextInt(16) + 8;
                int k8  = field_28085_j.NextInt(128);
                int i13 = l + field_28085_j.NextInt(16) + 8;
                (new net.minecraft.src.WorldGenDungeons()).Generate(field_28079_p, field_28085_j,
                                                                    j5, k8, i13);
            }
            for (int i2 = 0; i2 < 10; i2++)
            {
                int k5  = k + field_28085_j.NextInt(16);
                int l8  = field_28085_j.NextInt(128);
                int j13 = l + field_28085_j.NextInt(16);
                (new net.minecraft.src.WorldGenClay(32)).Generate(field_28079_p, field_28085_j, k5
                                                                  , l8, j13);
            }
            for (int j2 = 0; j2 < 20; j2++)
            {
                int l5  = k + field_28085_j.NextInt(16);
                int i9  = field_28085_j.NextInt(128);
                int k13 = l + field_28085_j.NextInt(16);
                (new net.minecraft.src.WorldGenMinable(net.minecraft.src.Block.DIRT.ID, 32))
                .Generate(field_28079_p, field_28085_j, l5, i9, k13);
            }
            for (int k2 = 0; k2 < 10; k2++)
            {
                int i6  = k + field_28085_j.NextInt(16);
                int j9  = field_28085_j.NextInt(128);
                int l13 = l + field_28085_j.NextInt(16);
                (new net.minecraft.src.WorldGenMinable(net.minecraft.src.Block.GRAVEL.ID, 32
                                                       )).Generate(field_28079_p, field_28085_j, i6, j9, l13);
            }
            for (int i3 = 0; i3 < 20; i3++)
            {
                int j6  = k + field_28085_j.NextInt(16);
                int k9  = field_28085_j.NextInt(128);
                int i14 = l + field_28085_j.NextInt(16);
                (new net.minecraft.src.WorldGenMinable(net.minecraft.src.Block.COAL_ORE.ID, 16
                                                       )).Generate(field_28079_p, field_28085_j, j6, k9, i14);
            }
            for (int j3 = 0; j3 < 20; j3++)
            {
                int k6  = k + field_28085_j.NextInt(16);
                int l9  = field_28085_j.NextInt(64);
                int j14 = l + field_28085_j.NextInt(16);
                (new net.minecraft.src.WorldGenMinable(net.minecraft.src.Block.IRON_ORE.ID, 8
                                                       )).Generate(field_28079_p, field_28085_j, k6, l9, j14);
            }
            for (int k3 = 0; k3 < 2; k3++)
            {
                int l6  = k + field_28085_j.NextInt(16);
                int i10 = field_28085_j.NextInt(32);
                int k14 = l + field_28085_j.NextInt(16);
                (new net.minecraft.src.WorldGenMinable(net.minecraft.src.Block.GOLD_ORE.ID, 8
                                                       )).Generate(field_28079_p, field_28085_j, l6, i10, k14);
            }
            for (int l3 = 0; l3 < 8; l3++)
            {
                int i7  = k + field_28085_j.NextInt(16);
                int j10 = field_28085_j.NextInt(16);
                int l14 = l + field_28085_j.NextInt(16);
                (new net.minecraft.src.WorldGenMinable(net.minecraft.src.Block.REDSTONE_ORE.ID
                                                       , 7)).Generate(field_28079_p, field_28085_j, i7, j10, l14);
            }
            for (int i4 = 0; i4 < 1; i4++)
            {
                int j7  = k + field_28085_j.NextInt(16);
                int k10 = field_28085_j.NextInt(16);
                int i15 = l + field_28085_j.NextInt(16);
                (new net.minecraft.src.WorldGenMinable(net.minecraft.src.Block.DIAMOND_ORE.ID
                                                       , 7)).Generate(field_28079_p, field_28085_j, j7, k10, i15);
            }
            for (int j4 = 0; j4 < 1; j4++)
            {
                int k7  = k + field_28085_j.NextInt(16);
                int l10 = field_28085_j.NextInt(16) + field_28085_j.NextInt(16);
                int j15 = l + field_28085_j.NextInt(16);
                (new net.minecraft.src.WorldGenMinable(net.minecraft.src.Block.LAPIS_ORE.ID,
                                                       6)).Generate(field_28079_p, field_28085_j, k7, l10, j15);
            }
            d = 0.5D;
            int k4 = (int)((field_28092_c.Func_647_a((double)k * d, (double)l * d) / 8D + field_28085_j
                            .NextDouble() * 4D + 4D) / 3D);
            int l7 = 0;

            if (field_28085_j.NextInt(10) == 0)
            {
                l7++;
            }
            if (biomegenbase == net.minecraft.src.BiomeGenBase.forest)
            {
                l7 += k4 + 5;
            }
            if (biomegenbase == net.minecraft.src.BiomeGenBase.rainforest)
            {
                l7 += k4 + 5;
            }
            if (biomegenbase == net.minecraft.src.BiomeGenBase.seasonalForest)
            {
                l7 += k4 + 2;
            }
            if (biomegenbase == net.minecraft.src.BiomeGenBase.taiga)
            {
                l7 += k4 + 5;
            }
            if (biomegenbase == net.minecraft.src.BiomeGenBase.desert)
            {
                l7 -= 20;
            }
            if (biomegenbase == net.minecraft.src.BiomeGenBase.tundra)
            {
                l7 -= 20;
            }
            if (biomegenbase == net.minecraft.src.BiomeGenBase.plains)
            {
                l7 -= 20;
            }
            for (int i11 = 0; i11 < l7; i11++)
            {
                int k15 = k + field_28085_j.NextInt(16) + 8;
                int j18 = l + field_28085_j.NextInt(16) + 8;
                net.minecraft.src.WorldGenerator worldgenerator = biomegenbase.GetRandomWorldGenForTrees
                                                                      (field_28085_j);
                worldgenerator.Func_420_a(1.0D, 1.0D, 1.0D);
                worldgenerator.Generate(field_28079_p, field_28085_j, k15, field_28079_p.GetHeightValue
                                            (k15, j18), j18);
            }
            for (int j11 = 0; j11 < 2; j11++)
            {
                int l15 = k + field_28085_j.NextInt(16) + 8;
                int k18 = field_28085_j.NextInt(128);
                int i21 = l + field_28085_j.NextInt(16) + 8;
                (new net.minecraft.src.WorldGenFlowers(net.minecraft.src.Block.YELLOW_FLOWER.ID
                                                       )).Generate(field_28079_p, field_28085_j, l15, k18, i21);
            }
            if (field_28085_j.NextInt(2) == 0)
            {
                int k11 = k + field_28085_j.NextInt(16) + 8;
                int i16 = field_28085_j.NextInt(128);
                int l18 = l + field_28085_j.NextInt(16) + 8;
                (new net.minecraft.src.WorldGenFlowers(net.minecraft.src.Block.RED_ROSE.ID))
                .Generate(field_28079_p, field_28085_j, k11, i16, l18);
            }
            if (field_28085_j.NextInt(4) == 0)
            {
                int l11 = k + field_28085_j.NextInt(16) + 8;
                int j16 = field_28085_j.NextInt(128);
                int i19 = l + field_28085_j.NextInt(16) + 8;
                (new net.minecraft.src.WorldGenFlowers(net.minecraft.src.Block.BROWN_MUSHROOM.ID
                                                       )).Generate(field_28079_p, field_28085_j, l11, j16, i19);
            }
            if (field_28085_j.NextInt(8) == 0)
            {
                int i12 = k + field_28085_j.NextInt(16) + 8;
                int k16 = field_28085_j.NextInt(128);
                int j19 = l + field_28085_j.NextInt(16) + 8;
                (new net.minecraft.src.WorldGenFlowers(net.minecraft.src.Block.RED_MUSHROOM.ID
                                                       )).Generate(field_28079_p, field_28085_j, i12, k16, j19);
            }
            for (int j12 = 0; j12 < 10; j12++)
            {
                int l16 = k + field_28085_j.NextInt(16) + 8;
                int k19 = field_28085_j.NextInt(128);
                int j21 = l + field_28085_j.NextInt(16) + 8;
                (new net.minecraft.src.WorldGenReed()).Generate(field_28079_p, field_28085_j, l16
                                                                , k19, j21);
            }
            if (field_28085_j.NextInt(32) == 0)
            {
                int k12 = k + field_28085_j.NextInt(16) + 8;
                int i17 = field_28085_j.NextInt(128);
                int l19 = l + field_28085_j.NextInt(16) + 8;
                (new net.minecraft.src.WorldGenPumpkin()).Generate(field_28079_p, field_28085_j,
                                                                   k12, i17, l19);
            }
            int l12 = 0;

            if (biomegenbase == net.minecraft.src.BiomeGenBase.desert)
            {
                l12 += 10;
            }
            for (int j17 = 0; j17 < l12; j17++)
            {
                int i20 = k + field_28085_j.NextInt(16) + 8;
                int k21 = field_28085_j.NextInt(128);
                int k22 = l + field_28085_j.NextInt(16) + 8;
                (new net.minecraft.src.WorldGenCactus()).Generate(field_28079_p, field_28085_j, i20
                                                                  , k21, k22);
            }
            for (int k17 = 0; k17 < 50; k17++)
            {
                int j20 = k + field_28085_j.NextInt(16) + 8;
                int l21 = field_28085_j.NextInt(field_28085_j.NextInt(120) + 8);
                int l22 = l + field_28085_j.NextInt(16) + 8;
                (new net.minecraft.src.WorldGenLiquids(net.minecraft.src.Block.WATER.ID
                                                       )).Generate(field_28079_p, field_28085_j, j20, l21, l22);
            }
            for (int l17 = 0; l17 < 20; l17++)
            {
                int k20 = k + field_28085_j.NextInt(16) + 8;
                int i22 = field_28085_j.NextInt(field_28085_j.NextInt(field_28085_j.NextInt(112)
                                                                      + 8) + 8);
                int i23 = l + field_28085_j.NextInt(16) + 8;
                (new net.minecraft.src.WorldGenLiquids(net.minecraft.src.Block.LAVA.ID
                                                       )).Generate(field_28079_p, field_28085_j, k20, i22, i23);
            }
            field_28072_w = field_28079_p.GetWorldChunkManager().GetTemperatures(field_28072_w
                                                                                 , k + 8, l + 8, 16, 16);
            for (int i18 = k + 8; i18 < k + 8 + 16; i18++)
            {
                for (int l20 = l + 8; l20 < l + 8 + 16; l20++)
                {
                    int    j22 = i18 - (k + 8);
                    int    j23 = l20 - (l + 8);
                    int    k23 = field_28079_p.GetTopSolidOrLiquidBlock(i18, l20);
                    double d1  = field_28072_w[j22 * 16 + j23] - ((double)(k23 - 64) / 64D) * 0.29999999999999999D;
                    if (d1 < 0.5D && k23 > 0 && k23 < 128 && field_28079_p.IsAirBlock(i18, k23, l20) &&
                        field_28079_p.GetBlockMaterial(i18, k23 - 1, l20).GetIsSolid() && field_28079_p
                        .GetBlockMaterial(i18, k23 - 1, l20) != net.minecraft.src.Material.ice)
                    {
                        field_28079_p.SetBlockWithNotify(i18, k23, l20, net.minecraft.src.Block.SNOW.ID
                                                         );
                    }
                }
            }
            net.minecraft.src.BlockSand.fallInstantly = false;
        }
Beispiel #7
0
        public virtual void Func_28069_a(int i, int j, byte[] abyte0, net.minecraft.src.BiomeGenBase
                                         [] abiomegenbase)
        {
            double d = 0.03125D;

            field_28077_r = field_28081_n.GenerateNoiseOctaves(field_28077_r, i * 16, j * 16, 0.0D, 16, 16, 1, d, d, 1.0D);
            field_28076_s = field_28081_n.GenerateNoiseOctaves(field_28076_s, i * 16, 109.0134D, j * 16, 16, 1, 16, d, 1.0D, d);
            field_28075_t = field_28080_o.GenerateNoiseOctaves(field_28075_t, i * 16, j * 16, 0.0D, 16, 16, 1, d * 2D, d * 2D, d * 2D);
            for (int k = 0; k < 16; k++)
            {
                for (int l = 0; l < 16; l++)
                {
                    net.minecraft.src.BiomeGenBase biomegenbase = abiomegenbase[k + l * 16];
                    int i1 = (int)(field_28075_t[k + l * 16] / 3D + 3D + field_28085_j.NextDouble() *
                                   0.25D);
                    int  j1    = -1;
                    byte byte0 = biomegenbase.topBlock;
                    byte byte1 = biomegenbase.fillerBlock;
                    for (int k1 = 127; k1 >= 0; k1--)
                    {
                        int  l1    = (l * 16 + k) * 128 + k1;
                        byte byte2 = abyte0[l1];
                        if (byte2 == 0)
                        {
                            j1 = -1;
                            continue;
                        }
                        if (byte2 != net.minecraft.src.Block.STONE.ID)
                        {
                            continue;
                        }
                        if (j1 == -1)
                        {
                            if (i1 <= 0)
                            {
                                byte0 = 0;
                                byte1 = unchecked ((byte)net.minecraft.src.Block.STONE.ID);
                            }
                            j1 = i1;
                            if (k1 >= 0)
                            {
                                abyte0[l1] = byte0;
                            }
                            else
                            {
                                abyte0[l1] = byte1;
                            }
                            continue;
                        }
                        if (j1 <= 0)
                        {
                            continue;
                        }
                        j1--;
                        abyte0[l1] = byte1;
                        if (j1 == 0 && byte1 == net.minecraft.src.Block.SAND.ID)
                        {
                            j1    = field_28085_j.NextInt(4);
                            byte1 = unchecked ((byte)net.minecraft.src.Block.SANDSTONE.ID);
                        }
                    }
                }
            }
        }
Beispiel #8
0
 public static int PerformSpawning(net.minecraft.src.World var0, bool var1, bool var2
                                   )
 {
     if (!var1 && !var2)
     {
         return(0);
     }
     else
     {
         eligibleChunksForSpawning.Clear();
         int var3;
         int var6;
         for (var3 = 0; var3 < var0.playerEntities.Count; ++var3)
         {
             net.minecraft.src.EntityPlayer var4 = (net.minecraft.src.EntityPlayer)var0.playerEntities
                                                   [var3];
             int var5 = net.minecraft.src.MathHelper.Floor_double(var4.posX / 16.0D);
             var6 = net.minecraft.src.MathHelper.Floor_double(var4.posZ / 16.0D);
             byte var7 = 8;
             for (int var8 = -var7; var8 <= var7; ++var8)
             {
                 for (int var9 = -var7; var9 <= var7; ++var9)
                 {
                     eligibleChunksForSpawning.Add(new net.minecraft.src.ChunkCoordIntPair(var8 + var5, var9 + var6));
                 }
             }
         }
         var3 = 0;
         net.minecraft.src.ChunkCoordinates   var35 = var0.GetSpawnPoint();
         net.minecraft.src.EnumCreatureType[] var36 = net.minecraft.src.EnumCreatureType.Values();
         var6 = var36.Length;
         for (int var37 = 0; var37 < var6; ++var37)
         {
             net.minecraft.src.EnumCreatureType var38 = var36[var37];
             if ((!var38.Func_21103_d() || var2) && (var38.Func_21103_d() || var1) && var0.CountEntities
                     (var38.GetCreatureClass()) <= var38.GetMaxNumberOfCreature() * eligibleChunksForSpawning
                 .Count / 256)
             {
                 System.Collections.IEnumerator var39 = eligibleChunksForSpawning.GetEnumerator();
                 while (var39.MoveNext())
                 {
                     net.minecraft.src.ChunkCoordIntPair var10 = (net.minecraft.src.ChunkCoordIntPair)
                                                                 var39.Current;
                     net.minecraft.src.BiomeGenBase var11 = var0.GetWorldChunkManager().Func_4066_a(var10
                                                                                                    );
                     System.Collections.IList var12 = var11.GetSpawnableList(var38);
                     if (var12 != null && var12.Count > 0)
                     {
                         int var13 = 0;
                         net.minecraft.src.SpawnListEntry var15;
                         for (System.Collections.IEnumerator var14 = var12.GetEnumerator(); var14.MoveNext
                                  (); var13 += var15.spawnRarityRate)
                         {
                             var15 = (net.minecraft.src.SpawnListEntry)var14.Current;
                         }
                         int var40 = var0.rand.Next(var13);
                         var15 = (net.minecraft.src.SpawnListEntry)var12[0];
                         System.Collections.IEnumerator var16 = var12.GetEnumerator();
                         while (var16.MoveNext())
                         {
                             net.minecraft.src.SpawnListEntry var17 = (net.minecraft.src.SpawnListEntry)var16.
                                                                      Current;
                             var40 -= var17.spawnRarityRate;
                             if (var40 < 0)
                             {
                                 var15 = var17;
                                 break;
                             }
                         }
                         net.minecraft.src.ChunkPosition var41 = GetRandomSpawningPointInChunk(var0, var10
                                                                                               .X * 16, var10.Z * 16);
                         int var42 = var41.x;
                         int var18 = var41.y;
                         int var19 = var41.z;
                         if (!var0.IsBlockNormalCube(var42, var18, var19) && var0.GetBlockMaterial(var42,
                                                                                                   var18, var19) == var38.GetCreatureMaterial())
                         {
                             int var20 = 0;
                             for (int var21 = 0; var21 < 3; ++var21)
                             {
                                 int  var22 = var42;
                                 int  var23 = var18;
                                 int  var24 = var19;
                                 byte var25 = 6;
                                 for (int var26 = 0; var26 < 4; ++var26)
                                 {
                                     var22 += var0.rand.Next(var25) - var0.rand.Next(var25);
                                     var23 += var0.rand.Next(1) - var0.rand.Next(1);
                                     var24 += var0.rand.Next(var25) - var0.rand.Next(var25);
                                     if (Func_21167_a(var38, var0, var22, var23, var24))
                                     {
                                         float var27 = (float)var22 + 0.5F;
                                         float var28 = (float)var23;
                                         float var29 = (float)var24 + 0.5F;
                                         if (var0.GetClosestPlayer((double)var27, (double)var28, (double)var29, 24.0D) ==
                                             null)
                                         {
                                             float var30 = var27 - (float)var35.posX;
                                             float var31 = var28 - (float)var35.posY;
                                             float var32 = var29 - (float)var35.posZ;
                                             float var33 = var30 * var30 + var31 * var31 + var32 * var32;
                                             if (var33 >= 576.0F)
                                             {
                                                 net.minecraft.src.EntityLiving var43;
                                                 try
                                                 {
                                                     var43 = (net.minecraft.src.EntityLiving)(var15.entityClass.GetConstructor(new System.Type[] { typeof(net.minecraft.src.World) }).Invoke(new object[] { var0 }));
                                                 }
                                                 catch (System.Exception var34)
                                                 {
                                                     Sharpen.Runtime.PrintStackTrace(var34);
                                                     return(var3);
                                                 }
                                                 var43.SetLocationAndAngles((double)var27, (double)var28, (double)var29, var0.rand
                                                                            .NextFloat() * 360.0F, 0.0F);
                                                 if (var43.GetCanSpawnHere())
                                                 {
                                                     ++var20;
                                                     var0.AddEntity(var43);
                                                     Func_21166_a(var43, var0, var27, var28, var29);
                                                     if (var20 >= var43.GetMaxSpawnedInChunk())
                                                     {
                                                         goto label113_continue;
                                                     }
                                                 }
                                                 var3 += var20;
                                             }
                                         }
                                     }
                                 }
                             }
                         }
                     }
                     label113_continue :;
                 }
                 label113_break :;
             }
         }
         return(var3);
     }
 }