/// <summary>
        /// Returns a list of integer values generated by this layer. These may be interpreted as temperatures, rainfall
        /// amounts, or biomeList[] indices based on the particular GenLayer subclass.
        /// </summary>
        public override int[] GetInts(int par1, int par2, int par3, int par4)
        {
            int[] ai  = Parent.GetInts(par1 - 1, par2 - 1, par3 + 2, par4 + 2);
            int[] ai1 = IntCache.GetIntCache(par3 * par4);

            for (int i = 0; i < par4; i++)
            {
                for (int j = 0; j < par3; j++)
                {
                    InitChunkSeed(j + par1, i + par2);
                    int k = ai[j + 1 + (i + 1) * (par3 + 2)];

                    if (k == BiomeGenBase.Swampland.BiomeID && NextInt(6) == 0)
                    {
                        ai1[j + i * par3] = BiomeGenBase.River.BiomeID;
                        continue;
                    }

                    if ((k == BiomeGenBase.Jungle.BiomeID || k == BiomeGenBase.JungleHills.BiomeID) && NextInt(8) == 0)
                    {
                        ai1[j + i * par3] = BiomeGenBase.River.BiomeID;
                    }
                    else
                    {
                        ai1[j + i * par3] = k;
                    }
                }
            }

            return(ai1);
        }
