mirror of
https://github.com/VolmitSoftware/Iris.git
synced 2025-07-18 18:23:06 +00:00
Noise
This commit is contained in:
parent
a6b65c8d76
commit
5d096092b9
@ -22,12 +22,12 @@ import com.volmit.iris.gen.post.PostPotholeFiller;
|
|||||||
import com.volmit.iris.gen.post.PostSlabber;
|
import com.volmit.iris.gen.post.PostSlabber;
|
||||||
import com.volmit.iris.gen.post.PostWallPatcher;
|
import com.volmit.iris.gen.post.PostWallPatcher;
|
||||||
import com.volmit.iris.gen.post.PostWaterlogger;
|
import com.volmit.iris.gen.post.PostWaterlogger;
|
||||||
|
import com.volmit.iris.noise.CNG;
|
||||||
import com.volmit.iris.object.IrisBiome;
|
import com.volmit.iris.object.IrisBiome;
|
||||||
import com.volmit.iris.util.BiomeResult;
|
import com.volmit.iris.util.BiomeResult;
|
||||||
import com.volmit.iris.util.BoardManager;
|
import com.volmit.iris.util.BoardManager;
|
||||||
import com.volmit.iris.util.BoardProvider;
|
import com.volmit.iris.util.BoardProvider;
|
||||||
import com.volmit.iris.util.BoardSettings;
|
import com.volmit.iris.util.BoardSettings;
|
||||||
import com.volmit.iris.util.CNG;
|
|
||||||
import com.volmit.iris.util.ChronoLatch;
|
import com.volmit.iris.util.ChronoLatch;
|
||||||
import com.volmit.iris.util.Form;
|
import com.volmit.iris.util.Form;
|
||||||
import com.volmit.iris.util.GroupedExecutor;
|
import com.volmit.iris.util.GroupedExecutor;
|
||||||
|
@ -4,6 +4,7 @@ import org.bukkit.World;
|
|||||||
|
|
||||||
import com.volmit.iris.Iris;
|
import com.volmit.iris.Iris;
|
||||||
import com.volmit.iris.gen.layer.GenLayerBiome;
|
import com.volmit.iris.gen.layer.GenLayerBiome;
|
||||||
|
import com.volmit.iris.noise.CNG;
|
||||||
import com.volmit.iris.object.InferredType;
|
import com.volmit.iris.object.InferredType;
|
||||||
import com.volmit.iris.object.IrisBiome;
|
import com.volmit.iris.object.IrisBiome;
|
||||||
import com.volmit.iris.object.IrisBiomeGeneratorLink;
|
import com.volmit.iris.object.IrisBiomeGeneratorLink;
|
||||||
@ -11,7 +12,6 @@ import com.volmit.iris.object.IrisDimension;
|
|||||||
import com.volmit.iris.object.IrisGenerator;
|
import com.volmit.iris.object.IrisGenerator;
|
||||||
import com.volmit.iris.object.IrisRegion;
|
import com.volmit.iris.object.IrisRegion;
|
||||||
import com.volmit.iris.util.BiomeResult;
|
import com.volmit.iris.util.BiomeResult;
|
||||||
import com.volmit.iris.util.CNG;
|
|
||||||
import com.volmit.iris.util.ChronoLatch;
|
import com.volmit.iris.util.ChronoLatch;
|
||||||
import com.volmit.iris.util.ChunkPosition;
|
import com.volmit.iris.util.ChunkPosition;
|
||||||
import com.volmit.iris.util.IrisInterpolation;
|
import com.volmit.iris.util.IrisInterpolation;
|
||||||
|
@ -24,6 +24,7 @@ import com.volmit.iris.Iris;
|
|||||||
import com.volmit.iris.IrisContext;
|
import com.volmit.iris.IrisContext;
|
||||||
import com.volmit.iris.IrisDataManager;
|
import com.volmit.iris.IrisDataManager;
|
||||||
import com.volmit.iris.IrisMetrics;
|
import com.volmit.iris.IrisMetrics;
|
||||||
|
import com.volmit.iris.noise.CNG;
|
||||||
import com.volmit.iris.object.IrisBiome;
|
import com.volmit.iris.object.IrisBiome;
|
||||||
import com.volmit.iris.object.IrisDimension;
|
import com.volmit.iris.object.IrisDimension;
|
||||||
import com.volmit.iris.object.IrisGenerator;
|
import com.volmit.iris.object.IrisGenerator;
|
||||||
@ -31,7 +32,6 @@ import com.volmit.iris.object.IrisObject;
|
|||||||
import com.volmit.iris.object.IrisRegion;
|
import com.volmit.iris.object.IrisRegion;
|
||||||
import com.volmit.iris.object.IrisStructure;
|
import com.volmit.iris.object.IrisStructure;
|
||||||
import com.volmit.iris.util.B;
|
import com.volmit.iris.util.B;
|
||||||
import com.volmit.iris.util.CNG;
|
|
||||||
import com.volmit.iris.util.ChronoLatch;
|
import com.volmit.iris.util.ChronoLatch;
|
||||||
import com.volmit.iris.util.J;
|
import com.volmit.iris.util.J;
|
||||||
import com.volmit.iris.util.PrecisionStopwatch;
|
import com.volmit.iris.util.PrecisionStopwatch;
|
||||||
|
@ -11,11 +11,11 @@ import org.bukkit.entity.Player;
|
|||||||
import com.volmit.iris.Iris;
|
import com.volmit.iris.Iris;
|
||||||
import com.volmit.iris.IrisContext;
|
import com.volmit.iris.IrisContext;
|
||||||
import com.volmit.iris.gen.atomics.AtomicRegionData;
|
import com.volmit.iris.gen.atomics.AtomicRegionData;
|
||||||
|
import com.volmit.iris.noise.CNG;
|
||||||
import com.volmit.iris.object.IrisBiome;
|
import com.volmit.iris.object.IrisBiome;
|
||||||
import com.volmit.iris.object.IrisEffect;
|
import com.volmit.iris.object.IrisEffect;
|
||||||
import com.volmit.iris.object.IrisRegion;
|
import com.volmit.iris.object.IrisRegion;
|
||||||
import com.volmit.iris.util.BiomeResult;
|
import com.volmit.iris.util.BiomeResult;
|
||||||
import com.volmit.iris.util.CNG;
|
|
||||||
import com.volmit.iris.util.IrisLock;
|
import com.volmit.iris.util.IrisLock;
|
||||||
import com.volmit.iris.util.KMap;
|
import com.volmit.iris.util.KMap;
|
||||||
import com.volmit.iris.util.RNG;
|
import com.volmit.iris.util.RNG;
|
||||||
|
@ -1,12 +1,12 @@
|
|||||||
package com.volmit.iris.gen.layer;
|
package com.volmit.iris.gen.layer;
|
||||||
|
|
||||||
import com.volmit.iris.gen.ContextualChunkGenerator;
|
import com.volmit.iris.gen.ContextualChunkGenerator;
|
||||||
|
import com.volmit.iris.noise.RarityCellGenerator;
|
||||||
import com.volmit.iris.object.InferredType;
|
import com.volmit.iris.object.InferredType;
|
||||||
import com.volmit.iris.object.IrisBiome;
|
import com.volmit.iris.object.IrisBiome;
|
||||||
import com.volmit.iris.object.IrisRegion;
|
import com.volmit.iris.object.IrisRegion;
|
||||||
import com.volmit.iris.util.BiomeResult;
|
import com.volmit.iris.util.BiomeResult;
|
||||||
import com.volmit.iris.util.RNG;
|
import com.volmit.iris.util.RNG;
|
||||||
import com.volmit.iris.util.RarityCellGenerator;
|
|
||||||
|
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
|
||||||
|
@ -2,14 +2,14 @@ package com.volmit.iris.gen.layer;
|
|||||||
|
|
||||||
import com.volmit.iris.Iris;
|
import com.volmit.iris.Iris;
|
||||||
import com.volmit.iris.gen.DimensionChunkGenerator;
|
import com.volmit.iris.gen.DimensionChunkGenerator;
|
||||||
|
import com.volmit.iris.noise.CellGenerator;
|
||||||
|
import com.volmit.iris.noise.RarityCellGenerator;
|
||||||
import com.volmit.iris.object.InferredType;
|
import com.volmit.iris.object.InferredType;
|
||||||
import com.volmit.iris.object.IrisBiome;
|
import com.volmit.iris.object.IrisBiome;
|
||||||
import com.volmit.iris.object.IrisRegion;
|
import com.volmit.iris.object.IrisRegion;
|
||||||
import com.volmit.iris.object.IrisRegionRidge;
|
import com.volmit.iris.object.IrisRegionRidge;
|
||||||
import com.volmit.iris.object.IrisRegionSpot;
|
import com.volmit.iris.object.IrisRegionSpot;
|
||||||
import com.volmit.iris.util.RarityCellGenerator;
|
|
||||||
import com.volmit.iris.util.BiomeResult;
|
import com.volmit.iris.util.BiomeResult;
|
||||||
import com.volmit.iris.util.CellGenerator;
|
|
||||||
import com.volmit.iris.util.GenLayer;
|
import com.volmit.iris.util.GenLayer;
|
||||||
import com.volmit.iris.util.KList;
|
import com.volmit.iris.util.KList;
|
||||||
import com.volmit.iris.util.RNG;
|
import com.volmit.iris.util.RNG;
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
package com.volmit.iris.gen.layer;
|
package com.volmit.iris.gen.layer;
|
||||||
|
|
||||||
import com.volmit.iris.gen.DimensionChunkGenerator;
|
import com.volmit.iris.gen.DimensionChunkGenerator;
|
||||||
import com.volmit.iris.util.CellGenerator;
|
import com.volmit.iris.noise.CellGenerator;
|
||||||
import com.volmit.iris.util.GenLayer;
|
import com.volmit.iris.util.GenLayer;
|
||||||
import com.volmit.iris.util.IrisInterpolation;
|
import com.volmit.iris.util.IrisInterpolation;
|
||||||
import com.volmit.iris.util.M;
|
import com.volmit.iris.util.M;
|
||||||
|
@ -5,16 +5,16 @@ import org.bukkit.block.data.BlockData;
|
|||||||
|
|
||||||
import com.volmit.iris.gen.DimensionChunkGenerator;
|
import com.volmit.iris.gen.DimensionChunkGenerator;
|
||||||
import com.volmit.iris.gen.atomics.AtomicSliver;
|
import com.volmit.iris.gen.atomics.AtomicSliver;
|
||||||
|
import com.volmit.iris.noise.CNG;
|
||||||
|
import com.volmit.iris.noise.FastNoise;
|
||||||
|
import com.volmit.iris.noise.FastNoise.CellularDistanceFunction;
|
||||||
|
import com.volmit.iris.noise.FastNoise.CellularReturnType;
|
||||||
|
import com.volmit.iris.noise.FastNoise.NoiseType;
|
||||||
import com.volmit.iris.util.B;
|
import com.volmit.iris.util.B;
|
||||||
import com.volmit.iris.util.CNG;
|
|
||||||
import com.volmit.iris.util.CaveResult;
|
import com.volmit.iris.util.CaveResult;
|
||||||
import com.volmit.iris.util.FastNoise;
|
|
||||||
import com.volmit.iris.util.GenLayer;
|
import com.volmit.iris.util.GenLayer;
|
||||||
import com.volmit.iris.util.KList;
|
import com.volmit.iris.util.KList;
|
||||||
import com.volmit.iris.util.RNG;
|
import com.volmit.iris.util.RNG;
|
||||||
import com.volmit.iris.util.FastNoise.CellularDistanceFunction;
|
|
||||||
import com.volmit.iris.util.FastNoise.CellularReturnType;
|
|
||||||
import com.volmit.iris.util.FastNoise.NoiseType;
|
|
||||||
|
|
||||||
public class GenLayerCave extends GenLayer
|
public class GenLayerCave extends GenLayer
|
||||||
{
|
{
|
||||||
|
@ -1,9 +1,9 @@
|
|||||||
package com.volmit.iris.util;
|
package com.volmit.iris.noise;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Base class for all noise generators
|
* Base class for all noise generators
|
||||||
*/
|
*/
|
||||||
public abstract class NoiseGenerator
|
public abstract class BaseNoiseGenerator
|
||||||
{
|
{
|
||||||
protected final int perm[] = new int[512];
|
protected final int perm[] = new int[512];
|
||||||
protected double offsetX;
|
protected double offsetX;
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
package com.volmit.iris.util;
|
package com.volmit.iris.noise;
|
||||||
|
|
||||||
import java.util.Random;
|
import java.util.Random;
|
||||||
|
|
||||||
@ -8,7 +8,7 @@ import java.util.Random;
|
|||||||
* @see SimplexNoiseC "Improved" and faster version with slighly
|
* @see SimplexNoiseC "Improved" and faster version with slighly
|
||||||
* different results
|
* different results
|
||||||
*/
|
*/
|
||||||
public class BasePerlinNoiseGenerator extends NoiseGenerator
|
public class BasePerlinNoiseGenerator extends BaseNoiseGenerator
|
||||||
{
|
{
|
||||||
protected static final int grad3[][] = {{1, 1, 0}, {-1, 1, 0}, {1, -1, 0}, {-1, -1, 0}, {1, 0, 1}, {-1, 0, 1}, {1, 0, -1}, {-1, 0, -1}, {0, 1, 1}, {0, -1, 1}, {0, 1, -1}, {0, -1, -1}};
|
protected static final int grad3[][] = {{1, 1, 0}, {-1, 1, 0}, {1, -1, 0}, {-1, -1, 0}, {1, 0, 1}, {-1, 0, 1}, {1, 0, -1}, {-1, 0, -1}, {0, 1, 1}, {0, -1, 1}, {0, 1, -1}, {0, -1, -1}};
|
||||||
private static final BasePerlinNoiseGenerator instance = new BasePerlinNoiseGenerator();
|
private static final BasePerlinNoiseGenerator instance = new BasePerlinNoiseGenerator();
|
||||||
|
@ -1,4 +1,9 @@
|
|||||||
package com.volmit.iris.util;
|
package com.volmit.iris.noise;
|
||||||
|
|
||||||
|
import com.volmit.iris.util.IrisInterpolation;
|
||||||
|
import com.volmit.iris.util.KList;
|
||||||
|
import com.volmit.iris.util.NoiseInjector;
|
||||||
|
import com.volmit.iris.util.RNG;
|
||||||
|
|
||||||
public class CNG
|
public class CNG
|
||||||
{
|
{
|
||||||
|
@ -1,8 +1,6 @@
|
|||||||
package com.volmit.iris.util;
|
package com.volmit.iris.noise;
|
||||||
|
|
||||||
import com.volmit.iris.util.FastNoise.CellularDistanceFunction;
|
import com.volmit.iris.util.RNG;
|
||||||
import com.volmit.iris.util.FastNoise.CellularReturnType;
|
|
||||||
import com.volmit.iris.util.FastNoise.NoiseType;
|
|
||||||
|
|
||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
import lombok.Setter;
|
import lombok.Setter;
|
||||||
@ -29,13 +27,13 @@ public class CellGenerator
|
|||||||
RNG rx = rng.nextParallelRNG(8735652);
|
RNG rx = rng.nextParallelRNG(8735652);
|
||||||
int s = rx.nextInt();
|
int s = rx.nextInt();
|
||||||
fn = new FastNoise(s);
|
fn = new FastNoise(s);
|
||||||
fn.SetNoiseType(NoiseType.Cellular);
|
fn.SetNoiseType(FastNoise.NoiseType.Cellular);
|
||||||
fn.SetCellularReturnType(CellularReturnType.CellValue);
|
fn.SetCellularReturnType(FastNoise.CellularReturnType.CellValue);
|
||||||
fn.SetCellularDistanceFunction(CellularDistanceFunction.Natural);
|
fn.SetCellularDistanceFunction(FastNoise.CellularDistanceFunction.Natural);
|
||||||
fd = new FastNoise(s);
|
fd = new FastNoise(s);
|
||||||
fd.SetNoiseType(NoiseType.Cellular);
|
fd.SetNoiseType(FastNoise.NoiseType.Cellular);
|
||||||
fd.SetCellularReturnType(CellularReturnType.Distance2Sub);
|
fd.SetCellularReturnType(FastNoise.CellularReturnType.Distance2Sub);
|
||||||
fd.SetCellularDistanceFunction(CellularDistanceFunction.Natural);
|
fd.SetCellularDistanceFunction(FastNoise.CellularDistanceFunction.Natural);
|
||||||
}
|
}
|
||||||
|
|
||||||
public float getDistance(double x, double z)
|
public float getDistance(double x, double z)
|
||||||
|
31
src/main/java/com/volmit/iris/noise/CellHeightNoise.java
Normal file
31
src/main/java/com/volmit/iris/noise/CellHeightNoise.java
Normal file
@ -0,0 +1,31 @@
|
|||||||
|
package com.volmit.iris.noise;
|
||||||
|
|
||||||
|
public class CellHeightNoise implements NoiseGenerator {
|
||||||
|
private final FastNoise n;
|
||||||
|
|
||||||
|
public CellHeightNoise(long seed) {
|
||||||
|
this.n = new FastNoise((int) seed);
|
||||||
|
n.SetNoiseType(FastNoise.NoiseType.Cellular);
|
||||||
|
n.SetCellularReturnType(FastNoise.CellularReturnType.Distance2Sub);
|
||||||
|
n.SetCellularDistanceFunction(FastNoise.CellularDistanceFunction.Natural);
|
||||||
|
}
|
||||||
|
|
||||||
|
private double filter(double noise) {
|
||||||
|
return (noise / 2D) + 0.5D;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public double noise(double x) {
|
||||||
|
return filter(n.GetCellular((float) x, 0));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public double noise(double x, double z) {
|
||||||
|
return filter(n.GetCellular((float) x, (float) z));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public double noise(double x, double y, double z) {
|
||||||
|
return filter(n.GetCellular((float) x, (float) y, (float) z));
|
||||||
|
}
|
||||||
|
}
|
27
src/main/java/com/volmit/iris/noise/CellularNoise.java
Normal file
27
src/main/java/com/volmit/iris/noise/CellularNoise.java
Normal file
@ -0,0 +1,27 @@
|
|||||||
|
package com.volmit.iris.noise;
|
||||||
|
|
||||||
|
public class CellularNoise implements NoiseGenerator {
|
||||||
|
private final FastNoise n;
|
||||||
|
|
||||||
|
public CellularNoise(long seed) {
|
||||||
|
this.n = new FastNoise((int) seed);
|
||||||
|
n.SetNoiseType(FastNoise.NoiseType.Cellular);
|
||||||
|
n.SetCellularReturnType(FastNoise.CellularReturnType.CellValue);
|
||||||
|
n.SetCellularDistanceFunction(FastNoise.CellularDistanceFunction.Natural);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public double noise(double x) {
|
||||||
|
return (n.GetCellular((float) x, 0) / 2D) + 0.5D;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public double noise(double x, double z) {
|
||||||
|
return (n.GetCellular((float) x, (float) z) / 2D) + 0.5D;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public double noise(double x, double y, double z) {
|
||||||
|
return (n.GetCellular((float) x, (float) y, (float) z) / 2D) + 0.5D;
|
||||||
|
}
|
||||||
|
}
|
@ -25,7 +25,7 @@
|
|||||||
// The developer's email is jorzixdan.me2@gzixmail.com (for great email, take
|
// The developer's email is jorzixdan.me2@gzixmail.com (for great email, take
|
||||||
// off every 'zix'.)
|
// off every 'zix'.)
|
||||||
//
|
//
|
||||||
package com.volmit.iris.util;
|
package com.volmit.iris.noise;
|
||||||
|
|
||||||
import javax.vecmath.Vector2f;
|
import javax.vecmath.Vector2f;
|
||||||
import javax.vecmath.Vector3f;
|
import javax.vecmath.Vector3f;
|
||||||
|
7
src/main/java/com/volmit/iris/noise/NoiseFactory.java
Normal file
7
src/main/java/com/volmit/iris/noise/NoiseFactory.java
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
package com.volmit.iris.noise;
|
||||||
|
|
||||||
|
@FunctionalInterface
|
||||||
|
public interface NoiseFactory
|
||||||
|
{
|
||||||
|
NoiseGenerator create(long seed);
|
||||||
|
}
|
10
src/main/java/com/volmit/iris/noise/NoiseGenerator.java
Normal file
10
src/main/java/com/volmit/iris/noise/NoiseGenerator.java
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
package com.volmit.iris.noise;
|
||||||
|
|
||||||
|
public interface NoiseGenerator
|
||||||
|
{
|
||||||
|
public double noise(double x);
|
||||||
|
|
||||||
|
public double noise(double x, double z);
|
||||||
|
|
||||||
|
public double noise(double x, double y, double z);
|
||||||
|
}
|
20
src/main/java/com/volmit/iris/noise/NoiseType.java
Normal file
20
src/main/java/com/volmit/iris/noise/NoiseType.java
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
package com.volmit.iris.noise;
|
||||||
|
|
||||||
|
public enum NoiseType {
|
||||||
|
WHITE(seed -> new WhiteNoise(seed)),
|
||||||
|
SIMPLEX(seed -> new SimplexNoise(seed)),
|
||||||
|
CELLULAR(seed -> new CellularNoise(seed)),
|
||||||
|
CELLULAR_HEIGHT(seed -> new CellHeightNoise(seed)),
|
||||||
|
VASCULAR(seed -> new VascularNoise(seed));
|
||||||
|
|
||||||
|
private NoiseFactory f;
|
||||||
|
|
||||||
|
private NoiseType(NoiseFactory f) {
|
||||||
|
this.f = f;
|
||||||
|
}
|
||||||
|
|
||||||
|
public NoiseGenerator create(long seed)
|
||||||
|
{
|
||||||
|
return f.create(seed);
|
||||||
|
}
|
||||||
|
}
|
1014
src/main/java/com/volmit/iris/noise/OpenSimplex.java
Normal file
1014
src/main/java/com/volmit/iris/noise/OpenSimplex.java
Normal file
File diff suppressed because it is too large
Load Diff
@ -1,4 +1,4 @@
|
|||||||
package com.volmit.iris.util;
|
package com.volmit.iris.noise;
|
||||||
|
|
||||||
import java.util.Random;
|
import java.util.Random;
|
||||||
|
|
||||||
|
@ -1,7 +1,12 @@
|
|||||||
package com.volmit.iris.util;
|
package com.volmit.iris.noise;
|
||||||
|
|
||||||
import java.util.function.Function;
|
import java.util.function.Function;
|
||||||
|
|
||||||
|
import com.volmit.iris.util.KList;
|
||||||
|
import com.volmit.iris.util.KMap;
|
||||||
|
import com.volmit.iris.util.M;
|
||||||
|
import com.volmit.iris.util.RNG;
|
||||||
|
|
||||||
public class PolygonGenerator
|
public class PolygonGenerator
|
||||||
{
|
{
|
||||||
private double[] rarity;
|
private double[] rarity;
|
||||||
|
@ -1,4 +1,8 @@
|
|||||||
package com.volmit.iris.util;
|
package com.volmit.iris.noise;
|
||||||
|
|
||||||
|
import com.volmit.iris.util.IRare;
|
||||||
|
import com.volmit.iris.util.KList;
|
||||||
|
import com.volmit.iris.util.RNG;
|
||||||
|
|
||||||
public class RarityCellGenerator<T extends IRare> extends CellGenerator
|
public class RarityCellGenerator<T extends IRare> extends CellGenerator
|
||||||
{
|
{
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
package com.volmit.iris.util;
|
package com.volmit.iris.noise;
|
||||||
|
|
||||||
import java.util.Random;
|
import java.util.Random;
|
||||||
|
|
||||||
|
24
src/main/java/com/volmit/iris/noise/SimplexNoise.java
Normal file
24
src/main/java/com/volmit/iris/noise/SimplexNoise.java
Normal file
@ -0,0 +1,24 @@
|
|||||||
|
package com.volmit.iris.noise;
|
||||||
|
|
||||||
|
public class SimplexNoise implements NoiseGenerator {
|
||||||
|
private final OpenSimplex n;
|
||||||
|
|
||||||
|
public SimplexNoise(long seed) {
|
||||||
|
this.n = new OpenSimplex(seed);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public double noise(double x) {
|
||||||
|
return (n.noise2(x, 0) / 2D) + 0.5D;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public double noise(double x, double z) {
|
||||||
|
return (n.noise2(x, z) / 2D) + 0.5D;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public double noise(double x, double y, double z) {
|
||||||
|
return (n.noise3_XZBeforeY(x, y, z) / 2D) + 0.5D;
|
||||||
|
}
|
||||||
|
}
|
17
src/main/java/com/volmit/iris/noise/Test.java
Normal file
17
src/main/java/com/volmit/iris/noise/Test.java
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
package com.volmit.iris.noise;
|
||||||
|
|
||||||
|
public class Test {
|
||||||
|
|
||||||
|
public static void main(String[] args) {
|
||||||
|
NoiseGenerator t = null;
|
||||||
|
|
||||||
|
for (NoiseType i : NoiseType.values()) {
|
||||||
|
System.out.println("Test: " + i.name());
|
||||||
|
t = i.create(0);
|
||||||
|
for (int j = 0; j < 100; j++) {
|
||||||
|
System.out.println(t.noise(j * 1));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
31
src/main/java/com/volmit/iris/noise/VascularNoise.java
Normal file
31
src/main/java/com/volmit/iris/noise/VascularNoise.java
Normal file
@ -0,0 +1,31 @@
|
|||||||
|
package com.volmit.iris.noise;
|
||||||
|
|
||||||
|
public class VascularNoise implements NoiseGenerator {
|
||||||
|
private final FastNoise n;
|
||||||
|
|
||||||
|
public VascularNoise(long seed) {
|
||||||
|
this.n = new FastNoise((int) seed);
|
||||||
|
n.SetNoiseType(FastNoise.NoiseType.Cellular);
|
||||||
|
n.SetCellularReturnType(FastNoise.CellularReturnType.Distance2Sub);
|
||||||
|
n.SetCellularDistanceFunction(FastNoise.CellularDistanceFunction.Natural);
|
||||||
|
}
|
||||||
|
|
||||||
|
private double filter(double noise) {
|
||||||
|
return 1D - ((noise / 2D) + 0.5D);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public double noise(double x) {
|
||||||
|
return filter(n.GetCellular((float) x, 0));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public double noise(double x, double z) {
|
||||||
|
return filter(n.GetCellular((float) x, (float) z));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public double noise(double x, double y, double z) {
|
||||||
|
return filter(n.GetCellular((float) x, (float) y, (float) z));
|
||||||
|
}
|
||||||
|
}
|
25
src/main/java/com/volmit/iris/noise/WhiteNoise.java
Normal file
25
src/main/java/com/volmit/iris/noise/WhiteNoise.java
Normal file
@ -0,0 +1,25 @@
|
|||||||
|
package com.volmit.iris.noise;
|
||||||
|
|
||||||
|
public class WhiteNoise implements NoiseGenerator {
|
||||||
|
private final FastNoise n;
|
||||||
|
|
||||||
|
public WhiteNoise(long seed) {
|
||||||
|
n = new FastNoise((int) seed);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public double noise(double x) {
|
||||||
|
return (n.GetWhiteNoise((float) x, 0) / 2D) + 0.5D;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public double noise(double x, double z) {
|
||||||
|
return (n.GetWhiteNoise((float) x, (float) z) / 2D) + 0.5D;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public double noise(double x, double y, double z) {
|
||||||
|
return (n.GetWhiteNoise((float) x, (float) y, (float) z) / 2D) + 0.5D;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
@ -6,8 +6,9 @@ import org.bukkit.block.data.BlockData;
|
|||||||
import com.volmit.iris.Iris;
|
import com.volmit.iris.Iris;
|
||||||
import com.volmit.iris.gen.ContextualChunkGenerator;
|
import com.volmit.iris.gen.ContextualChunkGenerator;
|
||||||
import com.volmit.iris.gen.atomics.AtomicCache;
|
import com.volmit.iris.gen.atomics.AtomicCache;
|
||||||
|
import com.volmit.iris.noise.CNG;
|
||||||
|
import com.volmit.iris.noise.RarityCellGenerator;
|
||||||
import com.volmit.iris.util.ArrayType;
|
import com.volmit.iris.util.ArrayType;
|
||||||
import com.volmit.iris.util.CNG;
|
|
||||||
import com.volmit.iris.util.Desc;
|
import com.volmit.iris.util.Desc;
|
||||||
import com.volmit.iris.util.DontObfuscate;
|
import com.volmit.iris.util.DontObfuscate;
|
||||||
import com.volmit.iris.util.IRare;
|
import com.volmit.iris.util.IRare;
|
||||||
@ -16,7 +17,6 @@ import com.volmit.iris.util.KSet;
|
|||||||
import com.volmit.iris.util.MaxNumber;
|
import com.volmit.iris.util.MaxNumber;
|
||||||
import com.volmit.iris.util.MinNumber;
|
import com.volmit.iris.util.MinNumber;
|
||||||
import com.volmit.iris.util.RNG;
|
import com.volmit.iris.util.RNG;
|
||||||
import com.volmit.iris.util.RarityCellGenerator;
|
|
||||||
import com.volmit.iris.util.Required;
|
import com.volmit.iris.util.Required;
|
||||||
|
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
@ -3,9 +3,9 @@ package com.volmit.iris.object;
|
|||||||
import org.bukkit.block.data.BlockData;
|
import org.bukkit.block.data.BlockData;
|
||||||
|
|
||||||
import com.volmit.iris.gen.atomics.AtomicCache;
|
import com.volmit.iris.gen.atomics.AtomicCache;
|
||||||
|
import com.volmit.iris.noise.CNG;
|
||||||
import com.volmit.iris.util.ArrayType;
|
import com.volmit.iris.util.ArrayType;
|
||||||
import com.volmit.iris.util.B;
|
import com.volmit.iris.util.B;
|
||||||
import com.volmit.iris.util.CNG;
|
|
||||||
import com.volmit.iris.util.Desc;
|
import com.volmit.iris.util.Desc;
|
||||||
import com.volmit.iris.util.DontObfuscate;
|
import com.volmit.iris.util.DontObfuscate;
|
||||||
import com.volmit.iris.util.KList;
|
import com.volmit.iris.util.KList;
|
||||||
|
@ -3,9 +3,9 @@ package com.volmit.iris.object;
|
|||||||
import org.bukkit.block.data.BlockData;
|
import org.bukkit.block.data.BlockData;
|
||||||
|
|
||||||
import com.volmit.iris.gen.atomics.AtomicCache;
|
import com.volmit.iris.gen.atomics.AtomicCache;
|
||||||
|
import com.volmit.iris.noise.CNG;
|
||||||
import com.volmit.iris.util.ArrayType;
|
import com.volmit.iris.util.ArrayType;
|
||||||
import com.volmit.iris.util.B;
|
import com.volmit.iris.util.B;
|
||||||
import com.volmit.iris.util.CNG;
|
|
||||||
import com.volmit.iris.util.Desc;
|
import com.volmit.iris.util.Desc;
|
||||||
import com.volmit.iris.util.DontObfuscate;
|
import com.volmit.iris.util.DontObfuscate;
|
||||||
import com.volmit.iris.util.KList;
|
import com.volmit.iris.util.KList;
|
||||||
|
@ -9,9 +9,9 @@ import com.volmit.iris.Iris;
|
|||||||
import com.volmit.iris.gen.ContextualChunkGenerator;
|
import com.volmit.iris.gen.ContextualChunkGenerator;
|
||||||
import com.volmit.iris.gen.PostBlockChunkGenerator;
|
import com.volmit.iris.gen.PostBlockChunkGenerator;
|
||||||
import com.volmit.iris.gen.atomics.AtomicCache;
|
import com.volmit.iris.gen.atomics.AtomicCache;
|
||||||
|
import com.volmit.iris.noise.CNG;
|
||||||
import com.volmit.iris.util.ArrayType;
|
import com.volmit.iris.util.ArrayType;
|
||||||
import com.volmit.iris.util.B;
|
import com.volmit.iris.util.B;
|
||||||
import com.volmit.iris.util.CNG;
|
|
||||||
import com.volmit.iris.util.ChunkPosition;
|
import com.volmit.iris.util.ChunkPosition;
|
||||||
import com.volmit.iris.util.Desc;
|
import com.volmit.iris.util.Desc;
|
||||||
import com.volmit.iris.util.DontObfuscate;
|
import com.volmit.iris.util.DontObfuscate;
|
||||||
|
@ -2,8 +2,8 @@ package com.volmit.iris.object;
|
|||||||
|
|
||||||
import com.volmit.iris.Iris;
|
import com.volmit.iris.Iris;
|
||||||
import com.volmit.iris.gen.atomics.AtomicCache;
|
import com.volmit.iris.gen.atomics.AtomicCache;
|
||||||
|
import com.volmit.iris.noise.CellGenerator;
|
||||||
import com.volmit.iris.util.ArrayType;
|
import com.volmit.iris.util.ArrayType;
|
||||||
import com.volmit.iris.util.CellGenerator;
|
|
||||||
import com.volmit.iris.util.Desc;
|
import com.volmit.iris.util.Desc;
|
||||||
import com.volmit.iris.util.DontObfuscate;
|
import com.volmit.iris.util.DontObfuscate;
|
||||||
import com.volmit.iris.util.IrisInterpolation;
|
import com.volmit.iris.util.IrisInterpolation;
|
||||||
|
@ -1,8 +1,8 @@
|
|||||||
package com.volmit.iris.object;
|
package com.volmit.iris.object;
|
||||||
|
|
||||||
import com.volmit.iris.gen.atomics.AtomicCache;
|
import com.volmit.iris.gen.atomics.AtomicCache;
|
||||||
|
import com.volmit.iris.noise.CNG;
|
||||||
import com.volmit.iris.util.ArrayType;
|
import com.volmit.iris.util.ArrayType;
|
||||||
import com.volmit.iris.util.CNG;
|
|
||||||
import com.volmit.iris.util.Desc;
|
import com.volmit.iris.util.Desc;
|
||||||
import com.volmit.iris.util.DontObfuscate;
|
import com.volmit.iris.util.DontObfuscate;
|
||||||
import com.volmit.iris.util.IrisInterpolation;
|
import com.volmit.iris.util.IrisInterpolation;
|
||||||
|
@ -3,8 +3,8 @@ package com.volmit.iris.object;
|
|||||||
import com.volmit.iris.Iris;
|
import com.volmit.iris.Iris;
|
||||||
import com.volmit.iris.gen.ContextualChunkGenerator;
|
import com.volmit.iris.gen.ContextualChunkGenerator;
|
||||||
import com.volmit.iris.gen.atomics.AtomicCache;
|
import com.volmit.iris.gen.atomics.AtomicCache;
|
||||||
|
import com.volmit.iris.noise.CNG;
|
||||||
import com.volmit.iris.util.ArrayType;
|
import com.volmit.iris.util.ArrayType;
|
||||||
import com.volmit.iris.util.CNG;
|
|
||||||
import com.volmit.iris.util.Desc;
|
import com.volmit.iris.util.Desc;
|
||||||
import com.volmit.iris.util.DontObfuscate;
|
import com.volmit.iris.util.DontObfuscate;
|
||||||
import com.volmit.iris.util.IRare;
|
import com.volmit.iris.util.IRare;
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
package com.volmit.iris.object;
|
package com.volmit.iris.object;
|
||||||
|
|
||||||
import com.volmit.iris.gen.atomics.AtomicCache;
|
import com.volmit.iris.gen.atomics.AtomicCache;
|
||||||
import com.volmit.iris.util.CellGenerator;
|
import com.volmit.iris.noise.CellGenerator;
|
||||||
import com.volmit.iris.util.Desc;
|
import com.volmit.iris.util.Desc;
|
||||||
import com.volmit.iris.util.DontObfuscate;
|
import com.volmit.iris.util.DontObfuscate;
|
||||||
import com.volmit.iris.util.MaxNumber;
|
import com.volmit.iris.util.MaxNumber;
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
package com.volmit.iris.object;
|
package com.volmit.iris.object;
|
||||||
|
|
||||||
import com.volmit.iris.gen.atomics.AtomicCache;
|
import com.volmit.iris.gen.atomics.AtomicCache;
|
||||||
import com.volmit.iris.util.CellGenerator;
|
import com.volmit.iris.noise.CellGenerator;
|
||||||
import com.volmit.iris.util.Desc;
|
import com.volmit.iris.util.Desc;
|
||||||
import com.volmit.iris.util.DontObfuscate;
|
import com.volmit.iris.util.DontObfuscate;
|
||||||
import com.volmit.iris.util.MinNumber;
|
import com.volmit.iris.util.MinNumber;
|
||||||
|
@ -1,9 +1,9 @@
|
|||||||
package com.volmit.iris.object;
|
package com.volmit.iris.object;
|
||||||
|
|
||||||
import com.volmit.iris.gen.atomics.AtomicCache;
|
import com.volmit.iris.gen.atomics.AtomicCache;
|
||||||
|
import com.volmit.iris.noise.CNG;
|
||||||
import com.volmit.iris.util.ArrayType;
|
import com.volmit.iris.util.ArrayType;
|
||||||
import com.volmit.iris.util.BlockPosition;
|
import com.volmit.iris.util.BlockPosition;
|
||||||
import com.volmit.iris.util.CNG;
|
|
||||||
import com.volmit.iris.util.Desc;
|
import com.volmit.iris.util.Desc;
|
||||||
import com.volmit.iris.util.DontObfuscate;
|
import com.volmit.iris.util.DontObfuscate;
|
||||||
import com.volmit.iris.util.KList;
|
import com.volmit.iris.util.KList;
|
||||||
|
@ -4,7 +4,7 @@ import com.volmit.iris.Iris;
|
|||||||
import com.volmit.iris.gen.ContextualChunkGenerator;
|
import com.volmit.iris.gen.ContextualChunkGenerator;
|
||||||
import com.volmit.iris.gen.ParallaxChunkGenerator;
|
import com.volmit.iris.gen.ParallaxChunkGenerator;
|
||||||
import com.volmit.iris.gen.atomics.AtomicCache;
|
import com.volmit.iris.gen.atomics.AtomicCache;
|
||||||
import com.volmit.iris.util.CellGenerator;
|
import com.volmit.iris.noise.CellGenerator;
|
||||||
import com.volmit.iris.util.Desc;
|
import com.volmit.iris.util.Desc;
|
||||||
import com.volmit.iris.util.DontObfuscate;
|
import com.volmit.iris.util.DontObfuscate;
|
||||||
import com.volmit.iris.util.MaxNumber;
|
import com.volmit.iris.util.MaxNumber;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user