mirror of
https://github.com/PolyhedralDev/Terra.git
synced 2026-02-16 10:30:42 +00:00
Move pseudoerosion to NoiseFunction
This commit is contained in:
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user