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 { object Libraries {
const val tectonic = "4.2.1" 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 strata = "1.3.2"
const val seismic = "0.3.4" const val seismic = "2.0.1"
const val cloud = "2.0.0" 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("PING_PONG"), PingPongTemplate::new);
noiseRegistry.register(addon.key("RIDGED"), RidgedFractalTemplate::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_2"), () -> new SimpleNoiseTemplate<>(OpenSimplex2Sampler.class));
noiseRegistry.register(addon.key("OPEN_SIMPLEX_2S"), () -> new SimpleNoiseTemplate(OpenSimplex2SSampler::new)); noiseRegistry.register(addon.key("OPEN_SIMPLEX_2S"), () -> new SimpleNoiseTemplate<>(OpenSimplex2SSampler.class));
noiseRegistry.register(addon.key("PERLIN"), () -> new SimpleNoiseTemplate(PerlinSampler::new)); noiseRegistry.register(addon.key("PERLIN"), () -> new SimpleNoiseTemplate<>(PerlinSampler.class));
noiseRegistry.register(addon.key("SIMPLEX"), () -> new SimpleNoiseTemplate(SimplexSampler::new)); noiseRegistry.register(addon.key("SIMPLEX"), () -> new SimpleNoiseTemplate<>(SimplexSampler.class));
noiseRegistry.register(addon.key("GABOR"), GaborNoiseTemplate::new); noiseRegistry.register(addon.key("GABOR"), GaborNoiseTemplate::new);
noiseRegistry.register(addon.key("PSEUDOEROSION"), PseudoErosionTemplate::new); noiseRegistry.register(addon.key("PSEUDOEROSION"), PseudoErosionTemplate::new);
noiseRegistry.register(addon.key("VALUE"), () -> new SimpleNoiseTemplate(ValueSampler::new)); noiseRegistry.register(addon.key("VALUE"), () -> new SimpleNoiseTemplate<>(ValueSampler.class));
noiseRegistry.register(addon.key("VALUE_CUBIC"), () -> new SimpleNoiseTemplate(ValueCubicSampler::new)); noiseRegistry.register(addon.key("VALUE_CUBIC"), () -> new SimpleNoiseTemplate<>(ValueCubicSampler.class));
noiseRegistry.register(addon.key("CELLULAR"), CellularNoiseTemplate::new); noiseRegistry.register(addon.key("CELLULAR"), CellularNoiseTemplate::new);
noiseRegistry.register(addon.key("WHITE_NOISE"), () -> new SimpleNoiseTemplate(WhiteNoiseSampler::new)); noiseRegistry.register(addon.key("WHITE_NOISE"), () -> new SimpleNoiseTemplate<>(WhiteNoiseSampler.class));
noiseRegistry.register(addon.key("POSITIVE_WHITE_NOISE"), () -> new SimpleNoiseTemplate(PositiveWhiteNoiseSampler::new)); noiseRegistry.register(addon.key("POSITIVE_WHITE_NOISE"), () -> new SimpleNoiseTemplate<>(PositiveWhiteNoiseSampler.class));
noiseRegistry.register(addon.key("GAUSSIAN"), () -> new SimpleNoiseTemplate(GaussianNoiseSampler::new)); noiseRegistry.register(addon.key("GAUSSIAN"), () -> new SimpleNoiseTemplate<>(GaussianNoiseSampler.class));
noiseRegistry.register(addon.key("DISTANCE"), DistanceSamplerTemplate::new); 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); KernelSampler sampler = new KernelSampler(frequency, k, function);
sampler.setFrequency(frequency);
return sampler; return sampler;
} }

View File