Пример #2
0
        /// <summary>
        /// Returns a list of integer values generated by this layer. These may be interpreted as temperatures, rainfall
        /// amounts, or biomeList[] indices based on the particular GenLayer subclass.
        /// </summary>
        public override int[] GetInts(int par1, int par2, int par3, int par4)
        {
            int i = par1 - 1;
            int j = par2 - 1;
            int k = par3 + 2;
            int l = par4 + 2;

            int[] ai  = Parent.GetInts(i, j, k, l);
            int[] ai1 = IntCache.GetIntCache(par3 * par4);

            for (int i1 = 0; i1 < par4; i1++)
            {
                for (int j1 = 0; j1 < par3; j1++)
                {
                    int k1 = ai[j1 + 0 + (i1 + 0) * k];
                    int l1 = ai[j1 + 2 + (i1 + 0) * k];
                    int i2 = ai[j1 + 0 + (i1 + 2) * k];
                    int j2 = ai[j1 + 2 + (i1 + 2) * k];
                    int k2 = ai[j1 + 1 + (i1 + 1) * k];
                    InitChunkSeed(j1 + par1, i1 + par2);

                    if (k2 == 0 && k1 == 0 && l1 == 0 && i2 == 0 && j2 == 0 && NextInt(100) == 0)
                    {
                        ai1[j1 + i1 * par3] = BiomeGenBase.MushroomIsland.BiomeID;
                    }
                    else
                    {
                        ai1[j1 + i1 * par3] = k2;
                    }
                }
            }

            return(ai1);
        }
        /// <summary>
        /// Returns a list of integer values generated by this layer. These may be interpreted as temperatures, rainfall
        /// amounts, or biomeList[] indices based on the particular GenLayer subclass.
        /// </summary>
        public override int[] GetInts(int par1, int par2, int par3, int par4)
        {
            int i = par1 - 1;
            int j = par2 - 1;
            int k = par3 + 2;
            int l = par4 + 2;

            int[] ai  = Parent.GetInts(i, j, k, l);
            int[] ai1 = IntCache.GetIntCache(par3 * par4);

            for (int i1 = 0; i1 < par4; i1++)
            {
                for (int j1 = 0; j1 < par3; j1++)
                {
                    int k1 = ai[j1 + 0 + (i1 + 1) * k];
                    int l1 = ai[j1 + 2 + (i1 + 1) * k];
                    int i2 = ai[j1 + 1 + (i1 + 0) * k];
                    int j2 = ai[j1 + 1 + (i1 + 2) * k];
                    int k2 = ai[j1 + 1 + (i1 + 1) * k];

                    if (k1 == l1 && i2 == j2)
                    {
                        InitChunkSeed(j1 + par1, i1 + par2);

                        if (NextInt(2) == 0)
                        {
                            k2 = k1;
                        }
                        else
                        {
                            k2 = i2;
                        }
                    }
                    else
                    {
                        if (k1 == l1)
                        {
                            k2 = k1;
                        }

                        if (i2 == j2)
                        {
                            k2 = i2;
                        }
                    }

                    ai1[j1 + i1 * par3] = k2;
                }
            }

            return(ai1);
        }
        /// <summary>
        /// Returns a list of integer values generated by this layer. These may be interpreted as temperatures, rainfall
        /// amounts, or biomeList[] indices based on the particular GenLayer subclass.
        /// </summary>
        public override int[] GetInts(int par1, int par2, int par3, int par4)
        {
            int[] ai  = Parent.GetInts(par1, par2, par3, par4);
            int[] ai1 = IntCache.GetIntCache(par3 * par4);

            for (int i = 0; i < par4; i++)
            {
                for (int j = 0; j < par3; j++)
                {
                    InitChunkSeed(j + par1, i + par2);
                    ai1[j + i * par3] = ai[j + i * par3] <= 0 ? 0 : NextInt(2) + 2;
                }
            }

            return(ai1);
        }
        /// <summary>
        /// Returns a list of integer values generated by this layer. These may be interpreted as temperatures, rainfall
        /// amounts, or biomeList[] indices based on the particular GenLayer subclass.
        /// </summary>
        public override int[] GetInts(int par1, int par2, int par3, int par4)
        {
            int[] ai = IntCache.GetIntCache(par3 * par4);

            for (int i = 0; i < par4; i++)
            {
                for (int j = 0; j < par3; j++)
                {
                    InitChunkSeed(par1 + j, par2 + i);
                    ai[j + i * par3] = NextInt(10) != 0 ? 0 : 1;
                }
            }

            if (par1 > -par3 && par1 <= 0 && par2 > -par4 && par2 <= 0)
            {
                ai[-par1 + -par2 * par3] = 1;
            }

            return(ai);
        }
        /// <summary>
        /// Returns a list of integer values generated by this layer. These may be interpreted as temperatures, rainfall
        /// amounts, or biomeList[] indices based on the particular GenLayer subclass.
        /// </summary>
        public override int[] GetInts(int par1, int par2, int par3, int par4)
        {
            int i = par1 - 1;
            int j = par2 - 1;
            int k = par3 + 2;
            int l = par4 + 2;

            int[] ai  = Parent.GetInts(i, j, k, l);
            int[] ai1 = IntCache.GetIntCache(par3 * par4);

            for (int i1 = 0; i1 < par4; i1++)
            {
                for (int j1 = 0; j1 < par3; j1++)
                {
                    int k1 = ai[j1 + 1 + (i1 + 1) * k];
                    InitChunkSeed(j1 + par1, i1 + par2);

                    if (k1 == 0)
                    {
                        ai1[j1 + i1 * par3] = 0;
                        continue;
                    }

                    int l1 = NextInt(5);

                    if (l1 == 0)
                    {
                        l1 = BiomeGenBase.IcePlains.BiomeID;
                    }
                    else
                    {
                        l1 = 1;
                    }

                    ai1[j1 + i1 * par3] = l1;
                }
            }

            return(ai1);
        }
        /// <summary>
        /// Returns a list of integer values generated by this layer. These may be interpreted as temperatures, rainfall
        /// amounts, or biomeList[] indices based on the particular GenLayer subclass.
        /// </summary>
        public override int[] GetInts(int par1, int par2, int par3, int par4)
        {
            int[] ai  = Field_35512_b.GetInts(par1, par2, par3, par4);
            int[] ai1 = Field_35513_c.GetInts(par1, par2, par3, par4);
            int[] ai2 = IntCache.GetIntCache(par3 * par4);

            for (int i = 0; i < par3 * par4; i++)
            {
                if (ai[i] == BiomeGenBase.Ocean.BiomeID)
                {
                    ai2[i] = ai[i];
                    continue;
                }

                if (ai1[i] >= 0)
                {
                    if (ai[i] == BiomeGenBase.IcePlains.BiomeID)
                    {
                        ai2[i] = BiomeGenBase.FrozenRiver.BiomeID;
                        continue;
                    }

                    if (ai[i] == BiomeGenBase.MushroomIsland.BiomeID || ai[i] == BiomeGenBase.MushroomIslandShore.BiomeID)
                    {
                        ai2[i] = BiomeGenBase.MushroomIslandShore.BiomeID;
                    }
                    else
                    {
                        ai2[i] = ai1[i];
                    }
                }
                else
                {
                    ai2[i] = ai[i];
                }
            }

            return(ai2);
        }
