mirror of
https://github.com/PolyhedralDev/Terra.git
synced 2026-06-18 14:50:56 +00:00
remove SeededNoiseSampler from configs
This commit is contained in:
+1
-1
@@ -34,6 +34,6 @@ public class BiomePipelineTemplate extends BiomeProviderTemplate {
|
|||||||
BiomePipelineImpl.BiomePipelineBuilder biomePipelineBuilder = new BiomePipelineImpl.BiomePipelineBuilder(initialSize);
|
BiomePipelineImpl.BiomePipelineBuilder biomePipelineBuilder = new BiomePipelineImpl.BiomePipelineBuilder(initialSize);
|
||||||
stages.forEach(biomePipelineBuilder::addStage);
|
stages.forEach(biomePipelineBuilder::addStage);
|
||||||
BiomePipelineImpl pipeline = biomePipelineBuilder.build(source.build(seed), seed);
|
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);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+2
-1
@@ -3,6 +3,7 @@ package com.dfsek.terra.addons.biome.pipeline.config;
|
|||||||
import com.dfsek.tectonic.annotations.Default;
|
import com.dfsek.tectonic.annotations.Default;
|
||||||
import com.dfsek.tectonic.annotations.Value;
|
import com.dfsek.tectonic.annotations.Value;
|
||||||
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.util.seeded.SeededBuilder;
|
import com.dfsek.terra.api.util.seeded.SeededBuilder;
|
||||||
import com.dfsek.terra.api.util.seeded.SeededNoiseSampler;
|
import com.dfsek.terra.api.util.seeded.SeededNoiseSampler;
|
||||||
import com.dfsek.terra.api.world.biome.generation.BiomeProvider;
|
import com.dfsek.terra.api.world.biome.generation.BiomeProvider;
|
||||||
@@ -13,7 +14,7 @@ public abstract class BiomeProviderTemplate implements ObjectTemplate<SeededBuil
|
|||||||
protected int resolution = 1;
|
protected int resolution = 1;
|
||||||
@Value("blend.noise")
|
@Value("blend.noise")
|
||||||
@Default
|
@Default
|
||||||
protected SeededNoiseSampler blend = SeededNoiseSampler.zero(2);
|
protected NoiseSampler blend = NoiseSampler.zero();
|
||||||
@Value("blend.amplitude")
|
@Value("blend.amplitude")
|
||||||
@Default
|
@Default
|
||||||
protected double blendAmp = 0d;
|
protected double blendAmp = 0d;
|
||||||
|
|||||||
+3
-2
@@ -2,6 +2,7 @@ package com.dfsek.terra.addons.biome.pipeline.config;
|
|||||||
|
|
||||||
import com.dfsek.tectonic.annotations.Value;
|
import com.dfsek.tectonic.annotations.Value;
|
||||||
import com.dfsek.terra.addons.biome.pipeline.source.RandomSource;
|
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.collection.ProbabilityCollection;
|
||||||
import com.dfsek.terra.api.util.seeded.SeededTerraBiome;
|
import com.dfsek.terra.api.util.seeded.SeededTerraBiome;
|
||||||
import com.dfsek.terra.api.util.seeded.SeededNoiseSampler;
|
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 {
|
public class NoiseSourceTemplate extends SourceTemplate {
|
||||||
@Value("noise")
|
@Value("noise")
|
||||||
private SeededNoiseSampler noise;
|
private NoiseSampler noise;
|
||||||
|
|
||||||
@Value("biomes")
|
@Value("biomes")
|
||||||
private ProbabilityCollection<SeededTerraBiome> biomes;
|
private ProbabilityCollection<SeededTerraBiome> biomes;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public BiomeSource build(long seed) {
|
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);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+2
-1
@@ -4,12 +4,13 @@ import com.dfsek.tectonic.annotations.Value;
|
|||||||
import com.dfsek.tectonic.loading.object.ObjectTemplate;
|
import com.dfsek.tectonic.loading.object.ObjectTemplate;
|
||||||
import com.dfsek.terra.addons.biome.pipeline.StageSeeded;
|
import com.dfsek.terra.addons.biome.pipeline.StageSeeded;
|
||||||
import com.dfsek.terra.addons.biome.pipeline.api.Stage;
|
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.SeededNoiseSampler;
|
||||||
import com.dfsek.terra.api.util.seeded.SeededBuilder;
|
import com.dfsek.terra.api.util.seeded.SeededBuilder;
|
||||||
|
|
||||||
public abstract class StageTemplate implements ObjectTemplate<SeededBuilder<Stage>>, StageSeeded {
|
public abstract class StageTemplate implements ObjectTemplate<SeededBuilder<Stage>>, StageSeeded {
|
||||||
@Value("noise")
|
@Value("noise")
|
||||||
protected SeededNoiseSampler noise;
|
protected NoiseSampler noise;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public StageSeeded get() {
|
public StageSeeded get() {
|
||||||
|
|||||||
+1
-1
@@ -8,6 +8,6 @@ import com.dfsek.terra.addons.biome.pipeline.stages.ExpanderStage;
|
|||||||
public class ExpanderStageTemplate extends StageTemplate {
|
public class ExpanderStageTemplate extends StageTemplate {
|
||||||
@Override
|
@Override
|
||||||
public Stage build(long seed) {
|
public Stage build(long seed) {
|
||||||
return new ExpanderStage(new FractalExpander(noise.build(seed)));
|
return new ExpanderStage(new FractalExpander(noise));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+1
-1
@@ -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)));
|
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));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+1
-1
@@ -19,6 +19,6 @@ public class BorderMutatorTemplate extends MutatorStageTemplate {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public BiomeMutator getMutator(long seed) {
|
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));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+1
-1
@@ -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)));
|
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);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+1
-1
@@ -16,6 +16,6 @@ public class ReplaceMutatorTemplate extends MutatorStageTemplate {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public BiomeMutator getMutator(long seed) {
|
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);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+1
-1
@@ -6,6 +6,6 @@ import com.dfsek.terra.addons.biome.pipeline.mutator.SmoothMutator;
|
|||||||
public class SmoothMutatorTemplate extends MutatorStageTemplate {
|
public class SmoothMutatorTemplate extends MutatorStageTemplate {
|
||||||
@Override
|
@Override
|
||||||
public BiomeMutator getMutator(long seed) {
|
public BiomeMutator getMutator(long seed) {
|
||||||
return new SmoothMutator(noise.build(seed));
|
return new SmoothMutator(noise);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+9
-38
@@ -11,6 +11,7 @@ import com.dfsek.terra.api.TerraPlugin;
|
|||||||
import com.dfsek.terra.api.block.BlockType;
|
import com.dfsek.terra.api.block.BlockType;
|
||||||
import com.dfsek.terra.api.config.AbstractableTemplate;
|
import com.dfsek.terra.api.config.AbstractableTemplate;
|
||||||
import com.dfsek.terra.api.config.ConfigPack;
|
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.collection.ProbabilityCollection;
|
||||||
import com.dfsek.terra.api.util.seeded.SeededNoiseSampler;
|
import com.dfsek.terra.api.util.seeded.SeededNoiseSampler;
|
||||||
import com.dfsek.terra.api.world.biome.Biome;
|
import com.dfsek.terra.api.world.biome.Biome;
|
||||||
@@ -42,14 +43,14 @@ public class BiomeTemplate implements AbstractableTemplate, ValidatedConfigTempl
|
|||||||
|
|
||||||
@Value("beta.carving.equation")
|
@Value("beta.carving.equation")
|
||||||
@Default
|
@Default
|
||||||
private SeededNoiseSampler carvingEquation = SeededNoiseSampler.zero(3);
|
private NoiseSampler carvingEquation = NoiseSampler.zero();
|
||||||
|
|
||||||
@Value("vanilla")
|
@Value("vanilla")
|
||||||
private ProbabilityCollection<Biome> vanilla;
|
private ProbabilityCollection<Biome> vanilla;
|
||||||
|
|
||||||
@Value("biome-noise")
|
@Value("biome-noise")
|
||||||
@Default
|
@Default
|
||||||
private SeededNoiseSampler biomeNoise = SeededNoiseSampler.zero(2);
|
private NoiseSampler biomeNoise = NoiseSampler.zero();
|
||||||
|
|
||||||
@Value("blend.distance")
|
@Value("blend.distance")
|
||||||
@Default
|
@Default
|
||||||
@@ -64,7 +65,7 @@ public class BiomeTemplate implements AbstractableTemplate, ValidatedConfigTempl
|
|||||||
private int blendStep = 4;
|
private int blendStep = 4;
|
||||||
|
|
||||||
@Value("noise")
|
@Value("noise")
|
||||||
private SeededNoiseSampler noiseEquation;
|
private NoiseSampler noiseEquation;
|
||||||
|
|
||||||
@Value("ocean.level")
|
@Value("ocean.level")
|
||||||
@Default
|
@Default
|
||||||
@@ -72,7 +73,7 @@ public class BiomeTemplate implements AbstractableTemplate, ValidatedConfigTempl
|
|||||||
|
|
||||||
@Value("elevation.equation")
|
@Value("elevation.equation")
|
||||||
@Default
|
@Default
|
||||||
private SeededNoiseSampler elevationEquation = SeededNoiseSampler.zero(2);
|
private NoiseSampler elevationEquation = NoiseSampler.zero();
|
||||||
|
|
||||||
@Value("elevation.weight")
|
@Value("elevation.weight")
|
||||||
@Default
|
@Default
|
||||||
@@ -159,15 +160,15 @@ public class BiomeTemplate implements AbstractableTemplate, ValidatedConfigTempl
|
|||||||
return stairPalettes;
|
return stairPalettes;
|
||||||
}
|
}
|
||||||
|
|
||||||
public SeededNoiseSampler getBiomeNoise() {
|
public NoiseSampler getBiomeNoise() {
|
||||||
return biomeNoise;
|
return biomeNoise;
|
||||||
}
|
}
|
||||||
|
|
||||||
public SeededNoiseSampler getElevationEquation() {
|
public NoiseSampler getElevationEquation() {
|
||||||
return elevationEquation;
|
return elevationEquation;
|
||||||
}
|
}
|
||||||
|
|
||||||
public SeededNoiseSampler getCarvingEquation() {
|
public NoiseSampler getCarvingEquation() {
|
||||||
return carvingEquation;
|
return carvingEquation;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -187,7 +188,7 @@ public class BiomeTemplate implements AbstractableTemplate, ValidatedConfigTempl
|
|||||||
return vanilla;
|
return vanilla;
|
||||||
}
|
}
|
||||||
|
|
||||||
public SeededNoiseSampler getNoiseEquation() {
|
public NoiseSampler getNoiseEquation() {
|
||||||
return noiseEquation;
|
return noiseEquation;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -206,36 +207,6 @@ public class BiomeTemplate implements AbstractableTemplate, ValidatedConfigTempl
|
|||||||
@Override
|
@Override
|
||||||
public boolean validate() throws ValidationException {
|
public boolean validate() throws ValidationException {
|
||||||
color |= 0xff000000; // Alpha adjustment
|
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;
|
return true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+1
-1
@@ -23,7 +23,7 @@ public class UserDefinedSeededTerraBiome implements SeededTerraBiome {
|
|||||||
synchronized(biomeMap) {
|
synchronized(biomeMap) {
|
||||||
return biomeMap.computeIfAbsent(seed,
|
return biomeMap.computeIfAbsent(seed,
|
||||||
s -> {
|
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());
|
template.getBlendDistance(), template.getBlendStep(), template.getBlendWeight());
|
||||||
return new UserDefinedBiome(template.getVanilla(), generator, template, context);
|
return new UserDefinedBiome(template.getVanilla(), generator, template, context);
|
||||||
}
|
}
|
||||||
|
|||||||
+3
-2
@@ -3,16 +3,17 @@ package com.dfsek.terra.addons.feature.distributor.config;
|
|||||||
import com.dfsek.tectonic.annotations.Value;
|
import com.dfsek.tectonic.annotations.Value;
|
||||||
import com.dfsek.tectonic.loading.object.ObjectTemplate;
|
import com.dfsek.tectonic.loading.object.ObjectTemplate;
|
||||||
import com.dfsek.terra.addons.feature.distributor.distributors.NoiseDistributor;
|
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.structure.feature.Distributor;
|
||||||
import com.dfsek.terra.api.util.seeded.SeededBuilder;
|
import com.dfsek.terra.api.util.seeded.SeededBuilder;
|
||||||
import com.dfsek.terra.api.util.seeded.SeededNoiseSampler;
|
import com.dfsek.terra.api.util.seeded.SeededNoiseSampler;
|
||||||
|
|
||||||
public class NoiseDistributorTemplate implements ObjectTemplate<SeededBuilder<Distributor>> {
|
public class NoiseDistributorTemplate implements ObjectTemplate<SeededBuilder<Distributor>> {
|
||||||
@Value("distribution")
|
@Value("distribution")
|
||||||
private SeededNoiseSampler noise;
|
private NoiseSampler noise;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public SeededBuilder<Distributor> get() {
|
public SeededBuilder<Distributor> get() {
|
||||||
return seed -> new NoiseDistributor(noise.build(seed));
|
return seed -> new NoiseDistributor(noise);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+1
-1
@@ -8,6 +8,6 @@ import com.dfsek.terra.api.world.Flora;
|
|||||||
public class FloraFactory implements ConfigFactory<FloraTemplate, Flora> {
|
public class FloraFactory implements ConfigFactory<FloraTemplate, Flora> {
|
||||||
@Override
|
@Override
|
||||||
public TerraFlora build(FloraTemplate config, TerraPlugin main) {
|
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());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+3
-2
@@ -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.BlockLayer;
|
||||||
import com.dfsek.terra.addons.flora.flora.gen.TerraFlora;
|
import com.dfsek.terra.addons.flora.flora.gen.TerraFlora;
|
||||||
import com.dfsek.terra.api.config.AbstractableTemplate;
|
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.collection.MaterialSet;
|
||||||
import com.dfsek.terra.api.util.seeded.SeededNoiseSampler;
|
import com.dfsek.terra.api.util.seeded.SeededNoiseSampler;
|
||||||
|
|
||||||
@@ -61,9 +62,9 @@ public class FloraTemplate implements AbstractableTemplate {
|
|||||||
private List<BlockLayer> layers;
|
private List<BlockLayer> layers;
|
||||||
|
|
||||||
@Value("layer-distribution")
|
@Value("layer-distribution")
|
||||||
private SeededNoiseSampler noiseDistribution;
|
private NoiseSampler noiseDistribution;
|
||||||
|
|
||||||
public SeededNoiseSampler getNoiseDistribution() {
|
public NoiseSampler getNoiseDistribution() {
|
||||||
return noiseDistribution;
|
return noiseDistribution;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+22
@@ -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;
|
||||||
|
}
|
||||||
|
}
|
||||||
+3
-3
@@ -9,10 +9,10 @@ import com.dfsek.terra.api.util.seeded.SeededNoiseSampler;
|
|||||||
@SuppressWarnings({"unused", "FieldMayBeFinal"})
|
@SuppressWarnings({"unused", "FieldMayBeFinal"})
|
||||||
public class DomainWarpTemplate extends SamplerTemplate<DomainWarpedSampler> {
|
public class DomainWarpTemplate extends SamplerTemplate<DomainWarpedSampler> {
|
||||||
@Value("warp")
|
@Value("warp")
|
||||||
private SeededNoiseSampler warp;
|
private NoiseSampler warp;
|
||||||
|
|
||||||
@Value("function")
|
@Value("function")
|
||||||
private SeededNoiseSampler function;
|
private NoiseSampler function;
|
||||||
|
|
||||||
@Value("salt")
|
@Value("salt")
|
||||||
@Default
|
@Default
|
||||||
@@ -24,6 +24,6 @@ public class DomainWarpTemplate extends SamplerTemplate<DomainWarpedSampler> {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public NoiseSampler build(long seed) {
|
public NoiseSampler build(long seed) {
|
||||||
return new DomainWarpedSampler(function.build(seed), warp.build(seed), amplitude);
|
return new DomainWarpedSampler(function, warp, amplitude);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+2
-2
@@ -21,7 +21,7 @@ public class KernelTemplate extends SamplerTemplate<KernelSampler> implements Va
|
|||||||
private double factor = 1;
|
private double factor = 1;
|
||||||
|
|
||||||
@Value("function")
|
@Value("function")
|
||||||
private SeededNoiseSampler function;
|
private NoiseSampler function;
|
||||||
|
|
||||||
@Value("frequency")
|
@Value("frequency")
|
||||||
@Default
|
@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);
|
sampler.setFrequency(frequency);
|
||||||
return sampler;
|
return sampler;
|
||||||
}
|
}
|
||||||
|
|||||||
+2
-12
@@ -24,22 +24,12 @@ public class CellularNoiseTemplate extends NoiseTemplate<CellularSampler> {
|
|||||||
|
|
||||||
@Value("lookup")
|
@Value("lookup")
|
||||||
@Default
|
@Default
|
||||||
private SeededNoiseSampler lookup = new SeededNoiseSampler() {
|
private NoiseSampler lookup = new OpenSimplex2Sampler();
|
||||||
@Override
|
|
||||||
public NoiseSampler build(long seed) {
|
|
||||||
return new OpenSimplex2Sampler();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public int getDimensions() {
|
|
||||||
return 2;
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public NoiseSampler build(long seed) {
|
public NoiseSampler build(long seed) {
|
||||||
CellularSampler sampler = new CellularSampler();
|
CellularSampler sampler = new CellularSampler();
|
||||||
sampler.setNoiseLookup(lookup.build(seed));
|
sampler.setNoiseLookup(lookup);
|
||||||
sampler.setFrequency(frequency);
|
sampler.setFrequency(frequency);
|
||||||
sampler.setJitterModifier(cellularJitter);
|
sampler.setJitterModifier(cellularJitter);
|
||||||
sampler.setReturnType(cellularReturnType);
|
sampler.setReturnType(cellularReturnType);
|
||||||
|
|||||||
+4
-3
@@ -8,6 +8,7 @@ import com.dfsek.tectonic.annotations.Default;
|
|||||||
import com.dfsek.tectonic.annotations.Value;
|
import com.dfsek.tectonic.annotations.Value;
|
||||||
import com.dfsek.tectonic.config.ValidatedConfigTemplate;
|
import com.dfsek.tectonic.config.ValidatedConfigTemplate;
|
||||||
import com.dfsek.tectonic.exception.ValidationException;
|
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.FunctionTemplate;
|
||||||
import com.dfsek.terra.addons.noise.config.templates.SamplerTemplate;
|
import com.dfsek.terra.addons.noise.config.templates.SamplerTemplate;
|
||||||
import com.dfsek.terra.addons.noise.paralithic.defined.UserDefinedFunction;
|
import com.dfsek.terra.addons.noise.paralithic.defined.UserDefinedFunction;
|
||||||
@@ -32,7 +33,7 @@ public class ExpressionFunctionTemplate extends SamplerTemplate<ExpressionFuncti
|
|||||||
private String equation;
|
private String equation;
|
||||||
@Value("functions")
|
@Value("functions")
|
||||||
@Default
|
@Default
|
||||||
private LinkedHashMap<String, SeededNoiseSampler> functions = new LinkedHashMap<>();
|
private LinkedHashMap<String, DimensionApplicableNoiseSampler> functions = new LinkedHashMap<>();
|
||||||
@Value("expressions")
|
@Value("expressions")
|
||||||
@Default
|
@Default
|
||||||
private LinkedHashMap<String, FunctionTemplate> expressions = new LinkedHashMap<>();
|
private LinkedHashMap<String, FunctionTemplate> expressions = new LinkedHashMap<>();
|
||||||
@@ -77,8 +78,8 @@ public class ExpressionFunctionTemplate extends SamplerTemplate<ExpressionFuncti
|
|||||||
|
|
||||||
functions.forEach((id, function) -> {
|
functions.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()));
|
||||||
});
|
});
|
||||||
|
|
||||||
return noiseFunctionMap;
|
return noiseFunctionMap;
|
||||||
|
|||||||
+1
-1
@@ -6,7 +6,7 @@ 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 build(long seed) {
|
||||||
BrownianMotionSampler sampler = new BrownianMotionSampler((int) seed, function.build(seed));
|
BrownianMotionSampler sampler = new BrownianMotionSampler((int) seed, function);
|
||||||
sampler.setGain(fractalGain);
|
sampler.setGain(fractalGain);
|
||||||
sampler.setLacunarity(fractalLacunarity);
|
sampler.setLacunarity(fractalLacunarity);
|
||||||
sampler.setOctaves(octaves);
|
sampler.setOctaves(octaves);
|
||||||
|
|||||||
+2
-1
@@ -4,6 +4,7 @@ import com.dfsek.tectonic.annotations.Default;
|
|||||||
import com.dfsek.tectonic.annotations.Value;
|
import com.dfsek.tectonic.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.samplers.noise.fractal.FractalNoiseFunction;
|
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;
|
import com.dfsek.terra.api.util.seeded.SeededNoiseSampler;
|
||||||
|
|
||||||
public abstract class FractalTemplate<T extends FractalNoiseFunction> extends SamplerTemplate<T> {
|
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;
|
protected double weightedStrength = 0.0D;
|
||||||
|
|
||||||
@Value("function")
|
@Value("function")
|
||||||
protected SeededNoiseSampler function;
|
protected NoiseSampler function;
|
||||||
}
|
}
|
||||||
|
|||||||
+1
-1
@@ -13,7 +13,7 @@ public class PingPongTemplate extends FractalTemplate<PingPongSampler> {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public NoiseSampler build(long seed) {
|
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.setGain(fractalGain);
|
||||||
sampler.setLacunarity(fractalLacunarity);
|
sampler.setLacunarity(fractalLacunarity);
|
||||||
sampler.setOctaves(octaves);
|
sampler.setOctaves(octaves);
|
||||||
|
|||||||
+1
-1
@@ -6,7 +6,7 @@ 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 build(long seed) {
|
||||||
RidgedFractalSampler sampler = new RidgedFractalSampler((int) seed, function.build(seed));
|
RidgedFractalSampler sampler = new RidgedFractalSampler((int) seed, function);
|
||||||
sampler.setGain(fractalGain);
|
sampler.setGain(fractalGain);
|
||||||
sampler.setLacunarity(fractalLacunarity);
|
sampler.setLacunarity(fractalLacunarity);
|
||||||
sampler.setOctaves(octaves);
|
sampler.setOctaves(octaves);
|
||||||
|
|||||||
+1
-1
@@ -14,6 +14,6 @@ public class ClampNormalizerTemplate extends NormalizerTemplate<ClampNormalizer>
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public NoiseSampler build(long seed) {
|
public NoiseSampler build(long seed) {
|
||||||
return new ClampNormalizer(function.build(seed), min, max);
|
return new ClampNormalizer(function, min, max);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+1
-1
@@ -14,6 +14,6 @@ public class LinearNormalizerTemplate extends NormalizerTemplate<LinearNormalize
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public NoiseSampler build(long seed) {
|
public NoiseSampler build(long seed) {
|
||||||
return new LinearNormalizer(function.build(seed), min, max);
|
return new LinearNormalizer(function, min, max);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+1
-1
@@ -19,6 +19,6 @@ public class NormalNormalizerTemplate extends NormalizerTemplate<NormalNormalize
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public NoiseSampler build(long seed) {
|
public NoiseSampler build(long seed) {
|
||||||
return new NormalNormalizer(function.build(seed), groups, mean, stdDev);
|
return new NormalNormalizer(function, groups, mean, stdDev);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+2
-1
@@ -3,9 +3,10 @@ package com.dfsek.terra.addons.noise.config.templates.normalizer;
|
|||||||
import com.dfsek.tectonic.annotations.Value;
|
import com.dfsek.tectonic.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.normalizer.Normalizer;
|
import com.dfsek.terra.addons.noise.normalizer.Normalizer;
|
||||||
|
import com.dfsek.terra.api.noise.NoiseSampler;
|
||||||
import com.dfsek.terra.api.util.seeded.SeededNoiseSampler;
|
import com.dfsek.terra.api.util.seeded.SeededNoiseSampler;
|
||||||
|
|
||||||
public abstract class NormalizerTemplate<T extends Normalizer> extends SamplerTemplate<T> {
|
public abstract class NormalizerTemplate<T extends Normalizer> extends SamplerTemplate<T> {
|
||||||
@Value("function")
|
@Value("function")
|
||||||
protected SeededNoiseSampler function;
|
protected NoiseSampler function;
|
||||||
}
|
}
|
||||||
|
|||||||
+1
-1
@@ -9,7 +9,7 @@ import com.dfsek.terra.api.world.generator.Palette;
|
|||||||
public class PaletteFactory implements ConfigFactory<PaletteTemplate, Palette> {
|
public class PaletteFactory implements ConfigFactory<PaletteTemplate, Palette> {
|
||||||
@Override
|
@Override
|
||||||
public Palette build(PaletteTemplate config, TerraPlugin main) {
|
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()) {
|
for(PaletteLayerHolder layer : config.getPalette()) {
|
||||||
palette.add(layer.getLayer(), layer.getSize(), layer.getSampler());
|
palette.add(layer.getLayer(), layer.getSize(), layer.getSampler());
|
||||||
}
|
}
|
||||||
|
|||||||
+3
-2
@@ -5,6 +5,7 @@ import com.dfsek.tectonic.annotations.Final;
|
|||||||
import com.dfsek.tectonic.annotations.Value;
|
import com.dfsek.tectonic.annotations.Value;
|
||||||
import com.dfsek.terra.addons.palette.palette.PaletteLayerHolder;
|
import com.dfsek.terra.addons.palette.palette.PaletteLayerHolder;
|
||||||
import com.dfsek.terra.api.config.AbstractableTemplate;
|
import com.dfsek.terra.api.config.AbstractableTemplate;
|
||||||
|
import com.dfsek.terra.api.noise.NoiseSampler;
|
||||||
import com.dfsek.terra.api.util.seeded.SeededNoiseSampler;
|
import com.dfsek.terra.api.util.seeded.SeededNoiseSampler;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
@@ -13,7 +14,7 @@ import java.util.List;
|
|||||||
public class PaletteTemplate implements AbstractableTemplate {
|
public class PaletteTemplate implements AbstractableTemplate {
|
||||||
@Value("noise")
|
@Value("noise")
|
||||||
@Default
|
@Default
|
||||||
private SeededNoiseSampler noise = SeededNoiseSampler.zero(2);
|
private NoiseSampler noise = NoiseSampler.zero();
|
||||||
|
|
||||||
@Value("id")
|
@Value("id")
|
||||||
@Final
|
@Final
|
||||||
@@ -30,7 +31,7 @@ public class PaletteTemplate implements AbstractableTemplate {
|
|||||||
return palette;
|
return palette;
|
||||||
}
|
}
|
||||||
|
|
||||||
public SeededNoiseSampler getNoise() {
|
public NoiseSampler getNoise() {
|
||||||
return noise;
|
return noise;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+2
-4
@@ -7,11 +7,9 @@ import java.util.List;
|
|||||||
|
|
||||||
public class NoisePalette extends PaletteImpl {
|
public class NoisePalette extends PaletteImpl {
|
||||||
private final NoiseSampler sampler;
|
private final NoiseSampler sampler;
|
||||||
private final boolean is2D;
|
|
||||||
|
|
||||||
public NoisePalette(NoiseSampler sampler, boolean is2D) {
|
public NoisePalette(NoiseSampler sampler) {
|
||||||
this.sampler = sampler;
|
this.sampler = sampler;
|
||||||
this.is2D = is2D;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -24,6 +22,6 @@ public class NoisePalette extends PaletteImpl {
|
|||||||
else paletteLayer = pl.get(layer);
|
else paletteLayer = pl.get(layer);
|
||||||
}
|
}
|
||||||
NoiseSampler paletteSampler = paletteLayer.getSampler();
|
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);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+2
-12
@@ -86,19 +86,9 @@ public abstract class PaletteImpl implements Palette {
|
|||||||
return sampler;
|
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) {
|
public BlockState get(NoiseSampler random, double x, double y, double z, long seed) {
|
||||||
if(col && is2D) return this.collection.get(random, x, z, seed);
|
if(col) return this.collection.get(random, x, y, z, seed);
|
||||||
else if(col) return this.collection.get(random, x, y, z, seed);
|
|
||||||
return m;
|
return m;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+3
-2
@@ -2,6 +2,7 @@ package com.dfsek.terra.addons.generation.flora;
|
|||||||
|
|
||||||
import com.dfsek.tectonic.annotations.Value;
|
import com.dfsek.tectonic.annotations.Value;
|
||||||
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.util.Range;
|
import com.dfsek.terra.api.util.Range;
|
||||||
import com.dfsek.terra.api.util.collection.ProbabilityCollection;
|
import com.dfsek.terra.api.util.collection.ProbabilityCollection;
|
||||||
import com.dfsek.terra.api.util.seeded.SeededNoiseSampler;
|
import com.dfsek.terra.api.util.seeded.SeededNoiseSampler;
|
||||||
@@ -18,11 +19,11 @@ public class FloraLayerLoader implements ObjectTemplate<FloraLayer> {
|
|||||||
private ProbabilityCollection<Flora> items;
|
private ProbabilityCollection<Flora> items;
|
||||||
|
|
||||||
@Value("distribution")
|
@Value("distribution")
|
||||||
private SeededNoiseSampler distribution;
|
private NoiseSampler distribution;
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public FloraLayer get() {
|
public FloraLayer get() {
|
||||||
return new FloraLayer(density, y, items, distribution.build(2403L));
|
return new FloraLayer(density, y, items, distribution);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+3
-2
@@ -2,6 +2,7 @@ package com.dfsek.terra.addons.generation.tree;
|
|||||||
|
|
||||||
import com.dfsek.tectonic.annotations.Value;
|
import com.dfsek.tectonic.annotations.Value;
|
||||||
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.util.Range;
|
import com.dfsek.terra.api.util.Range;
|
||||||
import com.dfsek.terra.api.util.collection.ProbabilityCollection;
|
import com.dfsek.terra.api.util.collection.ProbabilityCollection;
|
||||||
import com.dfsek.terra.api.util.seeded.SeededNoiseSampler;
|
import com.dfsek.terra.api.util.seeded.SeededNoiseSampler;
|
||||||
@@ -18,10 +19,10 @@ public class TreeLayerTemplate implements ObjectTemplate<TreeLayer> {
|
|||||||
private ProbabilityCollection<Tree> items;
|
private ProbabilityCollection<Tree> items;
|
||||||
|
|
||||||
@Value("distribution")
|
@Value("distribution")
|
||||||
private SeededNoiseSampler distribution;
|
private NoiseSampler distribution;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public TreeLayer get() {
|
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.annotations.Value;
|
||||||
import com.dfsek.tectonic.config.ConfigTemplate;
|
import com.dfsek.tectonic.config.ConfigTemplate;
|
||||||
|
import com.dfsek.terra.api.noise.NoiseSampler;
|
||||||
import com.dfsek.terra.api.util.seeded.SeededNoiseSampler;
|
import com.dfsek.terra.api.util.seeded.SeededNoiseSampler;
|
||||||
|
|
||||||
|
|
||||||
@SuppressWarnings("unused")
|
@SuppressWarnings("unused")
|
||||||
public class NoiseConfigTemplate implements ConfigTemplate {
|
public class NoiseConfigTemplate implements ConfigTemplate {
|
||||||
@Value(".")
|
@Value(".")
|
||||||
private SeededNoiseSampler builder;
|
private NoiseSampler builder;
|
||||||
|
|
||||||
public SeededNoiseSampler getBuilder() {
|
public NoiseSampler getBuilder() {
|
||||||
return builder;
|
return builder;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user