From c3d5b55dcc59c8f61ec97d252658c5a4d9b3f584 Mon Sep 17 00:00:00 2001 From: dfsek Date: Sun, 18 Oct 2020 01:52:54 -0700 Subject: [PATCH] Use ping-pong noise for erosion --- src/main/java/com/dfsek/terra/biome/ErosionNoise.java | 9 ++++----- src/main/java/com/dfsek/terra/biome/TerraBiomeGrid.java | 2 +- .../java/com/dfsek/terra/config/base/ConfigPack.java | 2 -- 3 files changed, 5 insertions(+), 8 deletions(-) diff --git a/src/main/java/com/dfsek/terra/biome/ErosionNoise.java b/src/main/java/com/dfsek/terra/biome/ErosionNoise.java index 7763f66bc..3a931de8f 100644 --- a/src/main/java/com/dfsek/terra/biome/ErosionNoise.java +++ b/src/main/java/com/dfsek/terra/biome/ErosionNoise.java @@ -8,11 +8,11 @@ import org.polydev.gaea.math.FastNoiseLite; public class ErosionNoise { private final double thresh; private final FastNoiseLite noise; - public ErosionNoise(float freq1, double thresh, int octaves, long seed) { + public ErosionNoise(float freq1, double thresh, long seed) { FastNoiseLite main = new FastNoiseLite((int) (seed+1)); main.setNoiseType(FastNoiseLite.NoiseType.OpenSimplex2); - main.setFractalType(FastNoiseLite.FractalType.FBm); - main.setFractalOctaves(octaves); + main.setFractalType(FastNoiseLite.FractalType.PingPong); + main.setFractalOctaves(1); main.setFrequency(freq1); this.thresh = thresh; this.noise = main; @@ -25,7 +25,6 @@ public class ErosionNoise { * @return Whether location is eroded */ boolean isEroded(int x, int z) { - double abs = Math.pow(noise.getNoise(x, z), 2); - return abs < thresh; + return (noise.getNoise(x, z)+1)/2 <= thresh; } } diff --git a/src/main/java/com/dfsek/terra/biome/TerraBiomeGrid.java b/src/main/java/com/dfsek/terra/biome/TerraBiomeGrid.java index 05c3f3349..c083d5bed 100644 --- a/src/main/java/com/dfsek/terra/biome/TerraBiomeGrid.java +++ b/src/main/java/com/dfsek/terra/biome/TerraBiomeGrid.java @@ -27,7 +27,7 @@ public class TerraBiomeGrid extends BiomeGrid { } this.zone = zone; if(c.erosionEnable) { - erode = new ErosionNoise(c.erosionFreq, c.erosionThresh, c.erosionOctaves, w.getSeed()); + erode = new ErosionNoise(c.erosionFreq, c.erosionThresh, w.getSeed()); this.erosionGrid = erosion; } } diff --git a/src/main/java/com/dfsek/terra/config/base/ConfigPack.java b/src/main/java/com/dfsek/terra/config/base/ConfigPack.java index 4f70608b9..4d96d6699 100644 --- a/src/main/java/com/dfsek/terra/config/base/ConfigPack.java +++ b/src/main/java/com/dfsek/terra/config/base/ConfigPack.java @@ -60,7 +60,6 @@ public class ConfigPack extends YamlConfiguration { public final float erosionFreq; public final double erosionThresh; - public final int erosionOctaves; public final boolean erosionEnable; public final String erosionName; @@ -108,7 +107,6 @@ public class ConfigPack extends YamlConfiguration { erosionEnable = getBoolean("erode.enable", false); erosionFreq = (float) getDouble("erode.frequency", 0.01); erosionThresh = getDouble("erode.threshold", 0.04); - erosionOctaves = getInt("erosion.octaves", 4); octaves = getInt("noise.octaves", 4); frequency = (float) getDouble("noise.frequency", 1f/96);