Пример #8
0
        /// <summary>
        /// Returns a list of integer values generated by this layer. These may be interpreted as temperatures, rainfall
        /// amounts, or biomeList[] indices based on the particular GenLayer subclass.
        /// </summary>
        public override int[] GetInts(int par1, int par2, int par3, int par4)
        {
            int i = par1 - 1;
            int j = par2 - 1;
            int k = par3 + 2;
            int l = par4 + 2;

            int[] ai  = Parent.GetInts(i, j, k, l);
            int[] ai1 = IntCache.GetIntCache(par3 * par4);

            for (int i1 = 0; i1 < par4; i1++)
            {
                for (int j1 = 0; j1 < par3; j1++)
                {
                    int k1 = ai[j1 + 0 + (i1 + 1) * k];
                    int l1 = ai[j1 + 2 + (i1 + 1) * k];
                    int i2 = ai[j1 + 1 + (i1 + 0) * k];
                    int j2 = ai[j1 + 1 + (i1 + 2) * k];
                    int k2 = ai[j1 + 1 + (i1 + 1) * k];

                    if (k2 == 0 || k1 == 0 || l1 == 0 || i2 == 0 || j2 == 0)
                    {
                        ai1[j1 + i1 * par3] = BiomeGenBase.River.BiomeID;
                        continue;
                    }

                    if (k2 != k1 || k2 != i2 || k2 != l1 || k2 != j2)
                    {
                        ai1[j1 + i1 * par3] = BiomeGenBase.River.BiomeID;
                    }
                    else
                    {
                        ai1[j1 + i1 * par3] = -1;
                    }
                }
            }

            return(ai1);
        }
Пример #9
0
        /// <summary>
        /// Returns a list of integer values generated by this layer. These may be interpreted as temperatures, rainfall
        /// amounts, or biomeList[] indices based on the particular GenLayer subclass.
        /// </summary>
        public override int[] GetInts(int par1, int par2, int par3, int par4)
        {
            int[] ai  = Parent.GetInts(par1, par2, par3, par4);
            int[] ai1 = IntCache.GetIntCache(par3 * par4);

            for (int i = 0; i < par4; i++)
            {
                for (int j = 0; j < par3; j++)
                {
                    InitChunkSeed(j + par1, i + par2);
                    int k = ai[j + i * par3];

                    if (k == 0)
                    {
                        ai1[j + i * par3] = 0;
                        continue;
                    }

                    if (k == BiomeGenBase.MushroomIsland.BiomeID)
                    {
                        ai1[j + i * par3] = k;
                        continue;
                    }

                    if (k == 1)
                    {
                        ai1[j + i * par3] = AllowedBiomes[NextInt(AllowedBiomes.Length)].BiomeID;
                    }
                    else
                    {
                        ai1[j + i * par3] = BiomeGenBase.IcePlains.BiomeID;
                    }
                }
            }

            return(ai1);
        }
        /// <summary>
        /// Returns a list of integer values generated by this layer. These may be interpreted as temperatures, rainfall
        /// amounts, or biomeList[] indices based on the particular GenLayer subclass.
        /// </summary>
        public override int[] GetInts(int par1, int par2, int par3, int par4)
        {
            int i = par1 - 1;
            int j = par2 - 1;
            int k = par3 + 2;
            int l = par4 + 2;

            int[] ai  = Parent.GetInts(i, j, k, l);
            int[] ai1 = IntCache.GetIntCache(par3 * par4);

            for (int i1 = 0; i1 < par4; i1++)
            {
                for (int j1 = 0; j1 < par3; j1++)
                {
                    int k1 = ai[j1 + 0 + (i1 + 0) * k];
                    int l1 = ai[j1 + 2 + (i1 + 0) * k];
                    int i2 = ai[j1 + 0 + (i1 + 2) * k];
                    int j2 = ai[j1 + 2 + (i1 + 2) * k];
                    int k2 = ai[j1 + 1 + (i1 + 1) * k];
                    InitChunkSeed(j1 + par1, i1 + par2);

                    if (k2 == 0 && (k1 != 0 || l1 != 0 || i2 != 0 || j2 != 0))
                    {
                        int l2 = 1;
                        int i3 = 1;

                        if (k1 != 0 && NextInt(l2++) == 0)
                        {
                            i3 = k1;
                        }

                        if (l1 != 0 && NextInt(l2++) == 0)
                        {
                            i3 = l1;
                        }

                        if (i2 != 0 && NextInt(l2++) == 0)
                        {
                            i3 = i2;
                        }

                        if (j2 != 0 && NextInt(l2++) == 0)
                        {
                            i3 = j2;
                        }

                        if (NextInt(3) == 0)
                        {
                            ai1[j1 + i1 * par3] = i3;
                            continue;
                        }

                        if (i3 == BiomeGenBase.IcePlains.BiomeID)
                        {
                            ai1[j1 + i1 * par3] = BiomeGenBase.FrozenOcean.BiomeID;
                        }
                        else
                        {
                            ai1[j1 + i1 * par3] = 0;
                        }

                        continue;
                    }

                    if (k2 > 0 && (k1 == 0 || l1 == 0 || i2 == 0 || j2 == 0))
                    {
                        if (NextInt(5) == 0)
                        {
                            if (k2 == BiomeGenBase.IcePlains.BiomeID)
                            {
                                ai1[j1 + i1 * par3] = BiomeGenBase.FrozenOcean.BiomeID;
                            }
                            else
                            {
                                ai1[j1 + i1 * par3] = 0;
                            }
                        }
                        else
                        {
                            ai1[j1 + i1 * par3] = k2;
                        }
                    }
                    else
                    {
                        ai1[j1 + i1 * par3] = k2;
                    }
                }
            }

            return(ai1);
        }
