Fork of Poseidon providing Bukkit #1060 to older Beta versions (b1.0-b1.7.3)
1package net.minecraft.server;
2
3import java.util.Random;
4
5public class NoiseGeneratorOctaves extends NoiseGenerator {
6
7 private NoiseGeneratorPerlin[] a;
8 private int b;
9
10 public NoiseGeneratorOctaves(Random random, int i) {
11 this.b = i;
12 this.a = new NoiseGeneratorPerlin[i];
13
14 for (int j = 0; j < i; ++j) {
15 this.a[j] = new NoiseGeneratorPerlin(random);
16 }
17 }
18
19 public double a(double d0, double d1) {
20 double d2 = 0.0D;
21 double d3 = 1.0D;
22
23 for (int i = 0; i < this.b; ++i) {
24 d2 += this.a[i].a(d0 * d3, d1 * d3) / d3;
25 d3 /= 2.0D;
26 }
27
28 return d2;
29 }
30
31 public double[] a(double[] adouble, double d0, double d1, double d2, int i, int j, int k, double d3, double d4, double d5) {
32 if (adouble == null) {
33 adouble = new double[i * j * k];
34 } else {
35 for (int l = 0; l < adouble.length; ++l) {
36 adouble[l] = 0.0D;
37 }
38 }
39
40 double d6 = 1.0D;
41
42 for (int i1 = 0; i1 < this.b; ++i1) {
43 this.a[i1].a(adouble, d0, d1, d2, i, j, k, d3 * d6, d4 * d6, d5 * d6, d6);
44 d6 /= 2.0D;
45 }
46
47 return adouble;
48 }
49
50 public double[] a(double[] adouble, int i, int j, int k, int l, double d0, double d1, double d2) {
51 return this.a(adouble, (double) i, 10.0D, (double) j, k, 1, l, d0, 1.0D, d1);
52 }
53}