Fork of Poseidon providing Bukkit #1060 to older Beta versions (b1.0-b1.7.3)
at develop 50 lines 1.4 kB view raw
1package org.bukkit.util.noise; 2 3import org.bukkit.World; 4 5import java.util.Random; 6 7/** 8 * Creates perlin noise through unbiased octaves 9 */ 10public class PerlinOctaveGenerator extends OctaveGenerator { 11 /** 12 * Creates a perlin octave generator for the given world 13 * 14 * @param world World to construct this generator for 15 * @param octaves Amount of octaves to create 16 */ 17 public PerlinOctaveGenerator(World world, int octaves) { 18 this(new Random(world.getSeed()), octaves); 19 } 20 21 /** 22 * Creates a perlin octave generator for the given world 23 * 24 * @param seed Seed to construct this generator for 25 * @param octaves Amount of octaves to create 26 */ 27 public PerlinOctaveGenerator(long seed, int octaves) { 28 this(new Random(seed), octaves); 29 } 30 31 /** 32 * Creates a perlin octave generator for the given {@link Random} 33 * 34 * @param rand Random object to construct this generator for 35 * @param octaves Amount of octaves to create 36 */ 37 public PerlinOctaveGenerator(Random rand, int octaves) { 38 super(createOctaves(rand, octaves)); 39 } 40 41 private static NoiseGenerator[] createOctaves(Random rand, int octaves) { 42 NoiseGenerator[] result = new NoiseGenerator[octaves]; 43 44 for (int i = 0; i < octaves; i++) { 45 result[i] = new PerlinNoiseGenerator(rand); 46 } 47 48 return result; 49 } 50}