Пример #11
0
        /// <summary>
        /// Returns a list of integer values generated by this layer. These may be interpreted as temperatures, rainfall
        /// amounts, or biomeList[] indices based on the particular GenLayer subclass.
        /// </summary>
        public override int[] GetInts(int par1, int par2, int par3, int par4)
        {
            int[] ai  = Parent.GetInts(par1 - 1, par2 - 1, par3 + 2, par4 + 2);
            int[] ai1 = IntCache.GetIntCache(par3 * par4);

            for (int i = 0; i < par4; i++)
            {
                for (int j = 0; j < par3; j++)
                {
                    InitChunkSeed(j + par1, i + par2);
                    int k = ai[j + 1 + (i + 1) * (par3 + 2)];

                    if (k == BiomeGenBase.MushroomIsland.BiomeID)
                    {
                        int l  = ai[j + 1 + ((i + 1) - 1) * (par3 + 2)];
                        int k1 = ai[j + 1 + 1 + (i + 1) * (par3 + 2)];
                        int j2 = ai[((j + 1) - 1) + (i + 1) * (par3 + 2)];
                        int i3 = ai[j + 1 + (i + 1 + 1) * (par3 + 2)];

                        if (l == BiomeGenBase.Ocean.BiomeID || k1 == BiomeGenBase.Ocean.BiomeID || j2 == BiomeGenBase.Ocean.BiomeID || i3 == BiomeGenBase.Ocean.BiomeID)
                        {
                            ai1[j + i * par3] = BiomeGenBase.MushroomIslandShore.BiomeID;
                        }
                        else
                        {
                            ai1[j + i * par3] = k;
                        }

                        continue;
                    }

                    if (k != BiomeGenBase.Ocean.BiomeID && k != BiomeGenBase.River.BiomeID && k != BiomeGenBase.Swampland.BiomeID && k != BiomeGenBase.ExtremeHills.BiomeID)
                    {
                        int i1 = ai[j + 1 + ((i + 1) - 1) * (par3 + 2)];
                        int l1 = ai[j + 1 + 1 + (i + 1) * (par3 + 2)];
                        int k2 = ai[((j + 1) - 1) + (i + 1) * (par3 + 2)];
                        int j3 = ai[j + 1 + (i + 1 + 1) * (par3 + 2)];

                        if (i1 == BiomeGenBase.Ocean.BiomeID || l1 == BiomeGenBase.Ocean.BiomeID || k2 == BiomeGenBase.Ocean.BiomeID || j3 == BiomeGenBase.Ocean.BiomeID)
                        {
                            ai1[j + i * par3] = BiomeGenBase.Beach.BiomeID;
                        }
                        else
                        {
                            ai1[j + i * par3] = k;
                        }

                        continue;
                    }

                    if (k == BiomeGenBase.ExtremeHills.BiomeID)
                    {
                        int j1 = ai[j + 1 + ((i + 1) - 1) * (par3 + 2)];
                        int i2 = ai[j + 1 + 1 + (i + 1) * (par3 + 2)];
                        int l2 = ai[((j + 1) - 1) + (i + 1) * (par3 + 2)];
                        int k3 = ai[j + 1 + (i + 1 + 1) * (par3 + 2)];

                        if (j1 != BiomeGenBase.ExtremeHills.BiomeID || i2 != BiomeGenBase.ExtremeHills.BiomeID || l2 != BiomeGenBase.ExtremeHills.BiomeID || k3 != BiomeGenBase.ExtremeHills.BiomeID)
                        {
                            ai1[j + i * par3] = BiomeGenBase.ExtremeHillsEdge.BiomeID;
                        }
                        else
                        {
                            ai1[j + i * par3] = k;
                        }
                    }
                    else
                    {
                        ai1[j + i * par3] = k;
                    }
                }
            }

            return(ai1);
        }
