예제 #1
0
        private double[] func_4058_a(double[] ad, int i, int j, int k, int l, int i1, int j1)
        {
            if (ad == null)
            {
                ad = new double[l * i1 * j1];
            }
            double d  = 684.41200000000003D;
            double d1 = 684.41200000000003D;

            double[] ad1 = worldObj.getWorldChunkManager().temperature;
            double[] ad2 = worldObj.getWorldChunkManager().humidity;
            field_4226_g = field_715_a.func_4103_a(field_4226_g, i, k, l, j1, 1.121D, 1.121D, 0.5D);
            field_4225_h = field_714_b.func_4103_a(field_4225_h, i, k, l, j1, 200D, 200D, 0.5D);
            field_4229_d = field_703_m.generateNoiseOctaves(field_4229_d, i, j, k, l, i1, j1, d / 80D, d1 / 160D, d / 80D);
            field_4228_e = field_705_k.generateNoiseOctaves(field_4228_e, i, j, k, l, i1, j1, d, d1, d);
            field_4227_f = field_704_l.generateNoiseOctaves(field_4227_f, i, j, k, l, i1, j1, d, d1, d);
            int k1 = 0;
            int l1 = 0;
            int i2 = 16 / l;

            for (int j2 = 0; j2 < l; j2++)
            {
                int k2 = j2 * i2 + i2 / 2;
                for (int l2 = 0; l2 < j1; l2++)
                {
                    int    i3 = l2 * i2 + i2 / 2;
                    double d2 = ad1[k2 * 16 + i3];
                    double d3 = ad2[k2 * 16 + i3] * d2;
                    double d4 = 1.0D - d3;
                    d4 *= d4;
                    d4 *= d4;
                    d4  = 1.0D - d4;
                    double d5 = (field_4226_g[l1] + 256D) / 512D;
                    d5 *= d4;
                    if (d5 > 1.0D)
                    {
                        d5 = 1.0D;
                    }
                    double d6 = field_4225_h[l1] / 8000D;
                    if (d6 < 0.0D)
                    {
                        d6 = -d6 * 0.29999999999999999D;
                    }
                    d6 = d6 * 3D - 2D;
                    if (d6 < 0.0D)
                    {
                        d6 /= 2D;
                        if (d6 < -1D)
                        {
                            d6 = -1D;
                        }
                        d6 /= 1.3999999999999999D;
                        d6 /= 2D;
                        d5  = 0.0D;
                    }
                    else
                    {
                        if (d6 > 1.0D)
                        {
                            d6 = 1.0D;
                        }
                        d6 /= 8D;
                    }
                    if (d5 < 0.0D)
                    {
                        d5 = 0.0D;
                    }
                    d5 += 0.5D;
                    d6  = (d6 * i1) / 16D;
                    double d7 = i1 / 2D + d6 * 4D;
                    l1++;
                    for (int j3 = 0; j3 < i1; j3++)
                    {
                        double d8 = 0.0D;
                        double d9 = ((j3 - d7) * 12D) / d5;
                        if (d9 < 0.0D)
                        {
                            d9 *= 4D;
                        }
                        double d10 = field_4228_e[k1] / 512D;
                        double d11 = field_4227_f[k1] / 512D;
                        double d12 = (field_4229_d[k1] / 10D + 1.0D) / 2D;
                        if (d12 < 0.0D)
                        {
                            d8 = d10;
                        }
                        else if (d12 > 1.0D)
                        {
                            d8 = d11;
                        }
                        else
                        {
                            d8 = d10 + (d11 - d10) * d12;
                        }
                        d8 -= d9;
                        if (j3 > i1 - 4)
                        {
                            double d13 = (j3 - (i1 - 4)) / 3F;
                            d8 = d8 * (1.0D - d13) + -10D * d13;
                        }
                        ad[k1] = d8;
                        k1++;
                    }
                }
            }

            return(ad);
        }