Move pseudoerosion to NoiseFunction

This commit is contained in:
Zoe Gidiere
2024-09-23 16:37:42 -06:00
parent 3644ee7fca
commit b1ad820e1c
2 changed files with 15 additions and 12 deletions

View File

@@ -3,12 +3,12 @@ package com.dfsek.terra.addons.noise.config.templates.noise;
import com.dfsek.tectonic.api.config.template.annotations.Default;
import com.dfsek.tectonic.api.config.template.annotations.Value;
import com.dfsek.terra.addons.noise.config.templates.SamplerTemplate;
import com.dfsek.terra.addons.noise.samplers.noise.simplex.PseudoErosion;
import com.dfsek.terra.api.config.meta.Meta;
import com.dfsek.terra.api.noise.DerivativeNoiseSampler;
public class PseudoErosionTemplate extends SamplerTemplate<PseudoErosion> {
public class PseudoErosionTemplate extends NoiseTemplate<PseudoErosion> {
@Value("octaves")
@Default
@@ -61,10 +61,17 @@ public class PseudoErosionTemplate extends SamplerTemplate<PseudoErosion> {
@Default
private boolean averageErosionImpulses = true;
@Value("frequency")
@Default
protected @Meta double frequency = 1d;
@Override
public PseudoErosion get() {
return new PseudoErosion(octaves, gain, lacunarity,
PseudoErosion pseudoErosion = new PseudoErosion(octaves, gain, lacunarity,
slopeStrength, branchStrength, strength,
erosionFrequency, heightSampler, slopeMask, slopeMaskFull, slopeMaskNone, jitterModifier, averageErosionImpulses);
pseudoErosion.setFrequency(frequency);
pseudoErosion.setSalt(salt);
return pseudoErosion;
}
}

View File

@@ -1,12 +1,13 @@
package com.dfsek.terra.addons.noise.samplers.noise.simplex;
import com.dfsek.terra.addons.noise.samplers.noise.NoiseFunction;
import com.dfsek.terra.api.noise.DerivativeNoiseSampler;
import com.dfsek.terra.api.noise.NoiseSampler;
import com.dfsek.terra.api.util.MathUtil;
public class PseudoErosion implements NoiseSampler {
public class PseudoErosion extends NoiseFunction {
public static final float TAU = (float) (2.0 * Math.PI);
private static final float HASH_X = 0.3183099f;
private static final float HASH_Y = 0.3678794f;
@@ -106,11 +107,6 @@ public class PseudoErosion implements NoiseSampler {
return new float[] {noise, dirOutX, dirOutY};
}
public static double exp(double val) {
final long tmp = (long) (1512775 * val + 1072632447);
return Double.longBitsToDouble(tmp << 32);
}
public static float smoothstep(float edge0, float edge1, float x) {
// Scale, bias and saturate x to 0..1 range
x = clamp((x - edge0) / (edge1 - edge0), 0.0f, 1.0f);
@@ -176,12 +172,12 @@ public class PseudoErosion implements NoiseSampler {
}
@Override
public double noise(long seed, double x, double y) {
public double getNoiseRaw(long seed, double x, double y) {
return heightMap(seed, (float) x, (float) y);
}
@Override
public double noise(long seed, double x, double y, double z) {
return noise(seed, x, z);
public double getNoiseRaw(long seed, double x, double y, double z) {
return getNoiseRaw(seed, x, z);
}
}