Пример #12
0
        /// <summary>
        /// Returns a list of integer values generated by this layer. These may be interpreted as temperatures, rainfall
        /// amounts, or biomeList[] indices based on the particular GenLayer subclass.
        /// </summary>
        public override int[] GetInts(int par1, int par2, int par3, int par4)
        {
            int[] ai  = Parent.GetInts(par1 - 1, par2 - 1, par3 + 2, par4 + 2);
            int[] ai1 = IntCache.GetIntCache(par3 * par4);

            for (int i = 0; i < par4; i++)
            {
                for (int j = 0; j < par3; j++)
                {
                    InitChunkSeed(j + par1, i + par2);
                    int k = ai[j + 1 + (i + 1) * (par3 + 2)];

                    if (NextInt(3) == 0)
                    {
                        int l = k;

                        if (k == BiomeGenBase.Desert.BiomeID)
                        {
                            l = BiomeGenBase.DesertHills.BiomeID;
                        }
                        else if (k == BiomeGenBase.Forest.BiomeID)
                        {
                            l = BiomeGenBase.ForestHills.BiomeID;
                        }
                        else if (k == BiomeGenBase.Taiga.BiomeID)
                        {
                            l = BiomeGenBase.TaigaHills.BiomeID;
                        }
                        else if (k == BiomeGenBase.Plains.BiomeID)
                        {
                            l = BiomeGenBase.Forest.BiomeID;
                        }
                        else if (k == BiomeGenBase.IcePlains.BiomeID)
                        {
                            l = BiomeGenBase.IceMountains.BiomeID;
                        }
                        else if (k == BiomeGenBase.Jungle.BiomeID)
                        {
                            l = BiomeGenBase.JungleHills.BiomeID;
                        }

                        if (l != k)
                        {
                            int i1 = ai[j + 1 + ((i + 1) - 1) * (par3 + 2)];
                            int j1 = ai[j + 1 + 1 + (i + 1) * (par3 + 2)];
                            int k1 = ai[((j + 1) - 1) + (i + 1) * (par3 + 2)];
                            int l1 = ai[j + 1 + (i + 1 + 1) * (par3 + 2)];

                            if (i1 == k && j1 == k && k1 == k && l1 == k)
                            {
                                ai1[j + i * par3] = l;
                            }
                            else
                            {
                                ai1[j + i * par3] = k;
                            }
                        }
                        else
                        {
                            ai1[j + i * par3] = k;
                        }
                    }
                    else
                    {
                        ai1[j + i * par3] = k;
                    }
                }
            }

            return(ai1);
        }