mirror of
https://github.com/PolyhedralDev/Terra.git
synced 2025-07-04 00:45:57 +00:00
dont implement seedednoisesampler in noise addon
This commit is contained in:
parent
6f40e7b1f5
commit
f0441cbefc
@ -1,6 +1,7 @@
|
|||||||
package com.dfsek.terra.addons.noise;
|
package com.dfsek.terra.addons.noise;
|
||||||
|
|
||||||
import com.dfsek.tectonic.loading.object.ObjectTemplate;
|
import com.dfsek.tectonic.loading.object.ObjectTemplate;
|
||||||
|
import com.dfsek.terra.addons.noise.config.DimensionApplicableNoiseSampler;
|
||||||
import com.dfsek.terra.addons.noise.config.NoiseSamplerBuilderLoader;
|
import com.dfsek.terra.addons.noise.config.NoiseSamplerBuilderLoader;
|
||||||
import com.dfsek.terra.addons.noise.config.templates.DomainWarpTemplate;
|
import com.dfsek.terra.addons.noise.config.templates.DomainWarpTemplate;
|
||||||
import com.dfsek.terra.addons.noise.config.templates.ImageSamplerTemplate;
|
import com.dfsek.terra.addons.noise.config.templates.ImageSamplerTemplate;
|
||||||
@ -32,6 +33,7 @@ import com.dfsek.terra.api.addon.annotations.Version;
|
|||||||
import com.dfsek.terra.api.event.EventListener;
|
import com.dfsek.terra.api.event.EventListener;
|
||||||
import com.dfsek.terra.api.event.events.config.pack.ConfigPackPreLoadEvent;
|
import com.dfsek.terra.api.event.events.config.pack.ConfigPackPreLoadEvent;
|
||||||
import com.dfsek.terra.api.injection.annotations.Inject;
|
import com.dfsek.terra.api.injection.annotations.Inject;
|
||||||
|
import com.dfsek.terra.api.noise.NoiseSampler;
|
||||||
import com.dfsek.terra.api.registry.CheckedRegistry;
|
import com.dfsek.terra.api.registry.CheckedRegistry;
|
||||||
import com.dfsek.terra.api.util.reflection.TypeKey;
|
import com.dfsek.terra.api.util.reflection.TypeKey;
|
||||||
import com.dfsek.terra.api.util.seeded.SeededNoiseSampler;
|
import com.dfsek.terra.api.util.seeded.SeededNoiseSampler;
|
||||||
@ -47,7 +49,7 @@ public class NoiseAddon extends TerraAddon implements EventListener {
|
|||||||
@Inject
|
@Inject
|
||||||
private TerraPlugin plugin;
|
private TerraPlugin plugin;
|
||||||
|
|
||||||
public static final TypeKey<Supplier<ObjectTemplate<SeededNoiseSampler>>> NOISE_SAMPLER_TOKEN = new TypeKey<>() {};
|
public static final TypeKey<Supplier<ObjectTemplate<NoiseSampler>>> NOISE_SAMPLER_TOKEN = new TypeKey<>() {};
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void initialize() {
|
public void initialize() {
|
||||||
@ -55,9 +57,9 @@ public class NoiseAddon extends TerraAddon implements EventListener {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public void packPreLoad(ConfigPackPreLoadEvent event) {
|
public void packPreLoad(ConfigPackPreLoadEvent event) {
|
||||||
CheckedRegistry<Supplier<ObjectTemplate<SeededNoiseSampler>>> noiseRegistry = event.getPack().getOrCreateRegistry(NOISE_SAMPLER_TOKEN);
|
CheckedRegistry<Supplier<ObjectTemplate<NoiseSampler>>> noiseRegistry = event.getPack().getOrCreateRegistry(NOISE_SAMPLER_TOKEN);
|
||||||
event.getPack()
|
event.getPack()
|
||||||
.applyLoader(SeededNoiseSampler.class, new NoiseSamplerBuilderLoader(noiseRegistry))
|
.applyLoader(NoiseSampler.class, new NoiseSamplerBuilderLoader(noiseRegistry))
|
||||||
.applyLoader(ImageSamplerTemplate.class, ImageSamplerTemplate::new)
|
.applyLoader(ImageSamplerTemplate.class, ImageSamplerTemplate::new)
|
||||||
.applyLoader(DomainWarpTemplate.class, DomainWarpTemplate::new)
|
.applyLoader(DomainWarpTemplate.class, DomainWarpTemplate::new)
|
||||||
.applyLoader(LinearNormalizerTemplate.class, LinearNormalizerTemplate::new)
|
.applyLoader(LinearNormalizerTemplate.class, LinearNormalizerTemplate::new)
|
||||||
@ -76,26 +78,26 @@ public class NoiseAddon extends TerraAddon implements EventListener {
|
|||||||
noiseRegistry.register("PINGPONG", PingPongTemplate::new);
|
noiseRegistry.register("PINGPONG", PingPongTemplate::new);
|
||||||
noiseRegistry.register("RIDGED", RidgedFractalTemplate::new);
|
noiseRegistry.register("RIDGED", RidgedFractalTemplate::new);
|
||||||
|
|
||||||
noiseRegistry.register("OPENSIMPLEX2", () -> new SimpleNoiseTemplate(seed3 -> new OpenSimplex2Sampler()));
|
noiseRegistry.register("OPENSIMPLEX2", () -> new SimpleNoiseTemplate(OpenSimplex2Sampler::new));
|
||||||
noiseRegistry.register("OPENSIMPLEX2S", () -> new SimpleNoiseTemplate(seed3 -> new OpenSimplex2SSampler()));
|
noiseRegistry.register("OPENSIMPLEX2S", () -> new SimpleNoiseTemplate(OpenSimplex2SSampler::new));
|
||||||
noiseRegistry.register("PERLIN", () -> new SimpleNoiseTemplate(seed2 -> new PerlinSampler()));
|
noiseRegistry.register("PERLIN", () -> new SimpleNoiseTemplate(PerlinSampler::new));
|
||||||
noiseRegistry.register("SIMPLEX", () -> new SimpleNoiseTemplate(seed2 -> new SimplexSampler()));
|
noiseRegistry.register("SIMPLEX", () -> new SimpleNoiseTemplate(SimplexSampler::new));
|
||||||
noiseRegistry.register("GABOR", GaborNoiseTemplate::new);
|
noiseRegistry.register("GABOR", GaborNoiseTemplate::new);
|
||||||
|
|
||||||
|
|
||||||
noiseRegistry.register("VALUE", () -> new SimpleNoiseTemplate(ValueSampler::new));
|
noiseRegistry.register("VALUE", () -> new SimpleNoiseTemplate(ValueSampler::new));
|
||||||
noiseRegistry.register("VALUECUBIC", () -> new SimpleNoiseTemplate(seed1 -> new ValueCubicSampler()));
|
noiseRegistry.register("VALUECUBIC", () -> new SimpleNoiseTemplate(ValueCubicSampler::new));
|
||||||
|
|
||||||
noiseRegistry.register("CELLULAR", CellularNoiseTemplate::new);
|
noiseRegistry.register("CELLULAR", CellularNoiseTemplate::new);
|
||||||
|
|
||||||
noiseRegistry.register("WHITENOISE", () -> new SimpleNoiseTemplate(seed -> new WhiteNoiseSampler()));
|
noiseRegistry.register("WHITENOISE", () -> new SimpleNoiseTemplate(WhiteNoiseSampler::new));
|
||||||
noiseRegistry.register("GAUSSIAN", () -> new SimpleNoiseTemplate(seed -> new GaussianNoiseSampler()));
|
noiseRegistry.register("GAUSSIAN", () -> new SimpleNoiseTemplate(GaussianNoiseSampler::new));
|
||||||
|
|
||||||
noiseRegistry.register("CONSTANT", ConstantNoiseTemplate::new);
|
noiseRegistry.register("CONSTANT", ConstantNoiseTemplate::new);
|
||||||
|
|
||||||
noiseRegistry.register("KERNEL", KernelTemplate::new);
|
noiseRegistry.register("KERNEL", KernelTemplate::new);
|
||||||
|
|
||||||
Map<String, SeededNoiseSampler> packFunctions = new HashMap<>();
|
Map<String, DimensionApplicableNoiseSampler> packFunctions = new HashMap<>();
|
||||||
noiseRegistry.register("EXPRESSION", () -> new ExpressionFunctionTemplate(packFunctions));
|
noiseRegistry.register("EXPRESSION", () -> new ExpressionFunctionTemplate(packFunctions));
|
||||||
|
|
||||||
|
|
||||||
|
@ -2,15 +2,16 @@ package com.dfsek.terra.addons.noise;
|
|||||||
|
|
||||||
import com.dfsek.tectonic.annotations.Value;
|
import com.dfsek.tectonic.annotations.Value;
|
||||||
import com.dfsek.tectonic.config.ConfigTemplate;
|
import com.dfsek.tectonic.config.ConfigTemplate;
|
||||||
|
import com.dfsek.terra.addons.noise.config.DimensionApplicableNoiseSampler;
|
||||||
import com.dfsek.terra.api.util.seeded.SeededNoiseSampler;
|
import com.dfsek.terra.api.util.seeded.SeededNoiseSampler;
|
||||||
|
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
public class NoiseConfigPackTemplate implements ConfigTemplate {
|
public class NoiseConfigPackTemplate implements ConfigTemplate {
|
||||||
@Value("noise")
|
@Value("noise")
|
||||||
private Map<String, SeededNoiseSampler> noiseBuilderMap;
|
private Map<String, DimensionApplicableNoiseSampler> noiseBuilderMap;
|
||||||
|
|
||||||
public Map<String, SeededNoiseSampler> getNoiseBuilderMap() {
|
public Map<String, DimensionApplicableNoiseSampler> getNoiseBuilderMap() {
|
||||||
return noiseBuilderMap;
|
return noiseBuilderMap;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -6,6 +6,7 @@ import com.dfsek.tectonic.exception.LoadException;
|
|||||||
import com.dfsek.tectonic.loading.ConfigLoader;
|
import com.dfsek.tectonic.loading.ConfigLoader;
|
||||||
import com.dfsek.tectonic.loading.TypeLoader;
|
import com.dfsek.tectonic.loading.TypeLoader;
|
||||||
import com.dfsek.tectonic.loading.object.ObjectTemplate;
|
import com.dfsek.tectonic.loading.object.ObjectTemplate;
|
||||||
|
import com.dfsek.terra.api.noise.NoiseSampler;
|
||||||
import com.dfsek.terra.api.registry.Registry;
|
import com.dfsek.terra.api.registry.Registry;
|
||||||
import com.dfsek.terra.api.util.seeded.SeededNoiseSampler;
|
import com.dfsek.terra.api.util.seeded.SeededNoiseSampler;
|
||||||
|
|
||||||
@ -15,21 +16,21 @@ import java.util.Map;
|
|||||||
import java.util.function.Supplier;
|
import java.util.function.Supplier;
|
||||||
|
|
||||||
@SuppressWarnings("unchecked")
|
@SuppressWarnings("unchecked")
|
||||||
public class NoiseSamplerBuilderLoader implements TypeLoader<SeededNoiseSampler> {
|
public class NoiseSamplerBuilderLoader implements TypeLoader<NoiseSampler> {
|
||||||
private final Registry<Supplier<ObjectTemplate<SeededNoiseSampler>>> noiseRegistry;
|
private final Registry<Supplier<ObjectTemplate<NoiseSampler>>> noiseRegistry;
|
||||||
|
|
||||||
public NoiseSamplerBuilderLoader(Registry<Supplier<ObjectTemplate<SeededNoiseSampler>>> noiseRegistry) {
|
public NoiseSamplerBuilderLoader(Registry<Supplier<ObjectTemplate<NoiseSampler>>> noiseRegistry) {
|
||||||
this.noiseRegistry = noiseRegistry;
|
this.noiseRegistry = noiseRegistry;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public SeededNoiseSampler load(AnnotatedType t, Object c, ConfigLoader loader) throws LoadException {
|
public NoiseSampler load(AnnotatedType t, Object c, ConfigLoader loader) throws LoadException {
|
||||||
Map<String, Object> map = (Map<String, Object>) c;
|
Map<String, Object> map = (Map<String, Object>) c;
|
||||||
try {
|
try {
|
||||||
if(!noiseRegistry.contains((String) map.get("type"))) {
|
if(!noiseRegistry.contains((String) map.get("type"))) {
|
||||||
throw new LoadException("No such noise function: " + map.get("type"));
|
throw new LoadException("No such noise function: " + map.get("type"));
|
||||||
}
|
}
|
||||||
ObjectTemplate<SeededNoiseSampler> normalizerTemplate = noiseRegistry.get(((String) map.get("type")).toUpperCase(Locale.ROOT)).get();
|
ObjectTemplate<NoiseSampler> normalizerTemplate = noiseRegistry.get(((String) map.get("type"))).get();
|
||||||
loader.load(normalizerTemplate, new MapConfiguration(map));
|
loader.load(normalizerTemplate, new MapConfiguration(map));
|
||||||
return normalizerTemplate.get();
|
return normalizerTemplate.get();
|
||||||
} catch(ConfigException e) {
|
} catch(ConfigException e) {
|
||||||
|
@ -23,7 +23,7 @@ public class DomainWarpTemplate extends SamplerTemplate<DomainWarpedSampler> {
|
|||||||
private double amplitude = 1;
|
private double amplitude = 1;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public NoiseSampler build(long seed) {
|
public NoiseSampler get() {
|
||||||
return new DomainWarpedSampler(function, warp, amplitude);
|
return new DomainWarpedSampler(function, warp, amplitude);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -19,7 +19,7 @@ public class ImageSamplerTemplate extends SamplerTemplate<ImageSampler> {
|
|||||||
private ImageSampler.Channel channel;
|
private ImageSampler.Channel channel;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public NoiseSampler build(long seed) {
|
public NoiseSampler get() {
|
||||||
return new ImageSampler(image, channel, frequency);
|
return new ImageSampler(image, channel, frequency);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -28,7 +28,7 @@ public class KernelTemplate extends SamplerTemplate<KernelSampler> implements Va
|
|||||||
private double frequency = 1;
|
private double frequency = 1;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public NoiseSampler build(long seed) {
|
public NoiseSampler get() {
|
||||||
double[][] k = new double[kernel.size()][kernel.get(0).size()];
|
double[][] k = new double[kernel.size()][kernel.get(0).size()];
|
||||||
|
|
||||||
for(int x = 0; x < kernel.size(); x++) {
|
for(int x = 0; x < kernel.size(); x++) {
|
||||||
|
@ -6,10 +6,9 @@ import com.dfsek.tectonic.config.ValidatedConfigTemplate;
|
|||||||
import com.dfsek.tectonic.exception.ValidationException;
|
import com.dfsek.tectonic.exception.ValidationException;
|
||||||
import com.dfsek.tectonic.loading.object.ObjectTemplate;
|
import com.dfsek.tectonic.loading.object.ObjectTemplate;
|
||||||
import com.dfsek.terra.api.noise.NoiseSampler;
|
import com.dfsek.terra.api.noise.NoiseSampler;
|
||||||
import com.dfsek.terra.api.util.seeded.SeededNoiseSampler;
|
|
||||||
|
|
||||||
@SuppressWarnings("FieldMayBeFinal")
|
@SuppressWarnings("FieldMayBeFinal")
|
||||||
public abstract class SamplerTemplate<T extends NoiseSampler> implements ValidatedConfigTemplate, ObjectTemplate<SeededNoiseSampler>, SeededNoiseSampler {
|
public abstract class SamplerTemplate<T extends NoiseSampler> implements ValidatedConfigTemplate, ObjectTemplate<NoiseSampler> {
|
||||||
@Value("dimensions")
|
@Value("dimensions")
|
||||||
@Default
|
@Default
|
||||||
private int dimensions = 2;
|
private int dimensions = 2;
|
||||||
@ -23,9 +22,4 @@ public abstract class SamplerTemplate<T extends NoiseSampler> implements Validat
|
|||||||
if(dimensions != 2 && dimensions != 3) throw new ValidationException("Illegal amount of dimensions: " + dimensions);
|
if(dimensions != 2 && dimensions != 3) throw new ValidationException("Illegal amount of dimensions: " + dimensions);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public SeededNoiseSampler get() {
|
|
||||||
return this;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
@ -27,7 +27,7 @@ public class CellularNoiseTemplate extends NoiseTemplate<CellularSampler> {
|
|||||||
private NoiseSampler lookup = new OpenSimplex2Sampler();
|
private NoiseSampler lookup = new OpenSimplex2Sampler();
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public NoiseSampler build(long seed) {
|
public NoiseSampler get() {
|
||||||
CellularSampler sampler = new CellularSampler();
|
CellularSampler sampler = new CellularSampler();
|
||||||
sampler.setNoiseLookup(lookup);
|
sampler.setNoiseLookup(lookup);
|
||||||
sampler.setFrequency(frequency);
|
sampler.setFrequency(frequency);
|
||||||
|
@ -13,7 +13,7 @@ public class ConstantNoiseTemplate extends SamplerTemplate<ConstantSampler> {
|
|||||||
private double value = 0d;
|
private double value = 0d;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public NoiseSampler build(long seed) {
|
public NoiseSampler get() {
|
||||||
return new ConstantSampler(value);
|
return new ConstantSampler(value);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -25,7 +25,7 @@ import java.util.Map;
|
|||||||
|
|
||||||
@SuppressWarnings({"FieldMayBeFinal", "unused"})
|
@SuppressWarnings({"FieldMayBeFinal", "unused"})
|
||||||
public class ExpressionFunctionTemplate extends SamplerTemplate<ExpressionFunction> implements ValidatedConfigTemplate {
|
public class ExpressionFunctionTemplate extends SamplerTemplate<ExpressionFunction> implements ValidatedConfigTemplate {
|
||||||
private final Map<String, SeededNoiseSampler> otherFunctions;
|
private final Map<String, DimensionApplicableNoiseSampler> otherFunctions;
|
||||||
@Value("variables")
|
@Value("variables")
|
||||||
@Default
|
@Default
|
||||||
private Map<String, Double> vars = new HashMap<>();
|
private Map<String, Double> vars = new HashMap<>();
|
||||||
@ -38,14 +38,14 @@ public class ExpressionFunctionTemplate extends SamplerTemplate<ExpressionFuncti
|
|||||||
@Default
|
@Default
|
||||||
private LinkedHashMap<String, FunctionTemplate> expressions = new LinkedHashMap<>();
|
private LinkedHashMap<String, FunctionTemplate> expressions = new LinkedHashMap<>();
|
||||||
|
|
||||||
public ExpressionFunctionTemplate(Map<String, SeededNoiseSampler> otherFunctions) {
|
public ExpressionFunctionTemplate(Map<String, DimensionApplicableNoiseSampler> otherFunctions) {
|
||||||
this.otherFunctions = otherFunctions;
|
this.otherFunctions = otherFunctions;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public NoiseSampler build(long seed) {
|
public NoiseSampler get() {
|
||||||
try {
|
try {
|
||||||
Map<String, Function> noiseFunctionMap = generateFunctions(seed);
|
Map<String, Function> noiseFunctionMap = generateFunctions();
|
||||||
return new ExpressionFunction(noiseFunctionMap, equation, vars);
|
return new ExpressionFunction(noiseFunctionMap, equation, vars);
|
||||||
} catch(ParseException e) {
|
} catch(ParseException e) {
|
||||||
throw new IllegalStateException(e);
|
throw new IllegalStateException(e);
|
||||||
@ -55,7 +55,7 @@ public class ExpressionFunctionTemplate extends SamplerTemplate<ExpressionFuncti
|
|||||||
@Override
|
@Override
|
||||||
public boolean validate() throws ValidationException {
|
public boolean validate() throws ValidationException {
|
||||||
try {
|
try {
|
||||||
Map<String, Function> noiseFunctionMap = generateFunctions(0L);
|
Map<String, Function> noiseFunctionMap = generateFunctions();
|
||||||
new ExpressionFunction(noiseFunctionMap, equation, vars);
|
new ExpressionFunction(noiseFunctionMap, equation, vars);
|
||||||
} catch(ParseException e) {
|
} catch(ParseException e) {
|
||||||
throw new ValidationException("Errors occurred while parsing noise equation: ", e);
|
throw new ValidationException("Errors occurred while parsing noise equation: ", e);
|
||||||
@ -63,7 +63,7 @@ public class ExpressionFunctionTemplate extends SamplerTemplate<ExpressionFuncti
|
|||||||
return super.validate();
|
return super.validate();
|
||||||
}
|
}
|
||||||
|
|
||||||
private Map<String, Function> generateFunctions(Long seed) throws ParseException {
|
private Map<String, Function> generateFunctions() throws ParseException {
|
||||||
Map<String, Function> noiseFunctionMap = new HashMap<>();
|
Map<String, Function> noiseFunctionMap = new HashMap<>();
|
||||||
|
|
||||||
for(Map.Entry<String, FunctionTemplate> entry : expressions.entrySet()) {
|
for(Map.Entry<String, FunctionTemplate> entry : expressions.entrySet()) {
|
||||||
@ -72,8 +72,8 @@ public class ExpressionFunctionTemplate extends SamplerTemplate<ExpressionFuncti
|
|||||||
|
|
||||||
otherFunctions.forEach((id, function) -> {
|
otherFunctions.forEach((id, function) -> {
|
||||||
if(function.getDimensions() == 2) {
|
if(function.getDimensions() == 2) {
|
||||||
noiseFunctionMap.put(id, new NoiseFunction2(function.build(seed)));
|
noiseFunctionMap.put(id, new NoiseFunction2(function.getSampler()));
|
||||||
} else noiseFunctionMap.put(id, new NoiseFunction3(function.build(seed)));
|
} else noiseFunctionMap.put(id, new NoiseFunction3(function.getSampler()));
|
||||||
});
|
});
|
||||||
|
|
||||||
functions.forEach((id, function) -> {
|
functions.forEach((id, function) -> {
|
||||||
|
@ -27,7 +27,7 @@ public class GaborNoiseTemplate extends NoiseTemplate<GaborNoiseSampler> {
|
|||||||
private double f0 = 0.625;
|
private double f0 = 0.625;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public NoiseSampler build(long seed) {
|
public NoiseSampler get() {
|
||||||
GaborNoiseSampler gaborNoiseSampler = new GaborNoiseSampler();
|
GaborNoiseSampler gaborNoiseSampler = new GaborNoiseSampler();
|
||||||
gaborNoiseSampler.setFrequency(frequency);
|
gaborNoiseSampler.setFrequency(frequency);
|
||||||
gaborNoiseSampler.setRotation(rotation);
|
gaborNoiseSampler.setRotation(rotation);
|
||||||
|
@ -4,17 +4,18 @@ import com.dfsek.terra.addons.noise.samplers.noise.NoiseFunction;
|
|||||||
import com.dfsek.terra.api.noise.NoiseSampler;
|
import com.dfsek.terra.api.noise.NoiseSampler;
|
||||||
|
|
||||||
import java.util.function.Function;
|
import java.util.function.Function;
|
||||||
|
import java.util.function.Supplier;
|
||||||
|
|
||||||
public class SimpleNoiseTemplate extends NoiseTemplate<NoiseFunction> {
|
public class SimpleNoiseTemplate extends NoiseTemplate<NoiseFunction> {
|
||||||
private final Function<Integer, NoiseFunction> samplerSupplier;
|
private final Supplier<NoiseFunction> samplerSupplier;
|
||||||
|
|
||||||
public SimpleNoiseTemplate(Function<Integer, NoiseFunction> samplerSupplier) {
|
public SimpleNoiseTemplate(Supplier<NoiseFunction> samplerSupplier) {
|
||||||
this.samplerSupplier = samplerSupplier;
|
this.samplerSupplier = samplerSupplier;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public NoiseSampler build(long seed) {
|
public NoiseSampler get() {
|
||||||
NoiseFunction sampler = samplerSupplier.apply((int) seed + salt);
|
NoiseFunction sampler = samplerSupplier.get();
|
||||||
sampler.setFrequency(frequency);
|
sampler.setFrequency(frequency);
|
||||||
return sampler;
|
return sampler;
|
||||||
}
|
}
|
||||||
|
@ -5,8 +5,8 @@ import com.dfsek.terra.api.noise.NoiseSampler;
|
|||||||
|
|
||||||
public class BrownianMotionTemplate extends FractalTemplate<BrownianMotionSampler> {
|
public class BrownianMotionTemplate extends FractalTemplate<BrownianMotionSampler> {
|
||||||
@Override
|
@Override
|
||||||
public NoiseSampler build(long seed) {
|
public NoiseSampler get() {
|
||||||
BrownianMotionSampler sampler = new BrownianMotionSampler((int) seed, function);
|
BrownianMotionSampler sampler = new BrownianMotionSampler(function);
|
||||||
sampler.setGain(fractalGain);
|
sampler.setGain(fractalGain);
|
||||||
sampler.setLacunarity(fractalLacunarity);
|
sampler.setLacunarity(fractalLacunarity);
|
||||||
sampler.setOctaves(octaves);
|
sampler.setOctaves(octaves);
|
||||||
|
@ -12,8 +12,8 @@ public class PingPongTemplate extends FractalTemplate<PingPongSampler> {
|
|||||||
private double pingPong = 2.0D;
|
private double pingPong = 2.0D;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public NoiseSampler build(long seed) {
|
public NoiseSampler get() {
|
||||||
PingPongSampler sampler = new PingPongSampler((int) seed, function);
|
PingPongSampler sampler = new PingPongSampler(function);
|
||||||
sampler.setGain(fractalGain);
|
sampler.setGain(fractalGain);
|
||||||
sampler.setLacunarity(fractalLacunarity);
|
sampler.setLacunarity(fractalLacunarity);
|
||||||
sampler.setOctaves(octaves);
|
sampler.setOctaves(octaves);
|
||||||
|
@ -5,8 +5,8 @@ import com.dfsek.terra.api.noise.NoiseSampler;
|
|||||||
|
|
||||||
public class RidgedFractalTemplate extends FractalTemplate<RidgedFractalSampler> {
|
public class RidgedFractalTemplate extends FractalTemplate<RidgedFractalSampler> {
|
||||||
@Override
|
@Override
|
||||||
public NoiseSampler build(long seed) {
|
public NoiseSampler get() {
|
||||||
RidgedFractalSampler sampler = new RidgedFractalSampler((int) seed, function);
|
RidgedFractalSampler sampler = new RidgedFractalSampler(function);
|
||||||
sampler.setGain(fractalGain);
|
sampler.setGain(fractalGain);
|
||||||
sampler.setLacunarity(fractalLacunarity);
|
sampler.setLacunarity(fractalLacunarity);
|
||||||
sampler.setOctaves(octaves);
|
sampler.setOctaves(octaves);
|
||||||
|
@ -13,7 +13,7 @@ public class ClampNormalizerTemplate extends NormalizerTemplate<ClampNormalizer>
|
|||||||
private double min;
|
private double min;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public NoiseSampler build(long seed) {
|
public NoiseSampler get() {
|
||||||
return new ClampNormalizer(function, min, max);
|
return new ClampNormalizer(function, min, max);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -13,7 +13,7 @@ public class LinearNormalizerTemplate extends NormalizerTemplate<LinearNormalize
|
|||||||
private double min;
|
private double min;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public NoiseSampler build(long seed) {
|
public NoiseSampler get() {
|
||||||
return new LinearNormalizer(function, min, max);
|
return new LinearNormalizer(function, min, max);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -18,7 +18,7 @@ public class NormalNormalizerTemplate extends NormalizerTemplate<NormalNormalize
|
|||||||
private int groups = 16384;
|
private int groups = 16384;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public NoiseSampler build(long seed) {
|
public NoiseSampler get() {
|
||||||
return new NormalNormalizer(function, groups, mean, stdDev);
|
return new NormalNormalizer(function, groups, mean, stdDev);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -3,7 +3,7 @@ package com.dfsek.terra.addons.noise.samplers.noise.fractal;
|
|||||||
import com.dfsek.terra.api.noise.NoiseSampler;
|
import com.dfsek.terra.api.noise.NoiseSampler;
|
||||||
|
|
||||||
public class BrownianMotionSampler extends FractalNoiseFunction {
|
public class BrownianMotionSampler extends FractalNoiseFunction {
|
||||||
public BrownianMotionSampler(int seed, NoiseSampler input) {
|
public BrownianMotionSampler(NoiseSampler input) {
|
||||||
super(input);
|
super(input);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -5,7 +5,7 @@ import com.dfsek.terra.api.noise.NoiseSampler;
|
|||||||
public class PingPongSampler extends FractalNoiseFunction {
|
public class PingPongSampler extends FractalNoiseFunction {
|
||||||
private double pingPongStrength = 2.0;
|
private double pingPongStrength = 2.0;
|
||||||
|
|
||||||
public PingPongSampler(int seed, NoiseSampler input) {
|
public PingPongSampler(NoiseSampler input) {
|
||||||
super(input);
|
super(input);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -4,7 +4,7 @@ import com.dfsek.terra.api.noise.NoiseSampler;
|
|||||||
|
|
||||||
public class RidgedFractalSampler extends FractalNoiseFunction {
|
public class RidgedFractalSampler extends FractalNoiseFunction {
|
||||||
|
|
||||||
public RidgedFractalSampler(int seed, NoiseSampler input) {
|
public RidgedFractalSampler(NoiseSampler input) {
|
||||||
super(input);
|
super(input);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,10 +1,6 @@
|
|||||||
package com.dfsek.terra.addons.noise.samplers.noise.value;
|
package com.dfsek.terra.addons.noise.samplers.noise.value;
|
||||||
|
|
||||||
public class ValueSampler extends ValueStyleNoise {
|
public class ValueSampler extends ValueStyleNoise {
|
||||||
public ValueSampler(int seed) {
|
|
||||||
super();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public double getNoiseRaw(long sl, double x, double y) {
|
public double getNoiseRaw(long sl, double x, double y) {
|
||||||
int seed = (int) sl;
|
int seed = (int) sl;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user