package net.minecraft.world.gen;
import java.util.Random;
public class NoiseGeneratorPerlin extends NoiseGenerator
{
private NoiseGeneratorSimplex[] field_151603_a;
private int field_151602_b;
private static final String __OBFID = "CL_00000536";
public NoiseGeneratorPerlin(Random p_i45470_1_, int p_i45470_2_)
{
this.field_151602_b = p_i45470_2_;
this.field_151603_a = new NoiseGeneratorSimplex[p_i45470_2_];
for (int j = 0; j < p_i45470_2_; ++j)
{
this.field_151603_a[j] = new NoiseGeneratorSimplex(p_i45470_1_);
}
}
public double func_151601_a(double p_151601_1_, double p_151601_3_)
{
double d2 = 0.0D;
double d3 = 1.0D;
for (int i = 0; i < this.field_151602_b; ++i)
{
d2 += this.field_151603_a[i].func_151605_a(p_151601_1_ * d3, p_151601_3_ * d3) / d3;
d3 /= 2.0D;
}
return d2;
}
public double[] func_151599_a(double[] p_151599_1_, double p_151599_2_, double p_151599_4_, int p_151599_6_, int p_151599_7_, double p_151599_8_, double p_151599_10_, double p_151599_12_)
{
return this.func_151600_a(p_151599_1_, p_151599_2_, p_151599_4_, p_151599_6_, p_151599_7_, p_151599_8_, p_151599_10_, p_151599_12_, 0.5D);
}
public double[] func_151600_a(double[] p_151600_1_, double p_151600_2_, double p_151600_4_, int p_151600_6_, int p_151600_7_, double p_151600_8_, double p_151600_10_, double p_151600_12_, double p_151600_14_)
{
if (p_151600_1_ != null && p_151600_1_.length >= p_151600_6_ * p_151600_7_)
{
for (int k = 0; k < p_151600_1_.length; ++k)
{
p_151600_1_[k] = 0.0D;
}
}
else
{
p_151600_1_ = new double[p_151600_6_ * p_151600_7_];
}
double d7 = 1.0D;
double d6 = 1.0D;
for (int l = 0; l < this.field_151602_b; ++l)
{
this.field_151603_a[l].func_151606_a(p_151600_1_, p_151600_2_, p_151600_4_, p_151600_6_, p_151600_7_, p_151600_8_ * d6 * d7, p_151600_10_ * d6 * d7, 0.55D / d7);
d6 *= p_151600_12_;
d7 *= p_151600_14_;
}
return p_151600_1_;
}
}