mirror of
https://github.com/PolyhedralDev/Terra.git
synced 2026-06-17 14:21:08 +00:00
make salt long
This commit is contained in:
+6
-1
@@ -1,5 +1,6 @@
|
|||||||
package com.dfsek.terra.addons.feature.distributor.config;
|
package com.dfsek.terra.addons.feature.distributor.config;
|
||||||
|
|
||||||
|
import com.dfsek.tectonic.annotations.Default;
|
||||||
import com.dfsek.tectonic.annotations.Value;
|
import com.dfsek.tectonic.annotations.Value;
|
||||||
import com.dfsek.tectonic.loading.object.ObjectTemplate;
|
import com.dfsek.tectonic.loading.object.ObjectTemplate;
|
||||||
import com.dfsek.terra.addons.feature.distributor.distributors.NoiseDistributor;
|
import com.dfsek.terra.addons.feature.distributor.distributors.NoiseDistributor;
|
||||||
@@ -10,8 +11,12 @@ public class NoiseDistributorTemplate implements ObjectTemplate<Distributor> {
|
|||||||
@Value("distribution")
|
@Value("distribution")
|
||||||
private NoiseSampler noise;
|
private NoiseSampler noise;
|
||||||
|
|
||||||
|
@Value("threshold")
|
||||||
|
@Default
|
||||||
|
private double threshold = 0;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Distributor get() {
|
public Distributor get() {
|
||||||
return new NoiseDistributor(noise);
|
return new NoiseDistributor(noise, threshold);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+4
-2
@@ -6,12 +6,14 @@ import com.dfsek.terra.api.structure.feature.Distributor;
|
|||||||
public class NoiseDistributor implements Distributor {
|
public class NoiseDistributor implements Distributor {
|
||||||
private final NoiseSampler sampler;
|
private final NoiseSampler sampler;
|
||||||
|
|
||||||
public NoiseDistributor(NoiseSampler sampler) {
|
private final double threshold;
|
||||||
|
public NoiseDistributor(NoiseSampler sampler, double threshold) {
|
||||||
this.sampler = sampler;
|
this.sampler = sampler;
|
||||||
|
this.threshold = threshold;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean matches(int x, int z, long seed) {
|
public boolean matches(int x, int z, long seed) {
|
||||||
return sampler.getNoiseSeeded(seed, x, z) > 0;
|
return sampler.getNoiseSeeded(seed, x, z) > threshold;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+1
@@ -33,6 +33,7 @@ public class CellularNoiseTemplate extends NoiseTemplate<CellularSampler> {
|
|||||||
sampler.setJitterModifier(cellularJitter);
|
sampler.setJitterModifier(cellularJitter);
|
||||||
sampler.setReturnType(cellularReturnType);
|
sampler.setReturnType(cellularReturnType);
|
||||||
sampler.setDistanceFunction(cellularDistanceFunction);
|
sampler.setDistanceFunction(cellularDistanceFunction);
|
||||||
|
sampler.setSalt(salt);
|
||||||
return sampler;
|
return sampler;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+1
@@ -35,6 +35,7 @@ public class GaborNoiseTemplate extends NoiseTemplate<GaborNoiseSampler> {
|
|||||||
gaborNoiseSampler.setDeviation(deviation);
|
gaborNoiseSampler.setDeviation(deviation);
|
||||||
gaborNoiseSampler.setImpulsesPerKernel(impulses);
|
gaborNoiseSampler.setImpulsesPerKernel(impulses);
|
||||||
gaborNoiseSampler.setFrequency0(f0);
|
gaborNoiseSampler.setFrequency0(f0);
|
||||||
|
gaborNoiseSampler.setSalt(salt);
|
||||||
return gaborNoiseSampler;
|
return gaborNoiseSampler;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+2
-1
@@ -4,6 +4,7 @@ import com.dfsek.tectonic.annotations.Default;
|
|||||||
import com.dfsek.tectonic.annotations.Value;
|
import com.dfsek.tectonic.annotations.Value;
|
||||||
import com.dfsek.terra.addons.noise.config.templates.SamplerTemplate;
|
import com.dfsek.terra.addons.noise.config.templates.SamplerTemplate;
|
||||||
import com.dfsek.terra.addons.noise.samplers.noise.NoiseFunction;
|
import com.dfsek.terra.addons.noise.samplers.noise.NoiseFunction;
|
||||||
|
import com.dfsek.terra.api.noise.NoiseSampler;
|
||||||
|
|
||||||
@SuppressWarnings({"unused", "FieldMayBeFinal"})
|
@SuppressWarnings({"unused", "FieldMayBeFinal"})
|
||||||
public abstract class NoiseTemplate<T extends NoiseFunction> extends SamplerTemplate<T> {
|
public abstract class NoiseTemplate<T extends NoiseFunction> extends SamplerTemplate<T> {
|
||||||
@@ -13,5 +14,5 @@ public abstract class NoiseTemplate<T extends NoiseFunction> extends SamplerTemp
|
|||||||
|
|
||||||
@Value("salt")
|
@Value("salt")
|
||||||
@Default
|
@Default
|
||||||
protected int salt = 0;
|
protected long salt = 0;
|
||||||
}
|
}
|
||||||
|
|||||||
+1
@@ -17,6 +17,7 @@ public class SimpleNoiseTemplate extends NoiseTemplate<NoiseFunction> {
|
|||||||
public NoiseSampler get() {
|
public NoiseSampler get() {
|
||||||
NoiseFunction sampler = samplerSupplier.get();
|
NoiseFunction sampler = samplerSupplier.get();
|
||||||
sampler.setFrequency(frequency);
|
sampler.setFrequency(frequency);
|
||||||
|
sampler.setSalt(salt);
|
||||||
return sampler;
|
return sampler;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+12
-2
@@ -21,6 +21,16 @@ public abstract class NoiseFunction implements NoiseSampler {
|
|||||||
|
|
||||||
protected double frequency = 0.02d;
|
protected double frequency = 0.02d;
|
||||||
|
|
||||||
|
protected long salt;
|
||||||
|
|
||||||
|
public void setSalt(long salt) {
|
||||||
|
this.salt = salt;
|
||||||
|
}
|
||||||
|
|
||||||
|
public NoiseFunction() {
|
||||||
|
this.salt = 0;
|
||||||
|
}
|
||||||
|
|
||||||
protected static int fastFloor(double f) {
|
protected static int fastFloor(double f) {
|
||||||
return f >= 0 ? (int) f : (int) f - 1;
|
return f >= 0 ? (int) f : (int) f - 1;
|
||||||
}
|
}
|
||||||
@@ -119,12 +129,12 @@ public abstract class NoiseFunction implements NoiseSampler {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public double getNoiseSeeded(long seed, double x, double y) {
|
public double getNoiseSeeded(long seed, double x, double y) {
|
||||||
return getNoiseRaw(seed, x * frequency, y * frequency);
|
return getNoiseRaw(seed + salt, x * frequency, y * frequency);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public double getNoiseSeeded(long seed, double x, double y, double z) {
|
public double getNoiseSeeded(long seed, double x, double y, double z) {
|
||||||
return getNoiseRaw(seed, x * frequency, y * frequency, z * frequency);
|
return getNoiseRaw(seed + salt, x * frequency, y * frequency, z * frequency);
|
||||||
}
|
}
|
||||||
|
|
||||||
public abstract double getNoiseRaw(long seed, double x, double y);
|
public abstract double getNoiseRaw(long seed, double x, double y);
|
||||||
|
|||||||
Reference in New Issue
Block a user