diff --git a/buildSrc/src/main/kotlin/Versions.kt b/buildSrc/src/main/kotlin/Versions.kt index 2ee5a9b42..e0ec343e3 100644 --- a/buildSrc/src/main/kotlin/Versions.kt +++ b/buildSrc/src/main/kotlin/Versions.kt @@ -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" diff --git a/common/addons/config-noise-function/src/main/java/com/dfsek/terra/addons/noise/NoiseAddon.java b/common/addons/config-noise-function/src/main/java/com/dfsek/terra/addons/noise/NoiseAddon.java index 313483acd..f714dfc47 100644 --- a/common/addons/config-noise-function/src/main/java/com/dfsek/terra/addons/noise/NoiseAddon.java +++ b/common/addons/config-noise-function/src/main/java/com/dfsek/terra/addons/noise/NoiseAddon.java @@ -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); diff --git a/common/addons/config-noise-function/src/main/java/com/dfsek/terra/addons/noise/config/templates/KernelTemplate.java b/common/addons/config-noise-function/src/main/java/com/dfsek/terra/addons/noise/config/templates/KernelTemplate.java index 380ec97d4..75ad7edbe 100644 --- a/common/addons/config-noise-function/src/main/java/com/dfsek/terra/addons/noise/config/templates/KernelTemplate.java +++ b/common/addons/config-noise-function/src/main/java/com/dfsek/terra/addons/noise/config/templates/KernelTemplate.java @@ -45,8 +45,7 @@ public class KernelTemplate extends SamplerTemplate { } } - KernelSampler sampler = new KernelSampler(k, function); - sampler.setFrequency(frequency); + KernelSampler sampler = new KernelSampler(frequency, k, function); return sampler; } diff --git a/common/addons/config-noise-function/src/main/java/com/dfsek/terra/addons/noise/config/templates/noise/CellularNoiseTemplate.java b/common/addons/config-noise-function/src/main/java/com/dfsek/terra/addons/noise/config/templates/noise/CellularNoiseTemplate.java index 89ff13a94..3307a600e 100644 --- a/common/addons/config-noise-function/src/main/java/com/dfsek/terra/addons/noise/config/templates/noise/CellularNoiseTemplate.java +++ b/common/addons/config-noise-function/src/main/java/com/dfsek/terra/addons/noise/config/templates/noise/CellularNoiseTemplate.java @@ -34,7 +34,7 @@ public class CellularNoiseTemplate extends NoiseTemplate { @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 { @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; } } diff --git a/common/addons/config-noise-function/src/main/java/com/dfsek/terra/addons/noise/config/templates/noise/DistanceSamplerTemplate.java b/common/addons/config-noise-function/src/main/java/com/dfsek/terra/addons/noise/config/templates/noise/DistanceSamplerTemplate.java index 4692dca9b..4d6393803 100644 --- a/common/addons/config-noise-function/src/main/java/com/dfsek/terra/addons/noise/config/templates/noise/DistanceSamplerTemplate.java +++ b/common/addons/config-noise-function/src/main/java/com/dfsek/terra/addons/noise/config/templates/noise/DistanceSamplerTemplate.java @@ -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 { +public class DistanceSamplerTemplate extends NoiseTemplate { @Value("distance-function") @Default @@ -37,6 +37,6 @@ public class DistanceSamplerTemplate extends SamplerTemplate { @Override public DistanceSampler get() { - return new DistanceSampler(distanceFunction, x, y, z, normalize, normalizeRadius); + return new DistanceSampler(salt, distanceFunction, x, y, z, normalize, normalizeRadius); } } diff --git a/common/addons/config-noise-function/src/main/java/com/dfsek/terra/addons/noise/config/templates/noise/GaborNoiseTemplate.java b/common/addons/config-noise-function/src/main/java/com/dfsek/terra/addons/noise/config/templates/noise/GaborNoiseTemplate.java index 5b1b19699..e8bda1c5f 100644 --- a/common/addons/config-noise-function/src/main/java/com/dfsek/terra/addons/noise/config/templates/noise/GaborNoiseTemplate.java +++ b/common/addons/config-noise-function/src/main/java/com/dfsek/terra/addons/noise/config/templates/noise/GaborNoiseTemplate.java @@ -37,16 +37,13 @@ public class GaborNoiseTemplate extends NoiseTemplate { @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; } } diff --git a/common/addons/config-noise-function/src/main/java/com/dfsek/terra/addons/noise/config/templates/noise/PseudoErosionTemplate.java b/common/addons/config-noise-function/src/main/java/com/dfsek/terra/addons/noise/config/templates/noise/PseudoErosionTemplate.java index f8f90fa40..508dc7874 100644 --- a/common/addons/config-noise-function/src/main/java/com/dfsek/terra/addons/noise/config/templates/noise/PseudoErosionTemplate.java +++ b/common/addons/config-noise-function/src/main/java/com/dfsek/terra/addons/noise/config/templates/noise/PseudoErosionTemplate.java @@ -45,7 +45,7 @@ public class PseudoErosionTemplate extends NoiseTemplate { @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 { @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; } } diff --git a/common/addons/config-noise-function/src/main/java/com/dfsek/terra/addons/noise/config/templates/noise/SimpleNoiseTemplate.java b/common/addons/config-noise-function/src/main/java/com/dfsek/terra/addons/noise/config/templates/noise/SimpleNoiseTemplate.java index 8a6f4c52f..0ffdf8397 100644 --- a/common/addons/config-noise-function/src/main/java/com/dfsek/terra/addons/noise/config/templates/noise/SimpleNoiseTemplate.java +++ b/common/addons/config-noise-function/src/main/java/com/dfsek/terra/addons/noise/config/templates/noise/SimpleNoiseTemplate.java @@ -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 { - private final Supplier samplerSupplier; +public class SimpleNoiseTemplate extends NoiseTemplate { + private final Class samplerClass; - public SimpleNoiseTemplate(Supplier samplerSupplier) { - this.samplerSupplier = samplerSupplier; + public SimpleNoiseTemplate(Class 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; } } diff --git a/common/addons/config-noise-function/src/main/java/com/dfsek/terra/addons/noise/config/templates/noise/fractal/BrownianMotionTemplate.java b/common/addons/config-noise-function/src/main/java/com/dfsek/terra/addons/noise/config/templates/noise/fractal/BrownianMotionTemplate.java index 2ca2fd047..6ccb0e630 100644 --- a/common/addons/config-noise-function/src/main/java/com/dfsek/terra/addons/noise/config/templates/noise/fractal/BrownianMotionTemplate.java +++ b/common/addons/config-noise-function/src/main/java/com/dfsek/terra/addons/noise/config/templates/noise/fractal/BrownianMotionTemplate.java @@ -15,11 +15,7 @@ import com.dfsek.seismic.type.sampler.Sampler; public class BrownianMotionTemplate extends FractalTemplate { @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; } } diff --git a/common/addons/config-noise-function/src/main/java/com/dfsek/terra/addons/noise/config/templates/noise/fractal/FractalTemplate.java b/common/addons/config-noise-function/src/main/java/com/dfsek/terra/addons/noise/config/templates/noise/fractal/FractalTemplate.java index 9314cd42a..2f8c438f2 100644 --- a/common/addons/config-noise-function/src/main/java/com/dfsek/terra/addons/noise/config/templates/noise/fractal/FractalTemplate.java +++ b/common/addons/config-noise-function/src/main/java/com/dfsek/terra/addons/noise/config/templates/noise/fractal/FractalTemplate.java @@ -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 extends SamplerTemplate { +public abstract class FractalTemplate extends NoiseTemplate { @Value("octaves") @Default protected @Meta int octaves = 3; diff --git a/common/addons/config-noise-function/src/main/java/com/dfsek/terra/addons/noise/config/templates/noise/fractal/PingPongTemplate.java b/common/addons/config-noise-function/src/main/java/com/dfsek/terra/addons/noise/config/templates/noise/fractal/PingPongTemplate.java index 87e06cd91..6d98e44a6 100644 --- a/common/addons/config-noise-function/src/main/java/com/dfsek/terra/addons/noise/config/templates/noise/fractal/PingPongTemplate.java +++ b/common/addons/config-noise-function/src/main/java/com/dfsek/terra/addons/noise/config/templates/noise/fractal/PingPongTemplate.java @@ -23,12 +23,7 @@ public class PingPongTemplate extends FractalTemplate { @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; } } diff --git a/common/addons/config-noise-function/src/main/java/com/dfsek/terra/addons/noise/config/templates/noise/fractal/RidgedFractalTemplate.java b/common/addons/config-noise-function/src/main/java/com/dfsek/terra/addons/noise/config/templates/noise/fractal/RidgedFractalTemplate.java index fa447ca9b..e7900e537 100644 --- a/common/addons/config-noise-function/src/main/java/com/dfsek/terra/addons/noise/config/templates/noise/fractal/RidgedFractalTemplate.java +++ b/common/addons/config-noise-function/src/main/java/com/dfsek/terra/addons/noise/config/templates/noise/fractal/RidgedFractalTemplate.java @@ -15,11 +15,7 @@ import com.dfsek.seismic.type.sampler.Sampler; public class RidgedFractalTemplate extends FractalTemplate { @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; } }