NoiseSeeded -> SeededNoiseSampler

This commit is contained in:
dfsek 2021-07-17 21:36:27 -07:00
parent 1194cca485
commit 84e7d11156
23 changed files with 65 additions and 67 deletions

View File

@ -4,7 +4,7 @@ import com.dfsek.tectonic.annotations.Default;
import com.dfsek.tectonic.annotations.Value;
import com.dfsek.tectonic.loading.object.ObjectTemplate;
import com.dfsek.terra.api.util.seeded.BiomeProviderBuilder;
import com.dfsek.terra.api.util.seeded.NoiseSeeded;
import com.dfsek.terra.api.util.seeded.SeededNoiseSampler;
public abstract class BiomeProviderTemplate implements ObjectTemplate<BiomeProviderBuilder>, BiomeProviderBuilder {
@Value("resolution")
@ -12,7 +12,7 @@ public abstract class BiomeProviderTemplate implements ObjectTemplate<BiomeProvi
protected int resolution = 1;
@Value("blend.noise")
@Default
protected NoiseSeeded blend = NoiseSeeded.zero(2);
protected SeededNoiseSampler blend = SeededNoiseSampler.zero(2);
@Value("blend.amplitude")
@Default
protected double blendAmp = 0d;

View File

@ -4,12 +4,12 @@ import com.dfsek.tectonic.annotations.Value;
import com.dfsek.terra.addons.biome.pipeline.source.RandomSource;
import com.dfsek.terra.api.util.collection.ProbabilityCollection;
import com.dfsek.terra.api.util.seeded.BiomeBuilder;
import com.dfsek.terra.api.util.seeded.NoiseSeeded;
import com.dfsek.terra.api.util.seeded.SeededNoiseSampler;
import com.dfsek.terra.api.world.biome.generation.pipeline.BiomeSource;
public class NoiseSourceTemplate extends SourceTemplate {
@Value("noise")
private NoiseSeeded noise;
private SeededNoiseSampler noise;
@Value("biomes")
private ProbabilityCollection<BiomeBuilder> biomes;

View File

@ -4,12 +4,12 @@ import com.dfsek.tectonic.annotations.Value;
import com.dfsek.tectonic.loading.object.ObjectTemplate;
import com.dfsek.terra.addons.biome.pipeline.StageSeeded;
import com.dfsek.terra.addons.biome.pipeline.api.Stage;
import com.dfsek.terra.api.util.seeded.NoiseSeeded;
import com.dfsek.terra.api.util.seeded.SeededNoiseSampler;
import com.dfsek.terra.api.util.seeded.SeededBuilder;
public abstract class StageTemplate implements ObjectTemplate<SeededBuilder<Stage>>, StageSeeded {
@Value("noise")
protected NoiseSeeded noise;
protected SeededNoiseSampler noise;
@Override
public StageSeeded get() {

View File

@ -7,13 +7,12 @@ import com.dfsek.tectonic.annotations.Final;
import com.dfsek.tectonic.annotations.Value;
import com.dfsek.tectonic.config.ValidatedConfigTemplate;
import com.dfsek.tectonic.exception.ValidationException;
import com.dfsek.terra.addons.biome.holder.PaletteHolder;
import com.dfsek.terra.api.TerraPlugin;
import com.dfsek.terra.api.block.BlockType;
import com.dfsek.terra.api.config.AbstractableTemplate;
import com.dfsek.terra.api.config.ConfigPack;
import com.dfsek.terra.api.util.collection.ProbabilityCollection;
import com.dfsek.terra.api.util.seeded.NoiseSeeded;
import com.dfsek.terra.api.util.seeded.SeededNoiseSampler;
import com.dfsek.terra.api.world.biome.Biome;
import com.dfsek.terra.api.world.generator.Palette;
@ -43,14 +42,14 @@ public class BiomeTemplate implements AbstractableTemplate, ValidatedConfigTempl
@Value("beta.carving.equation")
@Default
private NoiseSeeded carvingEquation = NoiseSeeded.zero(3);
private SeededNoiseSampler carvingEquation = SeededNoiseSampler.zero(3);
@Value("vanilla")
private ProbabilityCollection<Biome> vanilla;
@Value("biome-noise")
@Default
private NoiseSeeded biomeNoise = NoiseSeeded.zero(2);
private SeededNoiseSampler biomeNoise = SeededNoiseSampler.zero(2);
@Value("blend.distance")
@Default
@ -65,7 +64,7 @@ public class BiomeTemplate implements AbstractableTemplate, ValidatedConfigTempl
private int blendStep = 4;
@Value("noise")
private NoiseSeeded noiseEquation;
private SeededNoiseSampler noiseEquation;
@Value("ocean.level")
@Default
@ -73,7 +72,7 @@ public class BiomeTemplate implements AbstractableTemplate, ValidatedConfigTempl
@Value("elevation.equation")
@Default
private NoiseSeeded elevationEquation = NoiseSeeded.zero(2);
private SeededNoiseSampler elevationEquation = SeededNoiseSampler.zero(2);
@Value("elevation.weight")
@Default
@ -160,15 +159,15 @@ public class BiomeTemplate implements AbstractableTemplate, ValidatedConfigTempl
return stairPalettes;
}
public NoiseSeeded getBiomeNoise() {
public SeededNoiseSampler getBiomeNoise() {
return biomeNoise;
}
public NoiseSeeded getElevationEquation() {
public SeededNoiseSampler getElevationEquation() {
return elevationEquation;
}
public NoiseSeeded getCarvingEquation() {
public SeededNoiseSampler getCarvingEquation() {
return carvingEquation;
}
@ -188,7 +187,7 @@ public class BiomeTemplate implements AbstractableTemplate, ValidatedConfigTempl
return vanilla;
}
public NoiseSeeded getNoiseEquation() {
public SeededNoiseSampler getNoiseEquation() {
return noiseEquation;
}

View File

@ -7,7 +7,7 @@ import com.dfsek.terra.addons.flora.flora.gen.BlockLayer;
import com.dfsek.terra.addons.flora.flora.gen.TerraFlora;
import com.dfsek.terra.api.config.AbstractableTemplate;
import com.dfsek.terra.api.util.collection.MaterialSet;
import com.dfsek.terra.api.util.seeded.NoiseSeeded;
import com.dfsek.terra.api.util.seeded.SeededNoiseSampler;
import java.util.List;
@ -61,9 +61,9 @@ public class FloraTemplate implements AbstractableTemplate {
private List<BlockLayer> layers;
@Value("layer-distribution")
private NoiseSeeded noiseDistribution;
private SeededNoiseSampler noiseDistribution;
public NoiseSeeded getNoiseDistribution() {
public SeededNoiseSampler getNoiseDistribution() {
return noiseDistribution;
}

View File

@ -35,7 +35,7 @@ import com.dfsek.terra.api.event.events.config.pack.ConfigPackPreLoadEvent;
import com.dfsek.terra.api.injection.annotations.Inject;
import com.dfsek.terra.api.registry.CheckedRegistry;
import com.dfsek.terra.api.util.provider.NoiseProvider;
import com.dfsek.terra.api.util.seeded.NoiseSeeded;
import com.dfsek.terra.api.util.seeded.SeededNoiseSampler;
import java.util.HashMap;
import java.util.Map;
@ -55,7 +55,7 @@ public class NoiseAddon extends TerraAddon implements EventListener {
public void packPreLoad(ConfigPackPreLoadEvent event) {
CheckedRegistry<NoiseProvider> noiseRegistry = event.getPack().getOrCreateRegistry(NoiseProvider.class);
event.getPack()
.applyLoader(NoiseSeeded.class, new NoiseSamplerBuilderLoader(noiseRegistry))
.applyLoader(SeededNoiseSampler.class, new NoiseSamplerBuilderLoader(noiseRegistry))
.applyLoader(ImageSamplerTemplate.class, ImageSamplerTemplate::new)
.applyLoader(DomainWarpTemplate.class, DomainWarpTemplate::new)
.applyLoader(LinearNormalizerTemplate.class, LinearNormalizerTemplate::new)
@ -96,7 +96,7 @@ public class NoiseAddon extends TerraAddon implements EventListener {
noiseRegistry.register("KERNEL", KernelTemplate::new);
Map<String, NoiseSeeded> packFunctions = new HashMap<>();
Map<String, SeededNoiseSampler> packFunctions = new HashMap<>();
noiseRegistry.register("EXPRESSION", () -> new ExpressionFunctionTemplate(packFunctions));

View File

@ -2,15 +2,15 @@ package com.dfsek.terra.addons.noise;
import com.dfsek.tectonic.annotations.Value;
import com.dfsek.tectonic.config.ConfigTemplate;
import com.dfsek.terra.api.util.seeded.NoiseSeeded;
import com.dfsek.terra.api.util.seeded.SeededNoiseSampler;
import java.util.Map;
public class NoiseConfigPackTemplate implements ConfigTemplate {
@Value("noise")
private Map<String, NoiseSeeded> noiseBuilderMap;
private Map<String, SeededNoiseSampler> noiseBuilderMap;
public Map<String, NoiseSeeded> getNoiseBuilderMap() {
public Map<String, SeededNoiseSampler> getNoiseBuilderMap() {
return noiseBuilderMap;
}
}

View File

@ -8,14 +8,14 @@ import com.dfsek.tectonic.loading.TypeLoader;
import com.dfsek.tectonic.loading.object.ObjectTemplate;
import com.dfsek.terra.api.registry.Registry;
import com.dfsek.terra.api.util.provider.NoiseProvider;
import com.dfsek.terra.api.util.seeded.NoiseSeeded;
import com.dfsek.terra.api.util.seeded.SeededNoiseSampler;
import java.lang.reflect.AnnotatedType;
import java.util.Locale;
import java.util.Map;
@SuppressWarnings("unchecked")
public class NoiseSamplerBuilderLoader implements TypeLoader<NoiseSeeded> {
public class NoiseSamplerBuilderLoader implements TypeLoader<SeededNoiseSampler> {
private final Registry<NoiseProvider> noiseRegistry;
public NoiseSamplerBuilderLoader(Registry<NoiseProvider> noiseRegistry) {
@ -23,13 +23,13 @@ public class NoiseSamplerBuilderLoader implements TypeLoader<NoiseSeeded> {
}
@Override
public NoiseSeeded load(AnnotatedType t, Object c, ConfigLoader loader) throws LoadException {
public SeededNoiseSampler load(AnnotatedType t, Object c, ConfigLoader loader) throws LoadException {
Map<String, Object> map = (Map<String, Object>) c;
try {
if(!noiseRegistry.contains((String) map.get("type"))) {
throw new LoadException("No such noise function: " + map.get("type"));
}
ObjectTemplate<NoiseSeeded> normalizerTemplate = noiseRegistry.get(((String) map.get("type")).toUpperCase(Locale.ROOT)).get();
ObjectTemplate<SeededNoiseSampler> normalizerTemplate = noiseRegistry.get(((String) map.get("type")).toUpperCase(Locale.ROOT)).get();
loader.load(normalizerTemplate, new MapConfiguration(map));
return normalizerTemplate.get();
} catch(ConfigException e) {

View File

@ -4,15 +4,15 @@ import com.dfsek.tectonic.annotations.Default;
import com.dfsek.tectonic.annotations.Value;
import com.dfsek.terra.addons.noise.samplers.DomainWarpedSampler;
import com.dfsek.terra.api.noise.NoiseSampler;
import com.dfsek.terra.api.util.seeded.NoiseSeeded;
import com.dfsek.terra.api.util.seeded.SeededNoiseSampler;
@SuppressWarnings({"unused", "FieldMayBeFinal"})
public class DomainWarpTemplate extends SamplerTemplate<DomainWarpedSampler> {
@Value("warp")
private NoiseSeeded warp;
private SeededNoiseSampler warp;
@Value("function")
private NoiseSeeded function;
private SeededNoiseSampler function;
@Value("salt")
@Default

View File

@ -6,7 +6,7 @@ import com.dfsek.tectonic.config.ValidatedConfigTemplate;
import com.dfsek.tectonic.exception.ValidationException;
import com.dfsek.terra.addons.noise.samplers.KernelSampler;
import com.dfsek.terra.api.noise.NoiseSampler;
import com.dfsek.terra.api.util.seeded.NoiseSeeded;
import com.dfsek.terra.api.util.seeded.SeededNoiseSampler;
import java.util.List;
@ -21,7 +21,7 @@ public class KernelTemplate extends SamplerTemplate<KernelSampler> implements Va
private double factor = 1;
@Value("function")
private NoiseSeeded function;
private SeededNoiseSampler function;
@Value("frequency")
@Default

View File

@ -6,10 +6,10 @@ import com.dfsek.tectonic.config.ValidatedConfigTemplate;
import com.dfsek.tectonic.exception.ValidationException;
import com.dfsek.tectonic.loading.object.ObjectTemplate;
import com.dfsek.terra.api.noise.NoiseSampler;
import com.dfsek.terra.api.util.seeded.NoiseSeeded;
import com.dfsek.terra.api.util.seeded.SeededNoiseSampler;
@SuppressWarnings("FieldMayBeFinal")
public abstract class SamplerTemplate<T extends NoiseSampler> implements ValidatedConfigTemplate, ObjectTemplate<NoiseSeeded>, NoiseSeeded {
public abstract class SamplerTemplate<T extends NoiseSampler> implements ValidatedConfigTemplate, ObjectTemplate<SeededNoiseSampler>, SeededNoiseSampler {
@Value("dimensions")
@Default
private int dimensions = 2;
@ -25,7 +25,7 @@ public abstract class SamplerTemplate<T extends NoiseSampler> implements Validat
}
@Override
public NoiseSeeded get() {
public SeededNoiseSampler get() {
return this;
}
}

View File

@ -5,7 +5,7 @@ import com.dfsek.tectonic.annotations.Value;
import com.dfsek.terra.addons.noise.samplers.noise.CellularSampler;
import com.dfsek.terra.addons.noise.samplers.noise.simplex.OpenSimplex2Sampler;
import com.dfsek.terra.api.noise.NoiseSampler;
import com.dfsek.terra.api.util.seeded.NoiseSeeded;
import com.dfsek.terra.api.util.seeded.SeededNoiseSampler;
@SuppressWarnings("FieldMayBeFinal")
public class CellularNoiseTemplate extends NoiseTemplate<CellularSampler> {
@ -24,7 +24,7 @@ public class CellularNoiseTemplate extends NoiseTemplate<CellularSampler> {
@Value("lookup")
@Default
private NoiseSeeded lookup = new NoiseSeeded() {
private SeededNoiseSampler lookup = new SeededNoiseSampler() {
@Override
public NoiseSampler apply(Long seed) {

View File

@ -15,7 +15,7 @@ import com.dfsek.terra.addons.noise.paralithic.noise.NoiseFunction2;
import com.dfsek.terra.addons.noise.paralithic.noise.NoiseFunction3;
import com.dfsek.terra.addons.noise.samplers.noise.ExpressionFunction;
import com.dfsek.terra.api.noise.NoiseSampler;
import com.dfsek.terra.api.util.seeded.NoiseSeeded;
import com.dfsek.terra.api.util.seeded.SeededNoiseSampler;
import java.util.HashMap;
import java.util.LinkedHashMap;
@ -24,7 +24,7 @@ import java.util.Map;
@SuppressWarnings({"FieldMayBeFinal", "unused"})
public class ExpressionFunctionTemplate extends SamplerTemplate<ExpressionFunction> implements ValidatedConfigTemplate {
private final Map<String, NoiseSeeded> otherFunctions;
private final Map<String, SeededNoiseSampler> otherFunctions;
@Value("variables")
@Default
private Map<String, Double> vars = new HashMap<>();
@ -32,12 +32,12 @@ public class ExpressionFunctionTemplate extends SamplerTemplate<ExpressionFuncti
private String equation;
@Value("functions")
@Default
private LinkedHashMap<String, NoiseSeeded> functions = new LinkedHashMap<>();
private LinkedHashMap<String, SeededNoiseSampler> functions = new LinkedHashMap<>();
@Value("expressions")
@Default
private LinkedHashMap<String, FunctionTemplate> expressions = new LinkedHashMap<>();
public ExpressionFunctionTemplate(Map<String, NoiseSeeded> otherFunctions) {
public ExpressionFunctionTemplate(Map<String, SeededNoiseSampler> otherFunctions) {
this.otherFunctions = otherFunctions;
}

View File

@ -4,7 +4,7 @@ import com.dfsek.tectonic.annotations.Default;
import com.dfsek.tectonic.annotations.Value;
import com.dfsek.terra.addons.noise.config.templates.SamplerTemplate;
import com.dfsek.terra.addons.noise.samplers.noise.fractal.FractalNoiseFunction;
import com.dfsek.terra.api.util.seeded.NoiseSeeded;
import com.dfsek.terra.api.util.seeded.SeededNoiseSampler;
public abstract class FractalTemplate<T extends FractalNoiseFunction> extends SamplerTemplate<T> {
@Value("octaves")
@ -24,5 +24,5 @@ public abstract class FractalTemplate<T extends FractalNoiseFunction> extends Sa
protected double weightedStrength = 0.0D;
@Value("function")
protected NoiseSeeded function;
protected SeededNoiseSampler function;
}

View File

@ -3,9 +3,9 @@ package com.dfsek.terra.addons.noise.config.templates.normalizer;
import com.dfsek.tectonic.annotations.Value;
import com.dfsek.terra.addons.noise.config.templates.SamplerTemplate;
import com.dfsek.terra.addons.noise.normalizer.Normalizer;
import com.dfsek.terra.api.util.seeded.NoiseSeeded;
import com.dfsek.terra.api.util.seeded.SeededNoiseSampler;
public abstract class NormalizerTemplate<T extends Normalizer> extends SamplerTemplate<T> {
@Value("function")
protected NoiseSeeded function;
protected SeededNoiseSampler function;
}

View File

@ -9,7 +9,7 @@ import com.dfsek.terra.addons.noise.paralithic.defined.UserDefinedFunction;
import com.dfsek.terra.addons.noise.paralithic.noise.NoiseFunction2;
import com.dfsek.terra.addons.noise.paralithic.noise.NoiseFunction3;
import com.dfsek.terra.api.noise.NoiseSampler;
import com.dfsek.terra.api.util.seeded.NoiseSeeded;
import com.dfsek.terra.api.util.seeded.SeededNoiseSampler;
import java.util.Map;
@ -19,7 +19,7 @@ import java.util.Map;
public class ExpressionSampler implements NoiseSampler {
private final Expression expression;
public ExpressionSampler(String equation, Scope parent, long seed, Map<String, NoiseSeeded> functions, Map<String, FunctionTemplate> definedFunctions) throws ParseException {
public ExpressionSampler(String equation, Scope parent, long seed, Map<String, SeededNoiseSampler> functions, Map<String, FunctionTemplate> definedFunctions) throws ParseException {
Parser parser = new Parser();
Scope scope = new Scope().withParent(parent);

View File

@ -5,7 +5,7 @@ import com.dfsek.tectonic.annotations.Final;
import com.dfsek.tectonic.annotations.Value;
import com.dfsek.terra.addons.palette.palette.PaletteLayerHolder;
import com.dfsek.terra.api.config.AbstractableTemplate;
import com.dfsek.terra.api.util.seeded.NoiseSeeded;
import com.dfsek.terra.api.util.seeded.SeededNoiseSampler;
import java.util.List;
@ -13,7 +13,7 @@ import java.util.List;
public class PaletteTemplate implements AbstractableTemplate {
@Value("noise")
@Default
private NoiseSeeded noise = NoiseSeeded.zero(2);
private SeededNoiseSampler noise = SeededNoiseSampler.zero(2);
@Value("id")
@Final
@ -30,7 +30,7 @@ public class PaletteTemplate implements AbstractableTemplate {
return palette;
}
public NoiseSeeded getNoise() {
public SeededNoiseSampler getNoise() {
return noise;
}
}

View File

@ -6,10 +6,9 @@ import com.dfsek.tectonic.loading.TypeLoader;
import com.dfsek.terra.api.block.state.BlockState;
import com.dfsek.terra.api.noise.NoiseSampler;
import com.dfsek.terra.api.util.collection.ProbabilityCollection;
import com.dfsek.terra.api.util.seeded.NoiseSeeded;
import com.dfsek.terra.api.util.seeded.SeededNoiseSampler;
import java.lang.reflect.AnnotatedType;
import java.lang.reflect.Type;
import java.util.Map;
@SuppressWarnings("unchecked")
@ -34,7 +33,7 @@ public class PaletteLayerLoader implements TypeLoader<PaletteLayerHolder> {
NoiseSampler sampler = null;
if(map.containsKey("noise")) {
sampler = configLoader.loadType(NoiseSeeded.class, map.get("noise")).apply(2403L);
sampler = configLoader.loadType(SeededNoiseSampler.class, map.get("noise")).apply(2403L);
}
if(collection == null) throw new LoadException("Collection is null: " + map.get("materials"));

View File

@ -4,7 +4,7 @@ import com.dfsek.tectonic.annotations.Value;
import com.dfsek.tectonic.loading.object.ObjectTemplate;
import com.dfsek.terra.api.util.Range;
import com.dfsek.terra.api.util.collection.ProbabilityCollection;
import com.dfsek.terra.api.util.seeded.NoiseSeeded;
import com.dfsek.terra.api.util.seeded.SeededNoiseSampler;
import com.dfsek.terra.api.world.Flora;
public class FloraLayerLoader implements ObjectTemplate<FloraLayer> {
@ -18,7 +18,7 @@ public class FloraLayerLoader implements ObjectTemplate<FloraLayer> {
private ProbabilityCollection<Flora> items;
@Value("distribution")
private NoiseSeeded distribution;
private SeededNoiseSampler distribution;
@Override

View File

@ -4,7 +4,7 @@ import com.dfsek.tectonic.annotations.Value;
import com.dfsek.tectonic.loading.object.ObjectTemplate;
import com.dfsek.terra.api.util.Range;
import com.dfsek.terra.api.util.collection.ProbabilityCollection;
import com.dfsek.terra.api.util.seeded.NoiseSeeded;
import com.dfsek.terra.api.util.seeded.SeededNoiseSampler;
import com.dfsek.terra.api.world.Tree;
public class TreeLayerTemplate implements ObjectTemplate<TreeLayer> {
@ -18,7 +18,7 @@ public class TreeLayerTemplate implements ObjectTemplate<TreeLayer> {
private ProbabilityCollection<Tree> items;
@Value("distribution")
private NoiseSeeded distribution;
private SeededNoiseSampler distribution;
@Override
public TreeLayer get() {

View File

@ -1,10 +1,10 @@
package com.dfsek.terra.api.util.provider;
import com.dfsek.tectonic.loading.object.ObjectTemplate;
import com.dfsek.terra.api.util.seeded.NoiseSeeded;
import com.dfsek.terra.api.util.seeded.SeededNoiseSampler;
import java.util.function.Supplier;
@FunctionalInterface
public interface NoiseProvider extends Supplier<ObjectTemplate<NoiseSeeded>> {
public interface NoiseProvider extends Supplier<ObjectTemplate<SeededNoiseSampler>> {
}

View File

@ -2,9 +2,9 @@ package com.dfsek.terra.api.util.seeded;
import com.dfsek.terra.api.noise.NoiseSampler;
public interface NoiseSeeded extends SeededBuilder<NoiseSampler> {
static NoiseSeeded zero(int dimensions) {
return new NoiseSeeded() {
public interface SeededNoiseSampler extends SeededBuilder<NoiseSampler> {
static SeededNoiseSampler zero(int dimensions) {
return new SeededNoiseSampler() {
@Override
public NoiseSampler apply(Long seed) {
return NoiseSampler.zero();

View File

@ -2,15 +2,15 @@ package noise;
import com.dfsek.tectonic.annotations.Value;
import com.dfsek.tectonic.config.ConfigTemplate;
import com.dfsek.terra.api.util.seeded.NoiseSeeded;
import com.dfsek.terra.api.util.seeded.SeededNoiseSampler;
@SuppressWarnings("unused")
public class NoiseConfigTemplate implements ConfigTemplate {
@Value(".")
private NoiseSeeded builder;
private SeededNoiseSampler builder;
public NoiseSeeded getBuilder() {
public SeededNoiseSampler getBuilder() {
return builder;
}
}