@ -34,7 +34,7 @@ public class CellularNoiseTemplate extends NoiseTemplate<CellularSampler> {
@Value("lookup") @Value("lookup")
@Default @Default
private @Meta Sampler lookup = new OpenSimplex2Sampler(); private @Meta Sampler lookup = new OpenSimplex2Sampler(0.02d, 0);
@Value("salt-lookup") @Value("salt-lookup")
@Default @Default
@ -42,14 +42,7 @@ public class CellularNoiseTemplate extends NoiseTemplate<CellularSampler> {
@Override @Override
public Sampler get() { public Sampler get() {
CellularSampler sampler = new CellularSampler(); CellularSampler sampler = new CellularSampler(frequency, salt, lookup, cellularDistanceFunction, cellularReturnType, cellularJitter, saltLookup);
sampler.setNoiseLookup(lookup);
sampler.setFrequency(frequency);
sampler.setJitterModifier(cellularJitter);
sampler.setReturnType(cellularReturnType);
sampler.setDistanceFunction(cellularDistanceFunction);
sampler.setSalt(salt);
sampler.setSaltLookup(saltLookup);
return sampler; 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; import com.dfsek.terra.api.config.meta.Meta;
public class DistanceSamplerTemplate extends SamplerTemplate<DistanceSampler> { public class DistanceSamplerTemplate extends NoiseTemplate<DistanceSampler> {
@Value("distance-function") @Value("distance-function")
@Default @Default
@ -37,6 +37,6 @@ public class DistanceSamplerTemplate extends SamplerTemplate<DistanceSampler> {
@Override @Override
public DistanceSampler get() { 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 @Default
private @Meta double f0 = 0.625; private @Meta double f0 = 0.625;
@Value("a")
@Default
private @Meta double a = 0.1;
@Override @Override
public Sampler get() { public Sampler get() {
GaborSampler gaborSampler = new GaborSampler(); GaborSampler gaborSampler = new GaborSampler(frequency, salt, f0, deviation, rotation, impulses, a, isotropic);
gaborSampler.setFrequency(frequency);
gaborSampler.setRotation(rotation);
gaborSampler.setIsotropic(isotropic);
gaborSampler.setDeviation(deviation);
gaborSampler.setImpulsesPerKernel(impulses);
gaborSampler.setFrequency0(f0);
gaborSampler.setSalt(salt);
return gaborSampler; return gaborSampler;
} }
} }

View File

@ -45,7 +45,7 @@ public class PseudoErosionTemplate extends NoiseTemplate<PseudoErosionSampler> {
@Value("sampler") @Value("sampler")
@Default @Default
private DerivativeSampler heightSampler = new OpenSimplex2Sampler(); private DerivativeSampler heightSampler = new OpenSimplex2Sampler(0.02d, 0);
@Value("slope-mask.enable") @Value("slope-mask.enable")
@Default @Default
@ -69,11 +69,9 @@ public class PseudoErosionTemplate extends NoiseTemplate<PseudoErosionSampler> {
@Override @Override
public PseudoErosionSampler get() { public PseudoErosionSampler get() {
PseudoErosionSampler pseudoErosion = new PseudoErosionSampler(octaves, gain, lacunarity, PseudoErosionSampler pseudoErosion = new PseudoErosionSampler(frequency, salt, octaves, gain, lacunarity,
slopeStrength, branchStrength, strength, slopeStrength, branchStrength, strength,
erosionFrequency, heightSampler, slopeMask, slopeMaskFull, slopeMaskNone, jitterModifier, averageErosionImpulses); erosionFrequency, heightSampler, slopeMask, slopeMaskFull, slopeMaskNone, jitterModifier, averageErosionImpulses);
pseudoErosion.setFrequency(frequency);
pseudoErosion.setSalt(salt);
return pseudoErosion; 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.algorithms.sampler.noise.NoiseFunction;
import com.dfsek.seismic.type.sampler.Sampler; import com.dfsek.seismic.type.sampler.Sampler;
import java.lang.reflect.InvocationTargetException;
import java.util.function.Supplier; import java.util.function.Supplier;
public class SimpleNoiseTemplate extends NoiseTemplate<NoiseFunction> { public class SimpleNoiseTemplate<T extends NoiseFunction> extends NoiseTemplate<NoiseFunction> {
private final Supplier<NoiseFunction> samplerSupplier; private final Class<T> samplerClass;
public SimpleNoiseTemplate(Supplier<NoiseFunction> samplerSupplier) { public SimpleNoiseTemplate(Class<T> samplerClass) {
this.samplerSupplier = samplerSupplier; this.samplerClass = samplerClass;
} }
@Override @Override
public Sampler get() { public Sampler get() {
NoiseFunction sampler = samplerSupplier.get(); NoiseFunction sampler = null;
sampler.setFrequency(frequency); try {
sampler.setSalt(salt); sampler = samplerClass.getConstructor(double.class, long.class)
.newInstance(frequency, salt);
} catch(InstantiationException | IllegalAccessException | InvocationTargetException | NoSuchMethodException e) {
throw new RuntimeException(e);
}
return sampler; return sampler;
} }
} }

View File

@ -15,11 +15,7 @@ import com.dfsek.seismic.type.sampler.Sampler;
public class BrownianMotionTemplate extends FractalTemplate<BrownianMotionSampler> { public class BrownianMotionTemplate extends FractalTemplate<BrownianMotionSampler> {
@Override @Override
public Sampler get() { public Sampler get() {
BrownianMotionSampler sampler = new BrownianMotionSampler(function); BrownianMotionSampler sampler = new BrownianMotionSampler(salt, function, fractalGain, fractalLacunarity, weightedStrength, octaves);
sampler.setGain(fractalGain);
sampler.setLacunarity(fractalLacunarity);
sampler.setOctaves(octaves);
sampler.setWeightedStrength(weightedStrength);
return sampler; 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.tectonic.api.config.template.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.config.templates.noise.NoiseTemplate;
import com.dfsek.terra.api.config.meta.Meta; 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") @Value("octaves")
@Default @Default
protected @Meta int octaves = 3; protected @Meta int octaves = 3;

View File

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

View File

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