@Meta all the things

This commit is contained in:
dfsek 2021-07-20 21:29:30 -07:00
parent 6158cda740
commit 2373174132
49 changed files with 230 additions and 182 deletions

View File

@ -6,6 +6,7 @@ import com.dfsek.terra.addons.biome.pipeline.BiomePipeline;
import com.dfsek.terra.addons.biome.pipeline.BiomePipelineProvider; import com.dfsek.terra.addons.biome.pipeline.BiomePipelineProvider;
import com.dfsek.terra.addons.biome.pipeline.api.Stage; import com.dfsek.terra.addons.biome.pipeline.api.Stage;
import com.dfsek.terra.api.TerraPlugin; import com.dfsek.terra.api.TerraPlugin;
import com.dfsek.terra.api.config.meta.Meta;
import com.dfsek.terra.api.world.biome.generation.BiomeProvider; import com.dfsek.terra.api.world.biome.generation.BiomeProvider;
import com.dfsek.terra.api.world.biome.generation.pipeline.BiomeSource; import com.dfsek.terra.api.world.biome.generation.pipeline.BiomeSource;
@ -16,13 +17,13 @@ public class BiomePipelineTemplate extends BiomeProviderTemplate {
private final TerraPlugin main; private final TerraPlugin main;
@Value("pipeline.initial-size") @Value("pipeline.initial-size")
@Default @Default
private int initialSize = 2; private @Meta int initialSize = 2;
@Value("pipeline.stages") @Value("pipeline.stages")
private List<Stage> stages; private @Meta List<@Meta Stage> stages;
@Value("pipeline.source") @Value("pipeline.source")
private BiomeSource source; private @Meta BiomeSource source;
public BiomePipelineTemplate(TerraPlugin main) { public BiomePipelineTemplate(TerraPlugin main) {
this.main = main; this.main = main;

View File

@ -3,17 +3,18 @@ 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.config.meta.Meta;
import com.dfsek.terra.api.noise.NoiseSampler; import com.dfsek.terra.api.noise.NoiseSampler;
import com.dfsek.terra.api.world.biome.generation.BiomeProvider; import com.dfsek.terra.api.world.biome.generation.BiomeProvider;
public abstract class BiomeProviderTemplate implements ObjectTemplate<BiomeProvider> { public abstract class BiomeProviderTemplate implements ObjectTemplate<BiomeProvider> {
@Value("resolution") @Value("resolution")
@Default @Default
protected int resolution = 1; protected @Meta int resolution = 1;
@Value("blend.noise") @Value("blend.noise")
@Default @Default
protected NoiseSampler blend = NoiseSampler.zero(); protected @Meta NoiseSampler blend = NoiseSampler.zero();
@Value("blend.amplitude") @Value("blend.amplitude")
@Default @Default
protected double blendAmp = 0d; protected @Meta double blendAmp = 0d;
} }

View File

@ -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.NoiseSource; import com.dfsek.terra.addons.biome.pipeline.source.NoiseSource;
import com.dfsek.terra.api.config.meta.Meta;
import com.dfsek.terra.api.noise.NoiseSampler; 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.world.biome.TerraBiome; import com.dfsek.terra.api.world.biome.TerraBiome;
@ -9,10 +10,10 @@ 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 NoiseSampler noise; private @Meta NoiseSampler noise;
@Value("biomes") @Value("biomes")
private ProbabilityCollection<TerraBiome> biomes; private @Meta ProbabilityCollection<@Meta TerraBiome> biomes;
@Override @Override
public BiomeSource get() { public BiomeSource get() {

View File

@ -3,9 +3,10 @@ package com.dfsek.terra.addons.biome.pipeline.config.stage;
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.biome.pipeline.api.Stage; import com.dfsek.terra.addons.biome.pipeline.api.Stage;
import com.dfsek.terra.api.config.meta.Meta;
import com.dfsek.terra.api.noise.NoiseSampler; import com.dfsek.terra.api.noise.NoiseSampler;
public abstract class StageTemplate implements ObjectTemplate<Stage> { public abstract class StageTemplate implements ObjectTemplate<Stage> {
@Value("noise") @Value("noise")
protected NoiseSampler noise; protected @Meta NoiseSampler noise;
} }

View File

@ -3,6 +3,7 @@ package com.dfsek.terra.addons.biome.pipeline.config.stage.mutator;
import com.dfsek.tectonic.annotations.Value; import com.dfsek.tectonic.annotations.Value;
import com.dfsek.terra.addons.biome.pipeline.api.BiomeMutator; import com.dfsek.terra.addons.biome.pipeline.api.BiomeMutator;
import com.dfsek.terra.addons.biome.pipeline.mutator.BorderListMutator; import com.dfsek.terra.addons.biome.pipeline.mutator.BorderListMutator;
import com.dfsek.terra.api.config.meta.Meta;
import com.dfsek.terra.api.util.collection.ProbabilityCollection; import com.dfsek.terra.api.util.collection.ProbabilityCollection;
import com.dfsek.terra.api.world.biome.TerraBiome; import com.dfsek.terra.api.world.biome.TerraBiome;
@ -11,16 +12,16 @@ import java.util.Map;
@SuppressWarnings("unused") @SuppressWarnings("unused")
public class BorderListMutatorTemplate extends MutatorStageTemplate { public class BorderListMutatorTemplate extends MutatorStageTemplate {
@Value("from") @Value("from")
private String from; private @Meta String from;
@Value("default-replace") @Value("default-replace")
private String defaultReplace; private @Meta String defaultReplace;
@Value("default-to") @Value("default-to")
private ProbabilityCollection<TerraBiome> defaultTo; private @Meta ProbabilityCollection<@Meta TerraBiome> defaultTo;
@Value("replace") @Value("replace")
private Map<TerraBiome, ProbabilityCollection<TerraBiome>> replace; private @Meta Map<@Meta TerraBiome, @Meta ProbabilityCollection<@Meta TerraBiome>> replace;
@Override @Override

View File

@ -3,19 +3,20 @@ package com.dfsek.terra.addons.biome.pipeline.config.stage.mutator;
import com.dfsek.tectonic.annotations.Value; import com.dfsek.tectonic.annotations.Value;
import com.dfsek.terra.addons.biome.pipeline.api.BiomeMutator; import com.dfsek.terra.addons.biome.pipeline.api.BiomeMutator;
import com.dfsek.terra.addons.biome.pipeline.mutator.BorderMutator; import com.dfsek.terra.addons.biome.pipeline.mutator.BorderMutator;
import com.dfsek.terra.api.config.meta.Meta;
import com.dfsek.terra.api.util.collection.ProbabilityCollection; import com.dfsek.terra.api.util.collection.ProbabilityCollection;
import com.dfsek.terra.api.world.biome.TerraBiome; import com.dfsek.terra.api.world.biome.TerraBiome;
@SuppressWarnings("unused") @SuppressWarnings("unused")
public class BorderMutatorTemplate extends MutatorStageTemplate { public class BorderMutatorTemplate extends MutatorStageTemplate {
@Value("from") @Value("from")
private String from; private @Meta String from;
@Value("replace") @Value("replace")
private String replace; private @Meta String replace;
@Value("to") @Value("to")
private ProbabilityCollection<TerraBiome> to; private @Meta ProbabilityCollection<@Meta TerraBiome> to;
@Override @Override
public BiomeMutator get() { public BiomeMutator get() {

View File

@ -4,11 +4,12 @@ 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.api.BiomeMutator; import com.dfsek.terra.addons.biome.pipeline.api.BiomeMutator;
import com.dfsek.terra.addons.biome.pipeline.stages.MutatorStage; import com.dfsek.terra.addons.biome.pipeline.stages.MutatorStage;
import com.dfsek.terra.api.config.meta.Meta;
import com.dfsek.terra.api.noise.NoiseSampler; import com.dfsek.terra.api.noise.NoiseSampler;
public abstract class MutatorStageTemplate implements ObjectTemplate<BiomeMutator> { public abstract class MutatorStageTemplate implements ObjectTemplate<BiomeMutator> {
@Value("noise") @Value("noise")
protected NoiseSampler noise; protected @Meta NoiseSampler noise;
@Override @Override
public abstract BiomeMutator get(); public abstract BiomeMutator get();

View File

@ -3,6 +3,7 @@ package com.dfsek.terra.addons.biome.pipeline.config.stage.mutator;
import com.dfsek.tectonic.annotations.Value; import com.dfsek.tectonic.annotations.Value;
import com.dfsek.terra.addons.biome.pipeline.api.BiomeMutator; import com.dfsek.terra.addons.biome.pipeline.api.BiomeMutator;
import com.dfsek.terra.addons.biome.pipeline.mutator.ReplaceListMutator; import com.dfsek.terra.addons.biome.pipeline.mutator.ReplaceListMutator;
import com.dfsek.terra.api.config.meta.Meta;
import com.dfsek.terra.api.util.collection.ProbabilityCollection; import com.dfsek.terra.api.util.collection.ProbabilityCollection;
import com.dfsek.terra.api.world.biome.TerraBiome; import com.dfsek.terra.api.world.biome.TerraBiome;
@ -11,13 +12,13 @@ import java.util.Map;
@SuppressWarnings("unused") @SuppressWarnings("unused")
public class ReplaceListMutatorTemplate extends MutatorStageTemplate { public class ReplaceListMutatorTemplate extends MutatorStageTemplate {
@Value("default-from") @Value("default-from")
private String defaultFrom; private @Meta String defaultFrom;
@Value("default-to") @Value("default-to")
private ProbabilityCollection<TerraBiome> defaultTo; private @Meta ProbabilityCollection<@Meta TerraBiome> defaultTo;
@Value("to") @Value("to")
private Map<TerraBiome, ProbabilityCollection<TerraBiome>> replace; private @Meta Map<@Meta TerraBiome, @Meta ProbabilityCollection<@Meta TerraBiome>> replace;
@Override @Override
public BiomeMutator get() { public BiomeMutator get() {

View File

@ -3,16 +3,17 @@ package com.dfsek.terra.addons.biome.pipeline.config.stage.mutator;
import com.dfsek.tectonic.annotations.Value; import com.dfsek.tectonic.annotations.Value;
import com.dfsek.terra.addons.biome.pipeline.api.BiomeMutator; import com.dfsek.terra.addons.biome.pipeline.api.BiomeMutator;
import com.dfsek.terra.addons.biome.pipeline.mutator.ReplaceMutator; import com.dfsek.terra.addons.biome.pipeline.mutator.ReplaceMutator;
import com.dfsek.terra.api.config.meta.Meta;
import com.dfsek.terra.api.util.collection.ProbabilityCollection; import com.dfsek.terra.api.util.collection.ProbabilityCollection;
import com.dfsek.terra.api.world.biome.TerraBiome; import com.dfsek.terra.api.world.biome.TerraBiome;
@SuppressWarnings("unused") @SuppressWarnings("unused")
public class ReplaceMutatorTemplate extends MutatorStageTemplate { public class ReplaceMutatorTemplate extends MutatorStageTemplate {
@Value("from") @Value("from")
private String from; private @Meta String from;
@Value("to") @Value("to")
private ProbabilityCollection<TerraBiome> to; private @Meta ProbabilityCollection<@Meta TerraBiome> to;
@Override @Override
public BiomeMutator get() { public BiomeMutator get() {

View File

@ -2,12 +2,13 @@ package com.dfsek.terra.addons.biome.single;
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.config.meta.Meta;
import com.dfsek.terra.api.world.biome.TerraBiome; import com.dfsek.terra.api.world.biome.TerraBiome;
import com.dfsek.terra.api.world.biome.generation.BiomeProvider; import com.dfsek.terra.api.world.biome.generation.BiomeProvider;
public class SingleBiomeProviderTemplate implements ObjectTemplate<BiomeProvider> { public class SingleBiomeProviderTemplate implements ObjectTemplate<BiomeProvider> {
@Value("biome") @Value("biome")
private TerraBiome biome; private @Meta TerraBiome biome;
@Override @Override
public BiomeProvider get() { public BiomeProvider get() {

View File

@ -6,21 +6,22 @@ import com.dfsek.tectonic.loading.object.ObjectTemplate;
import com.dfsek.terra.addons.chunkgenerator.palette.PaletteHolder; import com.dfsek.terra.addons.chunkgenerator.palette.PaletteHolder;
import com.dfsek.terra.addons.chunkgenerator.palette.PaletteInfo; import com.dfsek.terra.addons.chunkgenerator.palette.PaletteInfo;
import com.dfsek.terra.addons.chunkgenerator.palette.SlantHolder; import com.dfsek.terra.addons.chunkgenerator.palette.SlantHolder;
import com.dfsek.terra.api.config.meta.Meta;
import com.dfsek.terra.api.world.generator.Palette; import com.dfsek.terra.api.world.generator.Palette;
public class BiomePaletteTemplate implements ObjectTemplate<PaletteInfo> { public class BiomePaletteTemplate implements ObjectTemplate<PaletteInfo> {
@Value("palette") @Value("palette")
private PaletteHolder palette; private @Meta PaletteHolder palette;
@Value("slant") @Value("slant")
@Default @Default
private SlantHolder slant = null; private @Meta SlantHolder slant = null;
@Value("ocean.level") @Value("ocean.level")
private int seaLevel; private @Meta int seaLevel;
@Value("ocean.palette") @Value("ocean.palette")
private Palette oceanPalette; private @Meta Palette oceanPalette;
@Override @Override
public PaletteInfo get() { public PaletteInfo get() {

View File

@ -9,6 +9,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.config.meta.Meta;
import com.dfsek.terra.api.noise.NoiseSampler; 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.world.biome.Biome; import com.dfsek.terra.api.world.biome.Biome;
@ -27,7 +28,7 @@ public class BiomeTemplate implements AbstractableTemplate, ValidatedConfigTempl
@Value("id") @Value("id")
@Final @Final
private String id; private @Meta String id;
@Value("extends") @Value("extends")
@Final @Final
@ -36,78 +37,78 @@ public class BiomeTemplate implements AbstractableTemplate, ValidatedConfigTempl
@Value("variables") @Value("variables")
@Default @Default
private Map<String, Double> variables = new HashMap<>(); private @Meta Map<String, @Meta Double> variables = new HashMap<>();
@Value("beta.carving.equation") @Value("beta.carving.equation")
@Default @Default
private NoiseSampler carvingEquation = NoiseSampler.zero(); private @Meta NoiseSampler carvingEquation = NoiseSampler.zero();
@Value("vanilla") @Value("vanilla")
private ProbabilityCollection<Biome> vanilla; private @Meta ProbabilityCollection<Biome> vanilla;
@Value("biome-noise") @Value("biome-noise")
@Default @Default
private NoiseSampler biomeNoise = NoiseSampler.zero(); private @Meta NoiseSampler biomeNoise = NoiseSampler.zero();
@Value("blend.distance") @Value("blend.distance")
@Default @Default
private int blendDistance = 3; private @Meta int blendDistance = 3;
@Value("blend.weight") @Value("blend.weight")
@Default @Default
private double blendWeight = 1; private @Meta double blendWeight = 1;
@Value("blend.step") @Value("blend.step")
@Default @Default
private int blendStep = 4; private @Meta int blendStep = 4;
@Value("noise") @Value("noise")
private NoiseSampler noiseEquation; private @Meta NoiseSampler noiseEquation;
@Value("ocean.level") @Value("ocean.level")
@Default @Default
private int seaLevel = 62; private @Meta int seaLevel = 62;
@Value("elevation.equation") @Value("elevation.equation")
@Default @Default
private NoiseSampler elevationEquation = NoiseSampler.zero(); private @Meta NoiseSampler elevationEquation = NoiseSampler.zero();
@Value("elevation.weight") @Value("elevation.weight")
@Default @Default
private double elevationWeight = 1; private @Meta double elevationWeight = 1;
@Value("slabs.enable") @Value("slabs.enable")
@Default @Default
private boolean doSlabs = false; private @Meta boolean doSlabs = false;
@Value("slabs.threshold") @Value("slabs.threshold")
@Default @Default
private double slabThreshold = 0.0075D; private @Meta double slabThreshold = 0.0075D;
@Value("slabs.palettes") @Value("slabs.palettes")
@Default @Default
private Map<BlockType, Palette> slabPalettes; private @Meta Map<@Meta BlockType, @Meta Palette> slabPalettes;
@Value("slabs.stair-palettes") @Value("slabs.stair-palettes")
@Default @Default
private Map<BlockType, Palette> stairPalettes; private @Meta Map<@Meta BlockType, @Meta Palette> stairPalettes;
@Value("interpolate-elevation") @Value("interpolate-elevation")
@Default @Default
private boolean interpolateElevation = true; private @Meta boolean interpolateElevation = true;
@Value("color") @Value("color")
@Final @Final
@Default @Default
private int color = 0; private @Meta int color = 0;
@Value("tags") @Value("tags")
@Default @Default
private Set<String> tags = new HashSet<>(); private @Meta Set<@Meta String> tags = new HashSet<>();
@Value("colors") @Value("colors")
@Default @Default
private Map<String, Integer> colors = new HashMap<>(); // Plain ol' map, so platforms can decide what to do with colors (if anything). private @Meta Map<String, @Meta Integer> colors = new HashMap<>(); // Plain ol' map, so platforms can decide what to do with colors (if anything).
public BiomeTemplate(ConfigPack pack, TerraPlugin main) { public BiomeTemplate(ConfigPack pack, TerraPlugin main) {
this.pack = pack; this.pack = pack;

View File

@ -6,6 +6,7 @@ import com.dfsek.tectonic.annotations.Final;
import com.dfsek.tectonic.annotations.Value; import com.dfsek.tectonic.annotations.Value;
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.meta.Meta;
import com.dfsek.terra.api.util.ConstantRange; import com.dfsek.terra.api.util.ConstantRange;
import com.dfsek.terra.api.util.Range; import com.dfsek.terra.api.util.Range;
import com.dfsek.terra.api.util.collection.MaterialSet; import com.dfsek.terra.api.util.collection.MaterialSet;
@ -21,76 +22,76 @@ public class CarverTemplate implements AbstractableTemplate {
@Value("step") @Value("step")
@Default @Default
private int step = 2; private @Meta int step = 2;
@Value("recalculate-magnitude") @Value("recalculate-magnitude")
@Default @Default
private double recaclulateMagnitude = 4; private @Meta double recaclulateMagnitude = 4;
@Value("recalculate-direction") @Value("recalculate-direction")
@Default @Default
private Range recalc = new ConstantRange(8, 10); private @Meta Range recalc = new ConstantRange(8, 10);
@Value("length") @Value("length")
private Range length; private @Meta Range length;
@Value("start.x") @Value("start.x")
private double startX; private @Meta double startX;
@Value("start.y") @Value("start.y")
private double startY; private @Meta double startY;
@Value("start.z") @Value("start.z")
private double startZ; private @Meta double startZ;
@Value("start.radius.x") @Value("start.radius.x")
private String radMX; private @Meta String radMX;
@Value("start.radius.y") @Value("start.radius.y")
private String radMY; private @Meta String radMY;
@Value("start.radius.z") @Value("start.radius.z")
private String radMZ; private @Meta String radMZ;
@Value("start.height") @Value("start.height")
private Range height; private @Meta Range height;
@Value("cut.bottom") @Value("cut.bottom")
@Default @Default
private int cutBottom = 0; private @Meta int cutBottom = 0;
@Value("cut.top") @Value("cut.top")
@Default @Default
private int cutTop = 0; private @Meta int cutTop = 0;
@Value("mutate.x") @Value("mutate.x")
private double mutateX; private @Meta double mutateX;
@Value("mutate.y") @Value("mutate.y")
private double mutateY; private @Meta double mutateY;
@Value("mutate.z") @Value("mutate.z")
private double mutateZ; private @Meta double mutateZ;
@Value("palette.top") @Value("palette.top")
private CarverPalette top; private @Meta CarverPalette top;
@Value("palette.bottom") @Value("palette.bottom")
private CarverPalette bottom; private @Meta CarverPalette bottom;
@Value("palette.outer") @Value("palette.outer")
private CarverPalette outer; private @Meta CarverPalette outer;
@Value("palette.inner") @Value("palette.inner")
private CarverPalette inner; private @Meta CarverPalette inner;
@Value("shift") @Value("shift")
@Default @Default
private Map<BlockType, MaterialSet> shift = new HashMap<>(); private @Meta Map<@Meta BlockType, @Meta MaterialSet> shift = new HashMap<>();
@Value("update") @Value("update")
@Default @Default
private MaterialSet update = new MaterialSet(); private @Meta MaterialSet update = new MaterialSet();
public String getID() { public String getID() {
return id; return id;

View File

@ -4,16 +4,17 @@ 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.addons.feature.distributor.distributors.NoiseDistributor; import com.dfsek.terra.addons.feature.distributor.distributors.NoiseDistributor;
import com.dfsek.terra.api.config.meta.Meta;
import com.dfsek.terra.api.noise.NoiseSampler; import com.dfsek.terra.api.noise.NoiseSampler;
import com.dfsek.terra.api.structure.feature.Distributor; import com.dfsek.terra.api.structure.feature.Distributor;
public class NoiseDistributorTemplate implements ObjectTemplate<Distributor> { public class NoiseDistributorTemplate implements ObjectTemplate<Distributor> {
@Value("distribution") @Value("distribution")
private NoiseSampler noise; private @Meta NoiseSampler noise;
@Value("threshold") @Value("threshold")
@Default @Default
private double threshold = 0; private @Meta double threshold = 0;
@Override @Override
public Distributor get() { public Distributor get() {

View File

@ -4,13 +4,14 @@ 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.PointSetDistributor; import com.dfsek.terra.addons.feature.distributor.distributors.PointSetDistributor;
import com.dfsek.terra.addons.feature.distributor.util.Point; import com.dfsek.terra.addons.feature.distributor.util.Point;
import com.dfsek.terra.api.config.meta.Meta;
import com.dfsek.terra.api.structure.feature.Distributor; import com.dfsek.terra.api.structure.feature.Distributor;
import java.util.Set; import java.util.Set;
public class PointSetDistributorTemplate implements ObjectTemplate<Distributor> { public class PointSetDistributorTemplate implements ObjectTemplate<Distributor> {
@Value("points") @Value("points")
private Set<Point> points; private @Meta Set<@Meta Point> points;
@Override @Override
public Distributor get() { public Distributor get() {

View File

@ -2,13 +2,14 @@ package com.dfsek.terra.addons.feature.distributor.util;
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.config.meta.Meta;
public class PointTemplate implements ObjectTemplate<Point> { public class PointTemplate implements ObjectTemplate<Point> {
@Value("x") @Value("x")
private int x; private @Meta int x;
@Value("z") @Value("z")
private int z; private @Meta int z;
@Override @Override
public Point get() { public Point get() {

View File

@ -4,6 +4,7 @@ import com.dfsek.tectonic.annotations.Final;
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.config.AbstractableTemplate; import com.dfsek.terra.api.config.AbstractableTemplate;
import com.dfsek.terra.api.config.meta.Meta;
import com.dfsek.terra.api.noise.NoiseSampler; import com.dfsek.terra.api.noise.NoiseSampler;
import com.dfsek.terra.api.structure.Structure; import com.dfsek.terra.api.structure.Structure;
import com.dfsek.terra.api.structure.feature.Distributor; import com.dfsek.terra.api.structure.feature.Distributor;
@ -16,16 +17,16 @@ public class FeatureTemplate implements AbstractableTemplate {
private String id; private String id;
@Value("distributor") @Value("distributor")
private Distributor distributor; private @Meta Distributor distributor;
@Value("locator") @Value("locator")
private Locator locator; private @Meta Locator locator;
@Value("structures.distribution") @Value("structures.distribution")
private NoiseSampler structureNoise; private @Meta NoiseSampler structureNoise;
@Value("structures.structures") @Value("structures.structures")
private ProbabilityCollection<Structure> structures; private @Meta ProbabilityCollection<Structure> structures;
@Override @Override
public String getID() { public String getID() {

View File

@ -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.config.meta.Meta;
import com.dfsek.terra.api.noise.NoiseSampler; import com.dfsek.terra.api.noise.NoiseSampler;
import com.dfsek.terra.api.util.collection.MaterialSet; import com.dfsek.terra.api.util.collection.MaterialSet;
@ -18,50 +19,50 @@ public class FloraTemplate implements AbstractableTemplate {
private String id; private String id;
@Value("spawnable") @Value("spawnable")
private MaterialSet spawnable; private @Meta MaterialSet spawnable;
@Value("spawn-blacklist") @Value("spawn-blacklist")
@Default @Default
private boolean spawnBlacklist = false; private @Meta boolean spawnBlacklist = false;
@Value("replaceable") @Value("replaceable")
@Default @Default
private MaterialSet replaceable = MaterialSet.empty(); private @Meta MaterialSet replaceable = MaterialSet.empty();
@Value("irrigable") @Value("irrigable")
@Default @Default
private MaterialSet irrigable = null; private @Meta MaterialSet irrigable = null;
@Value("rotatable") @Value("rotatable")
@Default @Default
private MaterialSet rotatable = MaterialSet.empty(); private @Meta MaterialSet rotatable = MaterialSet.empty();
@Value("physics") @Value("physics")
@Default @Default
private boolean doPhysics = false; private @Meta boolean doPhysics = false;
@Value("ceiling") @Value("ceiling")
@Default @Default
private boolean ceiling = false; private @Meta boolean ceiling = false;
@Value("search") @Value("search")
@Default @Default
private TerraFlora.Search search = TerraFlora.Search.UP; private TerraFlora.@Meta Search search = TerraFlora.Search.UP;
@Value("max-placements") @Value("max-placements")
@Default @Default
private int maxPlacements = -1; private @Meta int maxPlacements = -1;
@Value("irrigable-offset") @Value("irrigable-offset")
@Default @Default
private int irrigableOffset; private @Meta int irrigableOffset;
@Value("layers") @Value("layers")
private List<BlockLayer> layers; private @Meta List<@Meta BlockLayer> layers;
@Value("layer-distribution") @Value("layer-distribution")
private NoiseSampler noiseDistribution; private @Meta NoiseSampler noiseDistribution;
public NoiseSampler getNoiseDistribution() { public NoiseSampler getNoiseDistribution() {
return noiseDistribution; return noiseDistribution;

View File

@ -4,14 +4,15 @@ 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.flora.flora.gen.BlockLayer; import com.dfsek.terra.addons.flora.flora.gen.BlockLayer;
import com.dfsek.terra.api.block.state.BlockState; import com.dfsek.terra.api.block.state.BlockState;
import com.dfsek.terra.api.config.meta.Meta;
import com.dfsek.terra.api.util.collection.ProbabilityCollection; import com.dfsek.terra.api.util.collection.ProbabilityCollection;
public class BlockLayerTemplate implements ObjectTemplate<BlockLayer> { public class BlockLayerTemplate implements ObjectTemplate<BlockLayer> {
@Value("layers") @Value("layers")
private int layers; private @Meta int layers;
@Value("materials") @Value("materials")
private ProbabilityCollection<BlockState> data; private @Meta ProbabilityCollection<BlockState> data;
@Override @Override
public BlockLayer get() { public BlockLayer get() {

View File

@ -4,15 +4,16 @@ 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.locator.locators.RandomLocator; import com.dfsek.terra.addons.feature.locator.locators.RandomLocator;
import com.dfsek.terra.addons.feature.locator.locators.SurfaceLocator; import com.dfsek.terra.addons.feature.locator.locators.SurfaceLocator;
import com.dfsek.terra.api.config.meta.Meta;
import com.dfsek.terra.api.structure.feature.Locator; import com.dfsek.terra.api.structure.feature.Locator;
import com.dfsek.terra.api.util.Range; import com.dfsek.terra.api.util.Range;
public class RandomLocatorTemplate implements ObjectTemplate<Locator> { public class RandomLocatorTemplate implements ObjectTemplate<Locator> {
@Value("height") @Value("height")
private Range height; private @Meta Range height;
@Value("amount") @Value("amount")
private Range amount; private @Meta Range amount;
@Override @Override
public Locator get() { public Locator get() {

View File

@ -4,6 +4,7 @@ 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.locator.locators.SurfaceLocator; import com.dfsek.terra.addons.feature.locator.locators.SurfaceLocator;
import com.dfsek.terra.api.TerraPlugin; import com.dfsek.terra.api.TerraPlugin;
import com.dfsek.terra.api.config.meta.Meta;
import com.dfsek.terra.api.structure.feature.Locator; import com.dfsek.terra.api.structure.feature.Locator;
import com.dfsek.terra.api.util.Range; import com.dfsek.terra.api.util.Range;
@ -11,7 +12,7 @@ public class SurfaceLocatorTemplate implements ObjectTemplate<Locator> {
private final TerraPlugin main; private final TerraPlugin main;
@Value("range") @Value("range")
private Range range; private @Meta Range range;
public SurfaceLocatorTemplate(TerraPlugin main) { public SurfaceLocatorTemplate(TerraPlugin main) {
this.main = main; this.main = main;

View File

@ -3,12 +3,13 @@ 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.addons.noise.config.DimensionApplicableNoiseSampler;
import com.dfsek.terra.api.config.meta.Meta;
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, DimensionApplicableNoiseSampler> noiseBuilderMap; private @Meta Map<String, @Meta DimensionApplicableNoiseSampler> noiseBuilderMap;
public Map<String, DimensionApplicableNoiseSampler> getNoiseBuilderMap() { public Map<String, DimensionApplicableNoiseSampler> getNoiseBuilderMap() {
return noiseBuilderMap; return noiseBuilderMap;

View File

@ -2,14 +2,15 @@ package com.dfsek.terra.addons.noise.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.api.config.meta.Meta;
import com.dfsek.terra.api.noise.NoiseSampler; import com.dfsek.terra.api.noise.NoiseSampler;
public class DimensionApplicableNoiseSampler implements ObjectTemplate<DimensionApplicableNoiseSampler> { public class DimensionApplicableNoiseSampler implements ObjectTemplate<DimensionApplicableNoiseSampler> {
@Value("dimensions") @Value("dimensions")
private int dimensions; private @Meta int dimensions;
@Value(".") @Value(".")
private NoiseSampler sampler; private @Meta NoiseSampler sampler;
public int getDimensions() { public int getDimensions() {
return dimensions; return dimensions;

View File

@ -3,23 +3,20 @@ package com.dfsek.terra.addons.noise.config.templates;
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.terra.addons.noise.samplers.DomainWarpedSampler; import com.dfsek.terra.addons.noise.samplers.DomainWarpedSampler;
import com.dfsek.terra.api.config.meta.Meta;
import com.dfsek.terra.api.noise.NoiseSampler; import com.dfsek.terra.api.noise.NoiseSampler;
@SuppressWarnings({"unused", "FieldMayBeFinal"}) @SuppressWarnings({"unused", "FieldMayBeFinal"})
public class DomainWarpTemplate extends SamplerTemplate<DomainWarpedSampler> { public class DomainWarpTemplate extends SamplerTemplate<DomainWarpedSampler> {
@Value("warp") @Value("warp")
private NoiseSampler warp; private @Meta NoiseSampler warp;
@Value("function") @Value("function")
private NoiseSampler function; private @Meta NoiseSampler function;
@Value("salt")
@Default
private int salt = 0;
@Value("amplitude") @Value("amplitude")
@Default @Default
private double amplitude = 1; private @Meta double amplitude = 1;
@Override @Override
public NoiseSampler get() { public NoiseSampler get() {

View File

@ -2,6 +2,7 @@ package com.dfsek.terra.addons.noise.config.templates;
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.config.meta.Meta;
import java.util.List; import java.util.List;
@ -11,7 +12,7 @@ public class FunctionTemplate implements ObjectTemplate<FunctionTemplate> {
private List<String> args; private List<String> args;
@Value("function") @Value("function")
private String function; private @Meta String function;
public List<String> getArgs() { public List<String> getArgs() {
return args; return args;

View File

@ -2,6 +2,7 @@ package com.dfsek.terra.addons.noise.config.templates;
import com.dfsek.tectonic.annotations.Value; import com.dfsek.tectonic.annotations.Value;
import com.dfsek.terra.addons.noise.samplers.ImageSampler; import com.dfsek.terra.addons.noise.samplers.ImageSampler;
import com.dfsek.terra.api.config.meta.Meta;
import com.dfsek.terra.api.noise.NoiseSampler; import com.dfsek.terra.api.noise.NoiseSampler;
import java.awt.image.BufferedImage; import java.awt.image.BufferedImage;
@ -10,13 +11,13 @@ import java.awt.image.BufferedImage;
public class ImageSamplerTemplate extends SamplerTemplate<ImageSampler> { public class ImageSamplerTemplate extends SamplerTemplate<ImageSampler> {
@Value("image") @Value("image")
private BufferedImage image; private @Meta BufferedImage image;
@Value("frequency") @Value("frequency")
private double frequency; private @Meta double frequency;
@Value("channel") @Value("channel")
private ImageSampler.Channel channel; private ImageSampler.@Meta Channel channel;
@Override @Override
public NoiseSampler get() { public NoiseSampler get() {

View File

@ -5,6 +5,7 @@ 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.samplers.KernelSampler; import com.dfsek.terra.addons.noise.samplers.KernelSampler;
import com.dfsek.terra.api.config.meta.Meta;
import com.dfsek.terra.api.noise.NoiseSampler; import com.dfsek.terra.api.noise.NoiseSampler;
import java.util.List; import java.util.List;
@ -13,18 +14,18 @@ import java.util.List;
public class KernelTemplate extends SamplerTemplate<KernelSampler> implements ValidatedConfigTemplate { public class KernelTemplate extends SamplerTemplate<KernelSampler> implements ValidatedConfigTemplate {
@Value("kernel") @Value("kernel")
private List<List<Double>> kernel; private @Meta List<@Meta List<@Meta Double>> kernel;
@Value("factor") @Value("factor")
@Default @Default
private double factor = 1; private @Meta double factor = 1;
@Value("function") @Value("function")
private NoiseSampler function; private @Meta NoiseSampler function;
@Value("frequency") @Value("frequency")
@Default @Default
private double frequency = 1; private @Meta double frequency = 1;
@Override @Override
public NoiseSampler get() { public NoiseSampler get() {

View File

@ -5,13 +5,14 @@ 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.tectonic.loading.object.ObjectTemplate; import com.dfsek.tectonic.loading.object.ObjectTemplate;
import com.dfsek.terra.api.config.meta.Meta;
import com.dfsek.terra.api.noise.NoiseSampler; import com.dfsek.terra.api.noise.NoiseSampler;
@SuppressWarnings("FieldMayBeFinal") @SuppressWarnings("FieldMayBeFinal")
public abstract class SamplerTemplate<T extends NoiseSampler> implements ValidatedConfigTemplate, ObjectTemplate<NoiseSampler> { public abstract class SamplerTemplate<T extends NoiseSampler> implements ValidatedConfigTemplate, ObjectTemplate<NoiseSampler> {
@Value("dimensions") @Value("dimensions")
@Default @Default
private int dimensions = 2; private @Meta int dimensions = 2;
public int getDimensions() { public int getDimensions() {
return dimensions; return dimensions;

View File

@ -4,26 +4,27 @@ import com.dfsek.tectonic.annotations.Default;
import com.dfsek.tectonic.annotations.Value; import com.dfsek.tectonic.annotations.Value;
import com.dfsek.terra.addons.noise.samplers.noise.CellularSampler; import com.dfsek.terra.addons.noise.samplers.noise.CellularSampler;
import com.dfsek.terra.addons.noise.samplers.noise.simplex.OpenSimplex2Sampler; import com.dfsek.terra.addons.noise.samplers.noise.simplex.OpenSimplex2Sampler;
import com.dfsek.terra.api.config.meta.Meta;
import com.dfsek.terra.api.noise.NoiseSampler; import com.dfsek.terra.api.noise.NoiseSampler;
@SuppressWarnings("FieldMayBeFinal") @SuppressWarnings("FieldMayBeFinal")
public class CellularNoiseTemplate extends NoiseTemplate<CellularSampler> { public class CellularNoiseTemplate extends NoiseTemplate<CellularSampler> {
@Value("distance") @Value("distance")
@Default @Default
private CellularSampler.DistanceFunction cellularDistanceFunction = CellularSampler.DistanceFunction.EuclideanSq; private CellularSampler.@Meta DistanceFunction cellularDistanceFunction = CellularSampler.DistanceFunction.EuclideanSq;
@Value("return") @Value("return")
@Default @Default
private CellularSampler.ReturnType cellularReturnType = CellularSampler.ReturnType.Distance; private CellularSampler.@Meta ReturnType cellularReturnType = CellularSampler.ReturnType.Distance;
@Value("jitter") @Value("jitter")
@Default @Default
private double cellularJitter = 1.0D; private @Meta double cellularJitter = 1.0D;
@Value("lookup") @Value("lookup")
@Default @Default
private NoiseSampler lookup = new OpenSimplex2Sampler(); private @Meta NoiseSampler lookup = new OpenSimplex2Sampler();
@Override @Override
public NoiseSampler get() { public NoiseSampler get() {

View File

@ -4,13 +4,14 @@ 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.ConstantSampler; import com.dfsek.terra.addons.noise.samplers.noise.ConstantSampler;
import com.dfsek.terra.api.config.meta.Meta;
import com.dfsek.terra.api.noise.NoiseSampler; import com.dfsek.terra.api.noise.NoiseSampler;
@SuppressWarnings("FieldMayBeFinal") @SuppressWarnings("FieldMayBeFinal")
public class ConstantNoiseTemplate extends SamplerTemplate<ConstantSampler> { public class ConstantNoiseTemplate extends SamplerTemplate<ConstantSampler> {
@Value("value") @Value("value")
@Default @Default
private double value = 0d; private @Meta double value = 0d;
@Override @Override
public NoiseSampler get() { public NoiseSampler get() {

View File

@ -15,6 +15,7 @@ import com.dfsek.terra.addons.noise.paralithic.defined.UserDefinedFunction;
import com.dfsek.terra.addons.noise.paralithic.noise.NoiseFunction2; import com.dfsek.terra.addons.noise.paralithic.noise.NoiseFunction2;
import com.dfsek.terra.addons.noise.paralithic.noise.NoiseFunction3; import com.dfsek.terra.addons.noise.paralithic.noise.NoiseFunction3;
import com.dfsek.terra.addons.noise.samplers.noise.ExpressionFunction; import com.dfsek.terra.addons.noise.samplers.noise.ExpressionFunction;
import com.dfsek.terra.api.config.meta.Meta;
import com.dfsek.terra.api.noise.NoiseSampler; import com.dfsek.terra.api.noise.NoiseSampler;
import java.util.HashMap; import java.util.HashMap;
@ -27,15 +28,18 @@ public class ExpressionFunctionTemplate extends SamplerTemplate<ExpressionFuncti
private final Map<String, DimensionApplicableNoiseSampler> otherFunctions; private final Map<String, DimensionApplicableNoiseSampler> otherFunctions;
@Value("variables") @Value("variables")
@Default @Default
private Map<String, Double> vars = new HashMap<>(); private @Meta Map<String, @Meta Double> vars = new HashMap<>();
@Value("equation") @Value("equation")
private String equation; private @Meta String equation;
@Value("functions") @Value("functions")
@Default @Default
private LinkedHashMap<String, DimensionApplicableNoiseSampler> functions = new LinkedHashMap<>(); private @Meta LinkedHashMap<String, @Meta DimensionApplicableNoiseSampler> functions = new LinkedHashMap<>();
@Value("expressions") @Value("expressions")
@Default @Default
private LinkedHashMap<String, FunctionTemplate> expressions = new LinkedHashMap<>(); private @Meta LinkedHashMap<String, @Meta FunctionTemplate> expressions = new LinkedHashMap<>();
public ExpressionFunctionTemplate(Map<String, DimensionApplicableNoiseSampler> otherFunctions) { public ExpressionFunctionTemplate(Map<String, DimensionApplicableNoiseSampler> otherFunctions) {
this.otherFunctions = otherFunctions; this.otherFunctions = otherFunctions;

View File

@ -3,28 +3,29 @@ package com.dfsek.terra.addons.noise.config.templates.noise;
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.terra.addons.noise.samplers.noise.GaborNoiseSampler; import com.dfsek.terra.addons.noise.samplers.noise.GaborNoiseSampler;
import com.dfsek.terra.api.config.meta.Meta;
import com.dfsek.terra.api.noise.NoiseSampler; import com.dfsek.terra.api.noise.NoiseSampler;
public class GaborNoiseTemplate extends NoiseTemplate<GaborNoiseSampler> { public class GaborNoiseTemplate extends NoiseTemplate<GaborNoiseSampler> {
@Value("rotation") @Value("rotation")
@Default @Default
private double rotation = 0.25; private @Meta double rotation = 0.25;
@Value("isotropic") @Value("isotropic")
@Default @Default
private boolean isotropic = true; private @Meta boolean isotropic = true;
@Value("deviation") @Value("deviation")
@Default @Default
private double deviation = 1.0; private @Meta double deviation = 1.0;
@Value("impulses") @Value("impulses")
@Default @Default
private double impulses = 64d; private @Meta double impulses = 64d;
@Value("frequency_0") @Value("frequency_0")
@Default @Default
private double f0 = 0.625; private @Meta double f0 = 0.625;
@Override @Override
public NoiseSampler get() { public NoiseSampler get() {

View File

@ -4,15 +4,16 @@ 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.NoiseFunction; import com.dfsek.terra.addons.noise.samplers.noise.NoiseFunction;
import com.dfsek.terra.api.config.meta.Meta;
import com.dfsek.terra.api.noise.NoiseSampler; import com.dfsek.terra.api.noise.NoiseSampler;
@SuppressWarnings({"unused", "FieldMayBeFinal"}) @SuppressWarnings({"unused", "FieldMayBeFinal"})
public abstract class NoiseTemplate<T extends NoiseFunction> extends SamplerTemplate<T> { public abstract class NoiseTemplate<T extends NoiseFunction> extends SamplerTemplate<T> {
@Value("frequency") @Value("frequency")
@Default @Default
protected double frequency = 0.02d; protected @Meta double frequency = 0.02d;
@Value("salt") @Value("salt")
@Default @Default
protected long salt = 0; protected @Meta long salt = 0;
} }

View File

@ -4,25 +4,26 @@ 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.config.meta.Meta;
import com.dfsek.terra.api.noise.NoiseSampler; import com.dfsek.terra.api.noise.NoiseSampler;
public abstract class FractalTemplate<T extends FractalNoiseFunction> extends SamplerTemplate<T> { public abstract class FractalTemplate<T extends FractalNoiseFunction> extends SamplerTemplate<T> {
@Value("octaves") @Value("octaves")
@Default @Default
protected int octaves = 3; protected @Meta int octaves = 3;
@Value("gain") @Value("gain")
@Default @Default
protected double fractalGain = 0.5D; protected @Meta double fractalGain = 0.5D;
@Value("lacunarity") @Value("lacunarity")
@Default @Default
protected double fractalLacunarity = 2.0D; protected @Meta double fractalLacunarity = 2.0D;
@Value("weighted-strength") @Value("weighted-strength")
@Default @Default
protected double weightedStrength = 0.0D; protected @Meta double weightedStrength = 0.0D;
@Value("function") @Value("function")
protected NoiseSampler function; protected @Meta NoiseSampler function;
} }

View File

@ -3,13 +3,14 @@ package com.dfsek.terra.addons.noise.config.templates.noise.fractal;
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.terra.addons.noise.samplers.noise.fractal.PingPongSampler; import com.dfsek.terra.addons.noise.samplers.noise.fractal.PingPongSampler;
import com.dfsek.terra.api.config.meta.Meta;
import com.dfsek.terra.api.noise.NoiseSampler; import com.dfsek.terra.api.noise.NoiseSampler;
@SuppressWarnings({"unused", "FieldMayBeFinal"}) @SuppressWarnings({"unused", "FieldMayBeFinal"})
public class PingPongTemplate extends FractalTemplate<PingPongSampler> { public class PingPongTemplate extends FractalTemplate<PingPongSampler> {
@Value("ping-pong") @Value("ping-pong")
@Default @Default
private double pingPong = 2.0D; private @Meta double pingPong = 2.0D;
@Override @Override
public NoiseSampler get() { public NoiseSampler get() {

View File

@ -2,15 +2,16 @@ 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.normalizer.ClampNormalizer; import com.dfsek.terra.addons.noise.normalizer.ClampNormalizer;
import com.dfsek.terra.api.config.meta.Meta;
import com.dfsek.terra.api.noise.NoiseSampler; import com.dfsek.terra.api.noise.NoiseSampler;
@SuppressWarnings({"unused", "FieldMayBeFinal"}) @SuppressWarnings({"unused", "FieldMayBeFinal"})
public class ClampNormalizerTemplate extends NormalizerTemplate<ClampNormalizer> { public class ClampNormalizerTemplate extends NormalizerTemplate<ClampNormalizer> {
@Value("max") @Value("max")
private double max; private @Meta double max;
@Value("min") @Value("min")
private double min; private @Meta double min;
@Override @Override
public NoiseSampler get() { public NoiseSampler get() {

View File

@ -2,15 +2,16 @@ 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.normalizer.LinearNormalizer; import com.dfsek.terra.addons.noise.normalizer.LinearNormalizer;
import com.dfsek.terra.api.config.meta.Meta;
import com.dfsek.terra.api.noise.NoiseSampler; import com.dfsek.terra.api.noise.NoiseSampler;
@SuppressWarnings({"unused", "FieldMayBeFinal"}) @SuppressWarnings({"unused", "FieldMayBeFinal"})
public class LinearNormalizerTemplate extends NormalizerTemplate<LinearNormalizer> { public class LinearNormalizerTemplate extends NormalizerTemplate<LinearNormalizer> {
@Value("max") @Value("max")
private double max; private @Meta double max;
@Value("min") @Value("min")
private double min; private @Meta double min;
@Override @Override
public NoiseSampler get() { public NoiseSampler get() {

View File

@ -3,19 +3,20 @@ package com.dfsek.terra.addons.noise.config.templates.normalizer;
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.terra.addons.noise.normalizer.NormalNormalizer; import com.dfsek.terra.addons.noise.normalizer.NormalNormalizer;
import com.dfsek.terra.api.config.meta.Meta;
import com.dfsek.terra.api.noise.NoiseSampler; import com.dfsek.terra.api.noise.NoiseSampler;
@SuppressWarnings({"unused", "FieldMayBeFinal"}) @SuppressWarnings({"unused", "FieldMayBeFinal"})
public class NormalNormalizerTemplate extends NormalizerTemplate<NormalNormalizer> { public class NormalNormalizerTemplate extends NormalizerTemplate<NormalNormalizer> {
@Value("mean") @Value("mean")
private double mean; private @Meta double mean;
@Value("standard-deviation") @Value("standard-deviation")
private double stdDev; private @Meta double stdDev;
@Value("groups") @Value("groups")
@Default @Default
private int groups = 16384; private @Meta int groups = 16384;
@Override @Override
public NoiseSampler get() { public NoiseSampler get() {

View File

@ -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.config.meta.Meta;
import com.dfsek.terra.api.noise.NoiseSampler; import com.dfsek.terra.api.noise.NoiseSampler;
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 NoiseSampler function; protected @Meta NoiseSampler function;
} }

View File

@ -6,6 +6,7 @@ import com.dfsek.tectonic.annotations.Value;
import com.dfsek.terra.api.block.BlockType; import com.dfsek.terra.api.block.BlockType;
import com.dfsek.terra.api.block.state.BlockState; import com.dfsek.terra.api.block.state.BlockState;
import com.dfsek.terra.api.config.AbstractableTemplate; import com.dfsek.terra.api.config.AbstractableTemplate;
import com.dfsek.terra.api.config.meta.Meta;
import com.dfsek.terra.api.util.Range; import com.dfsek.terra.api.util.Range;
import com.dfsek.terra.api.util.collection.MaterialSet; import com.dfsek.terra.api.util.collection.MaterialSet;
@ -19,29 +20,29 @@ public class OreTemplate implements AbstractableTemplate {
private String id; private String id;
@Value("material") @Value("material")
private BlockState material; private @Meta BlockState material;
@Value("material-overrides") @Value("material-overrides")
@Default @Default
private Map<BlockType, BlockState> materials = new HashMap<>(); private @Meta Map<@Meta BlockType, @Meta BlockState> materials = new HashMap<>();
@Value("replace") @Value("replace")
private MaterialSet replaceable; private @Meta MaterialSet replaceable;
@Value("physics") @Value("physics")
@Default @Default
private boolean physics = false; private @Meta boolean physics = false;
@Value("size") @Value("size")
private Range size; private @Meta Range size;
@Value("deform") @Value("deform")
@Default @Default
private double deform = 0.75D; private @Meta double deform = 0.75D;
@Value("deform-frequency") @Value("deform-frequency")
@Default @Default
private double deformFrequency = 0.1D; private @Meta double deformFrequency = 0.1D;
public double getDeform() { public double getDeform() {
return deform; return deform;

View File

@ -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.config.meta.Meta;
import com.dfsek.terra.api.noise.NoiseSampler; import com.dfsek.terra.api.noise.NoiseSampler;
import java.util.List; import java.util.List;
@ -13,14 +14,14 @@ import java.util.List;
public class PaletteTemplate implements AbstractableTemplate { public class PaletteTemplate implements AbstractableTemplate {
@Value("noise") @Value("noise")
@Default @Default
private NoiseSampler noise = NoiseSampler.zero(); private @Meta NoiseSampler noise = NoiseSampler.zero();
@Value("id") @Value("id")
@Final @Final
private String id; private String id;
@Value("layers") @Value("layers")
private List<PaletteLayerHolder> palette; private @Meta List<@Meta PaletteLayerHolder> palette;
public String getID() { public String getID() {
return id; return id;

View File

@ -3,6 +3,7 @@ package com.dfsek.terra.addons.structure;
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.config.meta.Meta;
import com.dfsek.terra.api.structure.configured.ConfiguredStructure; import com.dfsek.terra.api.structure.configured.ConfiguredStructure;
import java.util.Collections; import java.util.Collections;
@ -11,7 +12,7 @@ import java.util.Set;
public class BiomeStructuresTemplate implements ObjectTemplate<BiomeStructures> { public class BiomeStructuresTemplate implements ObjectTemplate<BiomeStructures> {
@Value("structures") @Value("structures")
@Default @Default
private Set<ConfiguredStructure> structures = Collections.emptySet(); private @Meta Set<@Meta ConfiguredStructure> structures = Collections.emptySet();
@Override @Override
public BiomeStructures get() { public BiomeStructures get() {

View File

@ -4,6 +4,7 @@ import com.dfsek.tectonic.annotations.Final;
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.config.AbstractableTemplate; import com.dfsek.terra.api.config.AbstractableTemplate;
import com.dfsek.terra.api.config.meta.Meta;
import com.dfsek.terra.api.structure.Structure; import com.dfsek.terra.api.structure.Structure;
import com.dfsek.terra.api.structure.StructureSpawn; import com.dfsek.terra.api.structure.StructureSpawn;
import com.dfsek.terra.api.util.Range; import com.dfsek.terra.api.util.Range;
@ -16,13 +17,13 @@ public class StructureTemplate implements AbstractableTemplate, ConfigTemplate {
private String id; private String id;
@Value("scripts") @Value("scripts")
private ProbabilityCollection<Structure> structure; private @Meta ProbabilityCollection<@Meta Structure> structure;
@Value("spawn.start") @Value("spawn.start")
private Range y; private @Meta Range y;
@Value("spawn") @Value("spawn")
private StructureSpawn spawn; private @Meta StructureSpawn spawn;
public String getID() { public String getID() {
return id; return id;

View File

@ -3,6 +3,7 @@ package com.dfsek.terra.addons.generation.feature.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.config.meta.Meta;
import com.dfsek.terra.api.structure.feature.Feature; import com.dfsek.terra.api.structure.feature.Feature;
import java.util.Collections; import java.util.Collections;
@ -11,7 +12,7 @@ import java.util.List;
public class BiomeFeaturesTemplate implements ObjectTemplate<BiomeFeatures> { public class BiomeFeaturesTemplate implements ObjectTemplate<BiomeFeatures> {
@Value("features") @Value("features")
@Default @Default
private List<Feature> features = Collections.emptyList(); private @Meta List<@Meta Feature> features = Collections.emptyList();
@Override @Override
public BiomeFeatures get() { public BiomeFeatures get() {

View File

@ -3,6 +3,7 @@ package com.dfsek.terra.addons.generation.flora;
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.config.meta.Meta;
import java.util.Collections; import java.util.Collections;
import java.util.List; import java.util.List;
@ -10,7 +11,7 @@ import java.util.List;
public class BiomeFloraTemplate implements ObjectTemplate<BiomeFlora> { public class BiomeFloraTemplate implements ObjectTemplate<BiomeFlora> {
@Value("flora") @Value("flora")
@Default @Default
private List<FloraLayer> flora = Collections.emptyList(); private @Meta List<@Meta FloraLayer> flora = Collections.emptyList();
@Override @Override
public BiomeFlora get() { public BiomeFlora get() {

View File

@ -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.config.meta.Meta;
import com.dfsek.terra.api.noise.NoiseSampler; 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;
@ -9,16 +10,16 @@ import com.dfsek.terra.api.world.Flora;
public class FloraLayerLoader implements ObjectTemplate<FloraLayer> { public class FloraLayerLoader implements ObjectTemplate<FloraLayer> {
@Value("density") @Value("density")
private double density; private @Meta double density;
@Value("y") @Value("y")
private Range y; private @Meta Range y;
@Value("items") @Value("items")
private ProbabilityCollection<Flora> items; private @Meta ProbabilityCollection<@Meta Flora> items;
@Value("distribution") @Value("distribution")
private NoiseSampler distribution; private @Meta NoiseSampler distribution;
@Override @Override

View File

@ -2,11 +2,12 @@ package com.dfsek.terra.config.pack;
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.config.meta.Meta;
import com.dfsek.terra.api.world.biome.generation.BiomeProvider; import com.dfsek.terra.api.world.biome.generation.BiomeProvider;
public class ConfigPackPostTemplate implements ConfigTemplate { public class ConfigPackPostTemplate implements ConfigTemplate {
@Value("biomes") @Value("biomes")
private BiomeProvider providerBuilder; private @Meta BiomeProvider providerBuilder;
public BiomeProvider getProviderBuilder() { public BiomeProvider getProviderBuilder() {
return providerBuilder; return providerBuilder;

View File

@ -3,6 +3,7 @@ package com.dfsek.terra.config.pack;
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.config.ConfigTemplate; import com.dfsek.tectonic.config.ConfigTemplate;
import com.dfsek.terra.api.config.meta.Meta;
import com.dfsek.terra.api.world.generator.ChunkGeneratorProvider; import com.dfsek.terra.api.world.generator.ChunkGeneratorProvider;
import com.dfsek.terra.api.world.generator.GenerationStageProvider; import com.dfsek.terra.api.world.generator.GenerationStageProvider;
@ -18,35 +19,35 @@ public class ConfigPackTemplate implements ConfigTemplate {
@Value("variables") @Value("variables")
@Default @Default
private Map<String, Double> variables = new HashMap<>(); private @Meta Map<String, @Meta Double> variables = new HashMap<>();
@Value("beta.carving") @Value("beta.carving")
@Default @Default
private boolean betaCarvers = false; private @Meta boolean betaCarvers = false;
@Value("structures.locatable") @Value("structures.locatable")
@Default @Default
private Map<String, String> locatable = new HashMap<>(); private @Meta Map<@Meta String, @Meta String> locatable = new HashMap<>();
@Value("blend.terrain.elevation") @Value("blend.terrain.elevation")
@Default @Default
private int elevationBlend = 4; private @Meta int elevationBlend = 4;
@Value("vanilla.mobs") @Value("vanilla.mobs")
@Default @Default
private boolean vanillaMobs = true; private @Meta boolean vanillaMobs = true;
@Value("vanilla.caves") @Value("vanilla.caves")
@Default @Default
private boolean vanillaCaves = false; private @Meta boolean vanillaCaves = false;
@Value("vanilla.decorations") @Value("vanilla.decorations")
@Default @Default
private boolean vanillaDecorations = false; private @Meta boolean vanillaDecorations = false;
@Value("vanilla.structures") @Value("vanilla.structures")
@Default @Default
private boolean vanillaStructures = false; private @Meta boolean vanillaStructures = false;
@Value("author") @Value("author")
@Default @Default
@ -54,10 +55,10 @@ public class ConfigPackTemplate implements ConfigTemplate {
@Value("disable.sapling") @Value("disable.sapling")
@Default @Default
private boolean disableSaplings = false; private @Meta boolean disableSaplings = false;
@Value("stages") @Value("stages")
private List<GenerationStageProvider> stages; private @Meta List<@Meta GenerationStageProvider> stages;
@Value("version") @Value("version")
@Default @Default
@ -65,26 +66,26 @@ public class ConfigPackTemplate implements ConfigTemplate {
@Value("disable.carvers") @Value("disable.carvers")
@Default @Default
private boolean disableCarvers = false; private @Meta boolean disableCarvers = false;
@Value("disable.structures") @Value("disable.structures")
@Default @Default
private boolean disableStructures = false; private @Meta boolean disableStructures = false;
@Value("disable.ores") @Value("disable.ores")
@Default @Default
private boolean disableOres = false; private @Meta boolean disableOres = false;
@Value("disable.trees") @Value("disable.trees")
@Default @Default
private boolean disableTrees = false; private @Meta boolean disableTrees = false;
@Value("disable.flora") @Value("disable.flora")
@Default @Default
private boolean disableFlora = false; private @Meta boolean disableFlora = false;
@Value("generator") @Value("generator")
private ChunkGeneratorProvider generatorProvider; private @Meta ChunkGeneratorProvider generatorProvider;
public ChunkGeneratorProvider getGeneratorProvider() { public ChunkGeneratorProvider getGeneratorProvider() {
return generatorProvider; return generatorProvider;

View File

@ -3,15 +3,16 @@ package noise;
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.config.ConfigTemplate; import com.dfsek.tectonic.config.ConfigTemplate;
import com.dfsek.terra.api.config.meta.Meta;
import com.dfsek.terra.api.util.collection.ProbabilityCollection; import com.dfsek.terra.api.util.collection.ProbabilityCollection;
public class ColorConfigTemplate implements ConfigTemplate { public class ColorConfigTemplate implements ConfigTemplate {
@Value("colors") @Value("colors")
private ProbabilityCollection<Integer> colors; private @Meta ProbabilityCollection<@Meta Integer> colors;
@Value("enable") @Value("enable")
@Default @Default
private boolean enable = false; private @Meta boolean enable = false;
public boolean enable() { public boolean enable() {
return enable; return enable;