Update Seismic

This commit is contained in:
Zoë Gidiere 2025-06-28 15:45:02 -06:00
parent 77b1960757
commit 21ef8c0dc4
12 changed files with 40 additions and 60 deletions

View File

@ -5,9 +5,9 @@ object Versions {
object Libraries {
const val tectonic = "4.2.1"
const val paralithic = "1.0.3"
const val paralithic = "2.0.0"
const val strata = "1.3.2"
const val seismic = "0.3.4"
const val seismic = "2.0.1"
const val cloud = "2.0.0"

View File

@ -119,21 +119,21 @@ public class NoiseAddon implements AddonInitializer {
noiseRegistry.register(addon.key("PING_PONG"), PingPongTemplate::new);
noiseRegistry.register(addon.key("RIDGED"), RidgedFractalTemplate::new);
noiseRegistry.register(addon.key("OPEN_SIMPLEX_2"), () -> new SimpleNoiseTemplate(OpenSimplex2Sampler::new));
noiseRegistry.register(addon.key("OPEN_SIMPLEX_2S"), () -> new SimpleNoiseTemplate(OpenSimplex2SSampler::new));
noiseRegistry.register(addon.key("PERLIN"), () -> new SimpleNoiseTemplate(PerlinSampler::new));
noiseRegistry.register(addon.key("SIMPLEX"), () -> new SimpleNoiseTemplate(SimplexSampler::new));
noiseRegistry.register(addon.key("OPEN_SIMPLEX_2"), () -> new SimpleNoiseTemplate<>(OpenSimplex2Sampler.class));
noiseRegistry.register(addon.key("OPEN_SIMPLEX_2S"), () -> new SimpleNoiseTemplate<>(OpenSimplex2SSampler.class));
noiseRegistry.register(addon.key("PERLIN"), () -> new SimpleNoiseTemplate<>(PerlinSampler.class));
noiseRegistry.register(addon.key("SIMPLEX"), () -> new SimpleNoiseTemplate<>(SimplexSampler.class));
noiseRegistry.register(addon.key("GABOR"), GaborNoiseTemplate::new);
noiseRegistry.register(addon.key("PSEUDOEROSION"), PseudoErosionTemplate::new);
noiseRegistry.register(addon.key("VALUE"), () -> new SimpleNoiseTemplate(ValueSampler::new));
noiseRegistry.register(addon.key("VALUE_CUBIC"), () -> new SimpleNoiseTemplate(ValueCubicSampler::new));
noiseRegistry.register(addon.key("VALUE"), () -> new SimpleNoiseTemplate<>(ValueSampler.class));
noiseRegistry.register(addon.key("VALUE_CUBIC"), () -> new SimpleNoiseTemplate<>(ValueCubicSampler.class));
noiseRegistry.register(addon.key("CELLULAR"), CellularNoiseTemplate::new);
noiseRegistry.register(addon.key("WHITE_NOISE"), () -> new SimpleNoiseTemplate(WhiteNoiseSampler::new));
noiseRegistry.register(addon.key("POSITIVE_WHITE_NOISE"), () -> new SimpleNoiseTemplate(PositiveWhiteNoiseSampler::new));
noiseRegistry.register(addon.key("GAUSSIAN"), () -> new SimpleNoiseTemplate(GaussianNoiseSampler::new));
noiseRegistry.register(addon.key("WHITE_NOISE"), () -> new SimpleNoiseTemplate<>(WhiteNoiseSampler.class));
noiseRegistry.register(addon.key("POSITIVE_WHITE_NOISE"), () -> new SimpleNoiseTemplate<>(PositiveWhiteNoiseSampler.class));
noiseRegistry.register(addon.key("GAUSSIAN"), () -> new SimpleNoiseTemplate<>(GaussianNoiseSampler.class));
noiseRegistry.register(addon.key("DISTANCE"), DistanceSamplerTemplate::new);

View File

@ -45,8 +45,7 @@ public class KernelTemplate extends SamplerTemplate<KernelSampler> {
}
}
KernelSampler sampler = new KernelSampler(k, function);
sampler.setFrequency(frequency);
KernelSampler sampler = new KernelSampler(frequency, k, function);
return sampler;
}

View File

@ -34,7 +34,7 @@ public class CellularNoiseTemplate extends NoiseTemplate<CellularSampler> {
@Value("lookup")
@Default
private @Meta Sampler lookup = new OpenSimplex2Sampler();
private @Meta Sampler lookup = new OpenSimplex2Sampler(0.02d, 0);
@Value("salt-lookup")
@Default
@ -42,14 +42,7 @@ public class CellularNoiseTemplate extends NoiseTemplate<CellularSampler> {
@Override
public Sampler get() {
CellularSampler sampler = new CellularSampler();
sampler.setNoiseLookup(lookup);
sampler.setFrequency(frequency);
sampler.setJitterModifier(cellularJitter);
sampler.setReturnType(cellularReturnType);
sampler.setDistanceFunction(cellularDistanceFunction);
sampler.setSalt(salt);
sampler.setSaltLookup(saltLookup);
CellularSampler sampler = new CellularSampler(frequency, salt, lookup, cellularDistanceFunction, cellularReturnType, cellularJitter, saltLookup);
return sampler;
}
}

View File

@ -9,7 +9,7 @@ import com.dfsek.terra.addons.noise.config.templates.SamplerTemplate;
import com.dfsek.terra.api.config.meta.Meta;
public class DistanceSamplerTemplate extends SamplerTemplate<DistanceSampler> {
public class DistanceSamplerTemplate extends NoiseTemplate<DistanceSampler> {
@Value("distance-function")
@Default
@ -37,6 +37,6 @@ public class DistanceSamplerTemplate extends SamplerTemplate<DistanceSampler> {
@Override
public DistanceSampler get() {
return new DistanceSampler(distanceFunction, x, y, z, normalize, normalizeRadius);
return new DistanceSampler(salt, distanceFunction, x, y, z, normalize, normalizeRadius);
}
}

View File

@ -37,16 +37,13 @@ public class GaborNoiseTemplate extends NoiseTemplate<GaborSampler> {
@Default
private @Meta double f0 = 0.625;
@Value("a")
@Default
private @Meta double a = 0.1;
@Override
public Sampler get() {
GaborSampler gaborSampler = new GaborSampler();
gaborSampler.setFrequency(frequency);
gaborSampler.setRotation(rotation);
gaborSampler.setIsotropic(isotropic);
gaborSampler.setDeviation(deviation);
gaborSampler.setImpulsesPerKernel(impulses);
gaborSampler.setFrequency0(f0);
gaborSampler.setSalt(salt);
GaborSampler gaborSampler = new GaborSampler(frequency, salt, f0, deviation, rotation, impulses, a, isotropic);
return gaborSampler;
}
}

View File

@ -45,7 +45,7 @@ public class PseudoErosionTemplate extends NoiseTemplate<PseudoErosionSampler> {
@Value("sampler")
@Default
private DerivativeSampler heightSampler = new OpenSimplex2Sampler();
private DerivativeSampler heightSampler = new OpenSimplex2Sampler(0.02d, 0);
@Value("slope-mask.enable")
@Default
@ -69,11 +69,9 @@ public class PseudoErosionTemplate extends NoiseTemplate<PseudoErosionSampler> {
@Override
public PseudoErosionSampler get() {
PseudoErosionSampler pseudoErosion = new PseudoErosionSampler(octaves, gain, lacunarity,
PseudoErosionSampler pseudoErosion = new PseudoErosionSampler(frequency, salt, octaves, gain, lacunarity,
slopeStrength, branchStrength, strength,
erosionFrequency, heightSampler, slopeMask, slopeMaskFull, slopeMaskNone, jitterModifier, averageErosionImpulses);
pseudoErosion.setFrequency(frequency);
pseudoErosion.setSalt(salt);
return pseudoErosion;
}
}

View File

@ -10,21 +10,26 @@ package com.dfsek.terra.addons.noise.config.templates.noise;
import com.dfsek.seismic.algorithms.sampler.noise.NoiseFunction;
import com.dfsek.seismic.type.sampler.Sampler;
import java.lang.reflect.InvocationTargetException;
import java.util.function.Supplier;
public class SimpleNoiseTemplate extends NoiseTemplate<NoiseFunction> {
private final Supplier<NoiseFunction> samplerSupplier;
public class SimpleNoiseTemplate<T extends NoiseFunction> extends NoiseTemplate<NoiseFunction> {
private final Class<T> samplerClass;
public SimpleNoiseTemplate(Supplier<NoiseFunction> samplerSupplier) {
this.samplerSupplier = samplerSupplier;
public SimpleNoiseTemplate(Class<T> samplerClass) {
this.samplerClass = samplerClass;
}
@Override
public Sampler get() {
NoiseFunction sampler = samplerSupplier.get();
sampler.setFrequency(frequency);
sampler.setSalt(salt);
NoiseFunction sampler = null;
try {
sampler = samplerClass.getConstructor(double.class, long.class)
.newInstance(frequency, salt);
} catch(InstantiationException | IllegalAccessException | InvocationTargetException | NoSuchMethodException e) {
throw new RuntimeException(e);
}
return sampler;
}
}

View File

@ -15,11 +15,7 @@ import com.dfsek.seismic.type.sampler.Sampler;
public class BrownianMotionTemplate extends FractalTemplate<BrownianMotionSampler> {
@Override
public Sampler get() {
BrownianMotionSampler sampler = new BrownianMotionSampler(function);
sampler.setGain(fractalGain);
sampler.setLacunarity(fractalLacunarity);
sampler.setOctaves(octaves);
sampler.setWeightedStrength(weightedStrength);
BrownianMotionSampler sampler = new BrownianMotionSampler(salt, function, fractalGain, fractalLacunarity, weightedStrength, octaves);
return sampler;
}
}

View File

@ -13,10 +13,11 @@ 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.config.templates.noise.NoiseTemplate;
import com.dfsek.terra.api.config.meta.Meta;
public abstract class FractalTemplate<T extends FractalNoiseFunction> extends SamplerTemplate<T> {
public abstract class FractalTemplate<T extends FractalNoiseFunction> extends NoiseTemplate<T> {
@Value("octaves")
@Default
protected @Meta int octaves = 3;

View File

@ -23,12 +23,7 @@ public class PingPongTemplate extends FractalTemplate<PingPongSampler> {
@Override
public Sampler get() {
PingPongSampler sampler = new PingPongSampler(function);
sampler.setGain(fractalGain);
sampler.setLacunarity(fractalLacunarity);
sampler.setOctaves(octaves);
sampler.setWeightedStrength(weightedStrength);
sampler.setPingPongStrength(pingPong);
PingPongSampler sampler = new PingPongSampler(salt, function, fractalGain, fractalLacunarity, weightedStrength, octaves, pingPong);
return sampler;
}
}

View File

@ -15,11 +15,7 @@ import com.dfsek.seismic.type.sampler.Sampler;
public class RidgedFractalTemplate extends FractalTemplate<RidgedFractalSampler> {
@Override
public Sampler get() {
RidgedFractalSampler sampler = new RidgedFractalSampler(function);
sampler.setGain(fractalGain);
sampler.setLacunarity(fractalLacunarity);
sampler.setOctaves(octaves);
sampler.setWeightedStrength(weightedStrength);
RidgedFractalSampler sampler = new RidgedFractalSampler(salt, function, fractalGain, fractalLacunarity, weightedStrength, octaves);
return sampler;
}
}