mirror of
https://github.com/PolyhedralDev/Terra.git
synced 2025-07-02 16:05:29 +00:00
remove SeededNoiseSampler from configs
This commit is contained in:
parent
3bf8fe7901
commit
6f40e7b1f5
@ -34,6 +34,6 @@ public class BiomePipelineTemplate extends BiomeProviderTemplate {
|
||||
BiomePipelineImpl.BiomePipelineBuilder biomePipelineBuilder = new BiomePipelineImpl.BiomePipelineBuilder(initialSize);
|
||||
stages.forEach(biomePipelineBuilder::addStage);
|
||||
BiomePipelineImpl pipeline = biomePipelineBuilder.build(source.build(seed), seed);
|
||||
return new StandardBiomeProvider(pipeline, main, resolution, blend.build(seed), blendAmp, (int) seed);
|
||||
return new StandardBiomeProvider(pipeline, main, resolution, blend, blendAmp, (int) seed);
|
||||
}
|
||||
}
|
||||
|
@ -3,6 +3,7 @@ package com.dfsek.terra.addons.biome.pipeline.config;
|
||||
import com.dfsek.tectonic.annotations.Default;
|
||||
import com.dfsek.tectonic.annotations.Value;
|
||||
import com.dfsek.tectonic.loading.object.ObjectTemplate;
|
||||
import com.dfsek.terra.api.noise.NoiseSampler;
|
||||
import com.dfsek.terra.api.util.seeded.SeededBuilder;
|
||||
import com.dfsek.terra.api.util.seeded.SeededNoiseSampler;
|
||||
import com.dfsek.terra.api.world.biome.generation.BiomeProvider;
|
||||
@ -13,7 +14,7 @@ public abstract class BiomeProviderTemplate implements ObjectTemplate<SeededBuil
|
||||
protected int resolution = 1;
|
||||
@Value("blend.noise")
|
||||
@Default
|
||||
protected SeededNoiseSampler blend = SeededNoiseSampler.zero(2);
|
||||
protected NoiseSampler blend = NoiseSampler.zero();
|
||||
@Value("blend.amplitude")
|
||||
@Default
|
||||
protected double blendAmp = 0d;
|
||||
|
@ -2,6 +2,7 @@ package com.dfsek.terra.addons.biome.pipeline.config;
|
||||
|
||||
import com.dfsek.tectonic.annotations.Value;
|
||||
import com.dfsek.terra.addons.biome.pipeline.source.RandomSource;
|
||||
import com.dfsek.terra.api.noise.NoiseSampler;
|
||||
import com.dfsek.terra.api.util.collection.ProbabilityCollection;
|
||||
import com.dfsek.terra.api.util.seeded.SeededTerraBiome;
|
||||
import com.dfsek.terra.api.util.seeded.SeededNoiseSampler;
|
||||
@ -9,13 +10,13 @@ import com.dfsek.terra.api.world.biome.generation.pipeline.BiomeSource;
|
||||
|
||||
public class NoiseSourceTemplate extends SourceTemplate {
|
||||
@Value("noise")
|
||||
private SeededNoiseSampler noise;
|
||||
private NoiseSampler noise;
|
||||
|
||||
@Value("biomes")
|
||||
private ProbabilityCollection<SeededTerraBiome> biomes;
|
||||
|
||||
@Override
|
||||
public BiomeSource build(long seed) {
|
||||
return new RandomSource(biomes.map((biome) -> biome.build(seed), false), noise.build(seed));
|
||||
return new RandomSource(biomes.map((biome) -> biome.build(seed), false), noise);
|
||||
}
|
||||
}
|
||||
|
@ -4,12 +4,13 @@ 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.noise.NoiseSampler;
|
||||
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 SeededNoiseSampler noise;
|
||||
protected NoiseSampler noise;
|
||||
|
||||
@Override
|
||||
public StageSeeded get() {
|
||||
|
@ -8,6 +8,6 @@ import com.dfsek.terra.addons.biome.pipeline.stages.ExpanderStage;
|
||||
public class ExpanderStageTemplate extends StageTemplate {
|
||||
@Override
|
||||
public Stage build(long seed) {
|
||||
return new ExpanderStage(new FractalExpander(noise.build(seed)));
|
||||
return new ExpanderStage(new FractalExpander(noise));
|
||||
}
|
||||
}
|
||||
|
@ -31,6 +31,6 @@ public class BorderListMutatorTemplate extends MutatorStageTemplate {
|
||||
|
||||
replace.forEach((keyBuilder, replacements) -> replaceMap.put(keyBuilder.build(seed), replacements.map(replacement -> replacement.build(seed), true)));
|
||||
|
||||
return new BorderListMutator(replaceMap, from, defaultReplace, noise.build(seed), defaultTo.map(biomeBuilder -> biomeBuilder.build(seed), true));
|
||||
return new BorderListMutator(replaceMap, from, defaultReplace, noise, defaultTo.map(biomeBuilder -> biomeBuilder.build(seed), true));
|
||||
}
|
||||
}
|
||||
|
@ -19,6 +19,6 @@ public class BorderMutatorTemplate extends MutatorStageTemplate {
|
||||
|
||||
@Override
|
||||
public BiomeMutator getMutator(long seed) {
|
||||
return new BorderMutator(from, replace, noise.build(seed), to.map(biomeBuilder -> biomeBuilder.build(seed), true));
|
||||
return new BorderMutator(from, replace, noise, to.map(biomeBuilder -> biomeBuilder.build(seed), true));
|
||||
}
|
||||
}
|
||||
|
@ -27,6 +27,6 @@ public class ReplaceListMutatorTemplate extends MutatorStageTemplate {
|
||||
|
||||
replace.forEach((biomeBuilder, biomeBuilders) -> replaceMap.put(biomeBuilder.build(seed), biomeBuilders.map(builder -> builder.build(seed), true)));
|
||||
|
||||
return new ReplaceListMutator(replaceMap, defaultFrom, defaultTo.map(biomeBuilder -> biomeBuilder.build(seed), true), noise.build(seed));
|
||||
return new ReplaceListMutator(replaceMap, defaultFrom, defaultTo.map(biomeBuilder -> biomeBuilder.build(seed), true), noise);
|
||||
}
|
||||
}
|
||||
|
@ -16,6 +16,6 @@ public class ReplaceMutatorTemplate extends MutatorStageTemplate {
|
||||
|
||||
@Override
|
||||
public BiomeMutator getMutator(long seed) {
|
||||
return new ReplaceMutator(from, to.map(biomeBuilder -> biomeBuilder.build(seed), true), noise.build(seed));
|
||||
return new ReplaceMutator(from, to.map(biomeBuilder -> biomeBuilder.build(seed), true), noise);
|
||||
}
|
||||
}
|
||||
|
@ -6,6 +6,6 @@ import com.dfsek.terra.addons.biome.pipeline.mutator.SmoothMutator;
|
||||
public class SmoothMutatorTemplate extends MutatorStageTemplate {
|
||||
@Override
|
||||
public BiomeMutator getMutator(long seed) {
|
||||
return new SmoothMutator(noise.build(seed));
|
||||
return new SmoothMutator(noise);
|
||||
}
|
||||
}
|
||||
|
@ -11,6 +11,7 @@ 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.noise.NoiseSampler;
|
||||
import com.dfsek.terra.api.util.collection.ProbabilityCollection;
|
||||
import com.dfsek.terra.api.util.seeded.SeededNoiseSampler;
|
||||
import com.dfsek.terra.api.world.biome.Biome;
|
||||
@ -42,14 +43,14 @@ public class BiomeTemplate implements AbstractableTemplate, ValidatedConfigTempl
|
||||
|
||||
@Value("beta.carving.equation")
|
||||
@Default
|
||||
private SeededNoiseSampler carvingEquation = SeededNoiseSampler.zero(3);
|
||||
private NoiseSampler carvingEquation = NoiseSampler.zero();
|
||||
|
||||
@Value("vanilla")
|
||||
private ProbabilityCollection<Biome> vanilla;
|
||||
|
||||
@Value("biome-noise")
|
||||
@Default
|
||||
private SeededNoiseSampler biomeNoise = SeededNoiseSampler.zero(2);
|
||||
private NoiseSampler biomeNoise = NoiseSampler.zero();
|
||||
|
||||
@Value("blend.distance")
|
||||
@Default
|
||||
@ -64,7 +65,7 @@ public class BiomeTemplate implements AbstractableTemplate, ValidatedConfigTempl
|
||||
private int blendStep = 4;
|
||||
|
||||
@Value("noise")
|
||||
private SeededNoiseSampler noiseEquation;
|
||||
private NoiseSampler noiseEquation;
|
||||
|
||||
@Value("ocean.level")
|
||||
@Default
|
||||
@ -72,7 +73,7 @@ public class BiomeTemplate implements AbstractableTemplate, ValidatedConfigTempl
|
||||
|
||||
@Value("elevation.equation")
|
||||
@Default
|
||||
private SeededNoiseSampler elevationEquation = SeededNoiseSampler.zero(2);
|
||||
private NoiseSampler elevationEquation = NoiseSampler.zero();
|
||||
|
||||
@Value("elevation.weight")
|
||||
@Default
|
||||
@ -159,15 +160,15 @@ public class BiomeTemplate implements AbstractableTemplate, ValidatedConfigTempl
|
||||
return stairPalettes;
|
||||
}
|
||||
|
||||
public SeededNoiseSampler getBiomeNoise() {
|
||||
public NoiseSampler getBiomeNoise() {
|
||||
return biomeNoise;
|
||||
}
|
||||
|
||||
public SeededNoiseSampler getElevationEquation() {
|
||||
public NoiseSampler getElevationEquation() {
|
||||
return elevationEquation;
|
||||
}
|
||||
|
||||
public SeededNoiseSampler getCarvingEquation() {
|
||||
public NoiseSampler getCarvingEquation() {
|
||||
return carvingEquation;
|
||||
}
|
||||
|
||||
@ -187,7 +188,7 @@ public class BiomeTemplate implements AbstractableTemplate, ValidatedConfigTempl
|
||||
return vanilla;
|
||||
}
|
||||
|
||||
public SeededNoiseSampler getNoiseEquation() {
|
||||
public NoiseSampler getNoiseEquation() {
|
||||
return noiseEquation;
|
||||
}
|
||||
|
||||
@ -206,36 +207,6 @@ public class BiomeTemplate implements AbstractableTemplate, ValidatedConfigTempl
|
||||
@Override
|
||||
public boolean validate() throws ValidationException {
|
||||
color |= 0xff000000; // Alpha adjustment
|
||||
Parser tester = new Parser();
|
||||
Scope testScope = new Scope();
|
||||
|
||||
variables.forEach(testScope::create);
|
||||
|
||||
testScope.addInvocationVariable("x");
|
||||
testScope.addInvocationVariable("y");
|
||||
testScope.addInvocationVariable("z");
|
||||
|
||||
|
||||
//pack.getTemplate().getNoiseBuilderMap().forEach((id, builder) -> tester.registerFunction(id, new BlankFunction(builder.getDimensions()))); // Register dummy functions
|
||||
|
||||
try {
|
||||
noiseEquation.build(0L);
|
||||
} catch(Exception e) {
|
||||
throw new ValidationException("Invalid noise sampler: ", e);
|
||||
}
|
||||
|
||||
try {
|
||||
carvingEquation.build(0L);
|
||||
} catch(Exception e) {
|
||||
throw new ValidationException("Invalid carving sampler: ", e);
|
||||
}
|
||||
|
||||
try {
|
||||
elevationEquation.build(0L);
|
||||
} catch(Exception e) {
|
||||
throw new ValidationException("Invalid elevation sampler: ", e);
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
@ -23,7 +23,7 @@ public class UserDefinedSeededTerraBiome implements SeededTerraBiome {
|
||||
synchronized(biomeMap) {
|
||||
return biomeMap.computeIfAbsent(seed,
|
||||
s -> {
|
||||
UserDefinedGenerator generator = new UserDefinedGenerator(template.getNoiseEquation().build(seed), template.getElevationEquation().build(seed), template.getCarvingEquation().build(seed), template.getBiomeNoise().build(seed), template.getElevationWeight(),
|
||||
UserDefinedGenerator generator = new UserDefinedGenerator(template.getNoiseEquation(), template.getElevationEquation(), template.getCarvingEquation(), template.getBiomeNoise(), template.getElevationWeight(),
|
||||
template.getBlendDistance(), template.getBlendStep(), template.getBlendWeight());
|
||||
return new UserDefinedBiome(template.getVanilla(), generator, template, context);
|
||||
}
|
||||
|
@ -3,16 +3,17 @@ package com.dfsek.terra.addons.feature.distributor.config;
|
||||
import com.dfsek.tectonic.annotations.Value;
|
||||
import com.dfsek.tectonic.loading.object.ObjectTemplate;
|
||||
import com.dfsek.terra.addons.feature.distributor.distributors.NoiseDistributor;
|
||||
import com.dfsek.terra.api.noise.NoiseSampler;
|
||||
import com.dfsek.terra.api.structure.feature.Distributor;
|
||||
import com.dfsek.terra.api.util.seeded.SeededBuilder;
|
||||
import com.dfsek.terra.api.util.seeded.SeededNoiseSampler;
|
||||
|
||||
public class NoiseDistributorTemplate implements ObjectTemplate<SeededBuilder<Distributor>> {
|
||||
@Value("distribution")
|
||||
private SeededNoiseSampler noise;
|
||||
private NoiseSampler noise;
|
||||
|
||||
@Override
|
||||
public SeededBuilder<Distributor> get() {
|
||||
return seed -> new NoiseDistributor(noise.build(seed));
|
||||
return seed -> new NoiseDistributor(noise);
|
||||
}
|
||||
}
|
||||
|
@ -8,6 +8,6 @@ import com.dfsek.terra.api.world.Flora;
|
||||
public class FloraFactory implements ConfigFactory<FloraTemplate, Flora> {
|
||||
@Override
|
||||
public TerraFlora build(FloraTemplate config, TerraPlugin main) {
|
||||
return new TerraFlora(config.getLayers(), config.doPhysics(), config.isCeiling(), config.getIrrigable(), config.getSpawnable(), config.getReplaceable(), config.getRotatable(), config.getMaxPlacements(), config.getSearch(), config.isSpawnBlacklist(), config.getIrrigableOffset(), main, config.getNoiseDistribution().build(2403));
|
||||
return new TerraFlora(config.getLayers(), config.doPhysics(), config.isCeiling(), config.getIrrigable(), config.getSpawnable(), config.getReplaceable(), config.getRotatable(), config.getMaxPlacements(), config.getSearch(), config.isSpawnBlacklist(), config.getIrrigableOffset(), main, config.getNoiseDistribution());
|
||||
}
|
||||
}
|
||||
|
@ -6,6 +6,7 @@ import com.dfsek.tectonic.annotations.Value;
|
||||
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.noise.NoiseSampler;
|
||||
import com.dfsek.terra.api.util.collection.MaterialSet;
|
||||
import com.dfsek.terra.api.util.seeded.SeededNoiseSampler;
|
||||
|
||||
@ -61,9 +62,9 @@ public class FloraTemplate implements AbstractableTemplate {
|
||||
private List<BlockLayer> layers;
|
||||
|
||||
@Value("layer-distribution")
|
||||
private SeededNoiseSampler noiseDistribution;
|
||||
private NoiseSampler noiseDistribution;
|
||||
|
||||
public SeededNoiseSampler getNoiseDistribution() {
|
||||
public NoiseSampler getNoiseDistribution() {
|
||||
return noiseDistribution;
|
||||
}
|
||||
|
||||
|
@ -0,0 +1,22 @@
|
||||
package com.dfsek.terra.addons.noise.config;
|
||||
|
||||
import com.dfsek.terra.api.noise.NoiseSampler;
|
||||
|
||||
public class DimensionApplicableNoiseSampler {
|
||||
private final int dimensions;
|
||||
|
||||
private final NoiseSampler sampler;
|
||||
|
||||
public DimensionApplicableNoiseSampler(int dimensions, NoiseSampler sampler) {
|
||||
this.dimensions = dimensions;
|
||||
this.sampler = sampler;
|
||||
}
|
||||
|
||||
public int getDimensions() {
|
||||
return dimensions;
|
||||
}
|
||||
|
||||
public NoiseSampler getSampler() {
|
||||
return sampler;
|
||||
}
|
||||
}
|
@ -9,10 +9,10 @@ import com.dfsek.terra.api.util.seeded.SeededNoiseSampler;
|
||||
@SuppressWarnings({"unused", "FieldMayBeFinal"})
|
||||
public class DomainWarpTemplate extends SamplerTemplate<DomainWarpedSampler> {
|
||||
@Value("warp")
|
||||
private SeededNoiseSampler warp;
|
||||
private NoiseSampler warp;
|
||||
|
||||
@Value("function")
|
||||
private SeededNoiseSampler function;
|
||||
private NoiseSampler function;
|
||||
|
||||
@Value("salt")
|
||||
@Default
|
||||
@ -24,6 +24,6 @@ public class DomainWarpTemplate extends SamplerTemplate<DomainWarpedSampler> {
|
||||
|
||||
@Override
|
||||
public NoiseSampler build(long seed) {
|
||||
return new DomainWarpedSampler(function.build(seed), warp.build(seed), amplitude);
|
||||
return new DomainWarpedSampler(function, warp, amplitude);
|
||||
}
|
||||
}
|
||||
|
@ -21,7 +21,7 @@ public class KernelTemplate extends SamplerTemplate<KernelSampler> implements Va
|
||||
private double factor = 1;
|
||||
|
||||
@Value("function")
|
||||
private SeededNoiseSampler function;
|
||||
private NoiseSampler function;
|
||||
|
||||
@Value("frequency")
|
||||
@Default
|
||||
@ -37,7 +37,7 @@ public class KernelTemplate extends SamplerTemplate<KernelSampler> implements Va
|
||||
}
|
||||
}
|
||||
|
||||
KernelSampler sampler = new KernelSampler(k, function.build(seed));
|
||||
KernelSampler sampler = new KernelSampler(k, function);
|
||||
sampler.setFrequency(frequency);
|
||||
return sampler;
|
||||
}
|
||||
|
@ -24,22 +24,12 @@ public class CellularNoiseTemplate extends NoiseTemplate<CellularSampler> {
|
||||
|
||||
@Value("lookup")
|
||||
@Default
|
||||
private SeededNoiseSampler lookup = new SeededNoiseSampler() {
|
||||
@Override
|
||||
public NoiseSampler build(long seed) {
|
||||
return new OpenSimplex2Sampler();
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getDimensions() {
|
||||
return 2;
|
||||
}
|
||||
};
|
||||
private NoiseSampler lookup = new OpenSimplex2Sampler();
|
||||
|
||||
@Override
|
||||
public NoiseSampler build(long seed) {
|
||||
CellularSampler sampler = new CellularSampler();
|
||||
sampler.setNoiseLookup(lookup.build(seed));
|
||||
sampler.setNoiseLookup(lookup);
|
||||
sampler.setFrequency(frequency);
|
||||
sampler.setJitterModifier(cellularJitter);
|
||||
sampler.setReturnType(cellularReturnType);
|
||||
|
@ -8,6 +8,7 @@ import com.dfsek.tectonic.annotations.Default;
|
||||
import com.dfsek.tectonic.annotations.Value;
|
||||
import com.dfsek.tectonic.config.ValidatedConfigTemplate;
|
||||
import com.dfsek.tectonic.exception.ValidationException;
|
||||
import com.dfsek.terra.addons.noise.config.DimensionApplicableNoiseSampler;
|
||||
import com.dfsek.terra.addons.noise.config.templates.FunctionTemplate;
|
||||
import com.dfsek.terra.addons.noise.config.templates.SamplerTemplate;
|
||||
import com.dfsek.terra.addons.noise.paralithic.defined.UserDefinedFunction;
|
||||
@ -32,7 +33,7 @@ public class ExpressionFunctionTemplate extends SamplerTemplate<ExpressionFuncti
|
||||
private String equation;
|
||||
@Value("functions")
|
||||
@Default
|
||||
private LinkedHashMap<String, SeededNoiseSampler> functions = new LinkedHashMap<>();
|
||||
private LinkedHashMap<String, DimensionApplicableNoiseSampler> functions = new LinkedHashMap<>();
|
||||
@Value("expressions")
|
||||
@Default
|
||||
private LinkedHashMap<String, FunctionTemplate> expressions = new LinkedHashMap<>();
|
||||
@ -77,8 +78,8 @@ public class ExpressionFunctionTemplate extends SamplerTemplate<ExpressionFuncti
|
||||
|
||||
functions.forEach((id, function) -> {
|
||||
if(function.getDimensions() == 2) {
|
||||
noiseFunctionMap.put(id, new NoiseFunction2(function.build(seed)));
|
||||
} else noiseFunctionMap.put(id, new NoiseFunction3(function.build(seed)));
|
||||
noiseFunctionMap.put(id, new NoiseFunction2(function.getSampler()));
|
||||
} else noiseFunctionMap.put(id, new NoiseFunction3(function.getSampler()));
|
||||
});
|
||||
|
||||
return noiseFunctionMap;
|
||||
|
@ -6,7 +6,7 @@ import com.dfsek.terra.api.noise.NoiseSampler;
|
||||
public class BrownianMotionTemplate extends FractalTemplate<BrownianMotionSampler> {
|
||||
@Override
|
||||
public NoiseSampler build(long seed) {
|
||||
BrownianMotionSampler sampler = new BrownianMotionSampler((int) seed, function.build(seed));
|
||||
BrownianMotionSampler sampler = new BrownianMotionSampler((int) seed, function);
|
||||
sampler.setGain(fractalGain);
|
||||
sampler.setLacunarity(fractalLacunarity);
|
||||
sampler.setOctaves(octaves);
|
||||
|
@ -4,6 +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.noise.NoiseSampler;
|
||||
import com.dfsek.terra.api.util.seeded.SeededNoiseSampler;
|
||||
|
||||
public abstract class FractalTemplate<T extends FractalNoiseFunction> extends SamplerTemplate<T> {
|
||||
@ -24,5 +25,5 @@ public abstract class FractalTemplate<T extends FractalNoiseFunction> extends Sa
|
||||
protected double weightedStrength = 0.0D;
|
||||
|
||||
@Value("function")
|
||||
protected SeededNoiseSampler function;
|
||||
protected NoiseSampler function;
|
||||
}
|
||||
|
@ -13,7 +13,7 @@ public class PingPongTemplate extends FractalTemplate<PingPongSampler> {
|
||||
|
||||
@Override
|
||||
public NoiseSampler build(long seed) {
|
||||
PingPongSampler sampler = new PingPongSampler((int) seed, function.build(seed));
|
||||
PingPongSampler sampler = new PingPongSampler((int) seed, function);
|
||||
sampler.setGain(fractalGain);
|
||||
sampler.setLacunarity(fractalLacunarity);
|
||||
sampler.setOctaves(octaves);
|
||||
|
@ -6,7 +6,7 @@ import com.dfsek.terra.api.noise.NoiseSampler;
|
||||
public class RidgedFractalTemplate extends FractalTemplate<RidgedFractalSampler> {
|
||||
@Override
|
||||
public NoiseSampler build(long seed) {
|
||||
RidgedFractalSampler sampler = new RidgedFractalSampler((int) seed, function.build(seed));
|
||||
RidgedFractalSampler sampler = new RidgedFractalSampler((int) seed, function);
|
||||
sampler.setGain(fractalGain);
|
||||
sampler.setLacunarity(fractalLacunarity);
|
||||
sampler.setOctaves(octaves);
|
||||
|
@ -14,6 +14,6 @@ public class ClampNormalizerTemplate extends NormalizerTemplate<ClampNormalizer>
|
||||
|
||||
@Override
|
||||
public NoiseSampler build(long seed) {
|
||||
return new ClampNormalizer(function.build(seed), min, max);
|
||||
return new ClampNormalizer(function, min, max);
|
||||
}
|
||||
}
|
||||
|
@ -14,6 +14,6 @@ public class LinearNormalizerTemplate extends NormalizerTemplate<LinearNormalize
|
||||
|
||||
@Override
|
||||
public NoiseSampler build(long seed) {
|
||||
return new LinearNormalizer(function.build(seed), min, max);
|
||||
return new LinearNormalizer(function, min, max);
|
||||
}
|
||||
}
|
||||
|
@ -19,6 +19,6 @@ public class NormalNormalizerTemplate extends NormalizerTemplate<NormalNormalize
|
||||
|
||||
@Override
|
||||
public NoiseSampler build(long seed) {
|
||||
return new NormalNormalizer(function.build(seed), groups, mean, stdDev);
|
||||
return new NormalNormalizer(function, groups, mean, stdDev);
|
||||
}
|
||||
}
|
||||
|
@ -3,9 +3,10 @@ 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.noise.NoiseSampler;
|
||||
import com.dfsek.terra.api.util.seeded.SeededNoiseSampler;
|
||||
|
||||
public abstract class NormalizerTemplate<T extends Normalizer> extends SamplerTemplate<T> {
|
||||
@Value("function")
|
||||
protected SeededNoiseSampler function;
|
||||
protected NoiseSampler function;
|
||||
}
|
||||
|
@ -9,7 +9,7 @@ import com.dfsek.terra.api.world.generator.Palette;
|
||||
public class PaletteFactory implements ConfigFactory<PaletteTemplate, Palette> {
|
||||
@Override
|
||||
public Palette build(PaletteTemplate config, TerraPlugin main) {
|
||||
NoisePalette palette = new NoisePalette(config.getNoise().build(2403L), config.getNoise().getDimensions() == 2);
|
||||
NoisePalette palette = new NoisePalette(config.getNoise());
|
||||
for(PaletteLayerHolder layer : config.getPalette()) {
|
||||
palette.add(layer.getLayer(), layer.getSize(), layer.getSampler());
|
||||
}
|
||||
|
@ -5,6 +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.noise.NoiseSampler;
|
||||
import com.dfsek.terra.api.util.seeded.SeededNoiseSampler;
|
||||
|
||||
import java.util.List;
|
||||
@ -13,7 +14,7 @@ import java.util.List;
|
||||
public class PaletteTemplate implements AbstractableTemplate {
|
||||
@Value("noise")
|
||||
@Default
|
||||
private SeededNoiseSampler noise = SeededNoiseSampler.zero(2);
|
||||
private NoiseSampler noise = NoiseSampler.zero();
|
||||
|
||||
@Value("id")
|
||||
@Final
|
||||
@ -30,7 +31,7 @@ public class PaletteTemplate implements AbstractableTemplate {
|
||||
return palette;
|
||||
}
|
||||
|
||||
public SeededNoiseSampler getNoise() {
|
||||
public NoiseSampler getNoise() {
|
||||
return noise;
|
||||
}
|
||||
}
|
||||
|
@ -7,12 +7,10 @@ import java.util.List;
|
||||
|
||||
public class NoisePalette extends PaletteImpl {
|
||||
private final NoiseSampler sampler;
|
||||
private final boolean is2D;
|
||||
|
||||
public NoisePalette(NoiseSampler sampler, boolean is2D) {
|
||||
public NoisePalette(NoiseSampler sampler) {
|
||||
this.sampler = sampler;
|
||||
this.is2D = is2D;
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public BlockState get(int layer, double x, double y, double z, long seed) {
|
||||
@ -24,6 +22,6 @@ public class NoisePalette extends PaletteImpl {
|
||||
else paletteLayer = pl.get(layer);
|
||||
}
|
||||
NoiseSampler paletteSampler = paletteLayer.getSampler();
|
||||
return paletteLayer.get(paletteSampler == null ? sampler : paletteSampler, x, y, z, is2D, seed);
|
||||
return paletteLayer.get(paletteSampler == null ? sampler : paletteSampler, x, y, z, seed);
|
||||
}
|
||||
}
|
||||
|
@ -86,19 +86,9 @@ public abstract class PaletteImpl implements Palette {
|
||||
return sampler;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets a material from the layer.
|
||||
*
|
||||
* @return Material - the material..
|
||||
*/
|
||||
public BlockState get(Random random) {
|
||||
if(col) return this.collection.get(random);
|
||||
return m;
|
||||
}
|
||||
|
||||
public BlockState get(NoiseSampler random, double x, double y, double z, boolean is2D, long seed) {
|
||||
if(col && is2D) return this.collection.get(random, x, z, seed);
|
||||
else if(col) return this.collection.get(random, x, y, z, seed);
|
||||
public BlockState get(NoiseSampler random, double x, double y, double z, long seed) {
|
||||
if(col) return this.collection.get(random, x, y, z, seed);
|
||||
return m;
|
||||
}
|
||||
|
||||
|
@ -2,6 +2,7 @@ package com.dfsek.terra.addons.generation.flora;
|
||||
|
||||
import com.dfsek.tectonic.annotations.Value;
|
||||
import com.dfsek.tectonic.loading.object.ObjectTemplate;
|
||||
import com.dfsek.terra.api.noise.NoiseSampler;
|
||||
import com.dfsek.terra.api.util.Range;
|
||||
import com.dfsek.terra.api.util.collection.ProbabilityCollection;
|
||||
import com.dfsek.terra.api.util.seeded.SeededNoiseSampler;
|
||||
@ -18,11 +19,11 @@ public class FloraLayerLoader implements ObjectTemplate<FloraLayer> {
|
||||
private ProbabilityCollection<Flora> items;
|
||||
|
||||
@Value("distribution")
|
||||
private SeededNoiseSampler distribution;
|
||||
private NoiseSampler distribution;
|
||||
|
||||
|
||||
@Override
|
||||
public FloraLayer get() {
|
||||
return new FloraLayer(density, y, items, distribution.build(2403L));
|
||||
return new FloraLayer(density, y, items, distribution);
|
||||
}
|
||||
}
|
||||
|
@ -2,6 +2,7 @@ package com.dfsek.terra.addons.generation.tree;
|
||||
|
||||
import com.dfsek.tectonic.annotations.Value;
|
||||
import com.dfsek.tectonic.loading.object.ObjectTemplate;
|
||||
import com.dfsek.terra.api.noise.NoiseSampler;
|
||||
import com.dfsek.terra.api.util.Range;
|
||||
import com.dfsek.terra.api.util.collection.ProbabilityCollection;
|
||||
import com.dfsek.terra.api.util.seeded.SeededNoiseSampler;
|
||||
@ -18,10 +19,10 @@ public class TreeLayerTemplate implements ObjectTemplate<TreeLayer> {
|
||||
private ProbabilityCollection<Tree> items;
|
||||
|
||||
@Value("distribution")
|
||||
private SeededNoiseSampler distribution;
|
||||
private NoiseSampler distribution;
|
||||
|
||||
@Override
|
||||
public TreeLayer get() {
|
||||
return new TreeLayer(density, y, items, distribution.build(2403L));
|
||||
return new TreeLayer(density, y, items, distribution);
|
||||
}
|
||||
}
|
||||
|
@ -2,15 +2,16 @@ package noise;
|
||||
|
||||
import com.dfsek.tectonic.annotations.Value;
|
||||
import com.dfsek.tectonic.config.ConfigTemplate;
|
||||
import com.dfsek.terra.api.noise.NoiseSampler;
|
||||
import com.dfsek.terra.api.util.seeded.SeededNoiseSampler;
|
||||
|
||||
|
||||
@SuppressWarnings("unused")
|
||||
public class NoiseConfigTemplate implements ConfigTemplate {
|
||||
@Value(".")
|
||||
private SeededNoiseSampler builder;
|
||||
private NoiseSampler builder;
|
||||
|
||||
public SeededNoiseSampler getBuilder() {
|
||||
public NoiseSampler getBuilder() {
|
||||
return builder;
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user