From 64cf6538cbcdec2d64baf38cab65e31475d7fdbe Mon Sep 17 00:00:00 2001 From: dfsek Date: Mon, 14 Jun 2021 17:59:48 -0700 Subject: [PATCH] meta-ify remaining biome stuff --- .../templates/provider/BiomePipelineTemplate.java | 2 +- .../templates/provider/BiomeProviderTemplate.java | 14 +++++++++----- .../templates/provider/ImageProviderTemplate.java | 8 +++++--- .../provider/SingleBiomeProviderTemplate.java | 6 ++++-- 4 files changed, 19 insertions(+), 11 deletions(-) diff --git a/common/src/main/java/com/dfsek/terra/config/loaders/config/biome/templates/provider/BiomePipelineTemplate.java b/common/src/main/java/com/dfsek/terra/config/loaders/config/biome/templates/provider/BiomePipelineTemplate.java index 448be7ec6..053b4f7a4 100644 --- a/common/src/main/java/com/dfsek/terra/config/loaders/config/biome/templates/provider/BiomePipelineTemplate.java +++ b/common/src/main/java/com/dfsek/terra/config/loaders/config/biome/templates/provider/BiomePipelineTemplate.java @@ -34,6 +34,6 @@ public class BiomePipelineTemplate extends BiomeProviderTemplate { BiomePipeline.BiomePipelineBuilder biomePipelineBuilder = new BiomePipeline.BiomePipelineBuilder(initialSize.get()); stages.stream().map(MetaValue::get).forEach(biomePipelineBuilder::addStage); BiomePipeline pipeline = biomePipelineBuilder.build(source.get().apply(seed), seed); - return new StandardBiomeProvider(pipeline, main, resolution, blend.apply(seed), blendAmp, (int) seed); + return new StandardBiomeProvider(pipeline, main, resolution.get(), blend.get().apply(seed), blendAmp.get(), (int) seed); } } diff --git a/common/src/main/java/com/dfsek/terra/config/loaders/config/biome/templates/provider/BiomeProviderTemplate.java b/common/src/main/java/com/dfsek/terra/config/loaders/config/biome/templates/provider/BiomeProviderTemplate.java index 2b0799b87..791ee11de 100644 --- a/common/src/main/java/com/dfsek/terra/config/loaders/config/biome/templates/provider/BiomeProviderTemplate.java +++ b/common/src/main/java/com/dfsek/terra/config/loaders/config/biome/templates/provider/BiomeProviderTemplate.java @@ -3,6 +3,7 @@ package com.dfsek.terra.config.loaders.config.biome.templates.provider; import com.dfsek.tectonic.annotations.Default; import com.dfsek.tectonic.annotations.Value; import com.dfsek.tectonic.loading.object.ObjectTemplate; +import com.dfsek.terra.api.config.meta.MetaValue; import com.dfsek.terra.api.math.noise.NoiseSampler; import com.dfsek.terra.api.math.noise.samplers.noise.ConstantSampler; import com.dfsek.terra.api.util.seeded.NoiseSeeded; @@ -11,10 +12,11 @@ import com.dfsek.terra.api.world.biome.provider.BiomeProvider; public abstract class BiomeProviderTemplate implements ObjectTemplate, BiomeProvider.BiomeProviderBuilder { @Value("resolution") @Default - protected int resolution = 1; + protected MetaValue resolution = MetaValue.of(1); + @Value("blend.noise") @Default - protected NoiseSeeded blend = new NoiseSeeded() { + protected MetaValue blend = MetaValue.of(new NoiseSeeded() { @Override public NoiseSampler apply(Long seed) { return new ConstantSampler(0); @@ -24,12 +26,14 @@ public abstract class BiomeProviderTemplate implements ObjectTemplate blendAmp = MetaValue.of(0d); + @Value("type") - BiomeProvider.Type type; + protected MetaValue type; @Override public BiomeProvider.BiomeProviderBuilder get() { diff --git a/common/src/main/java/com/dfsek/terra/config/loaders/config/biome/templates/provider/ImageProviderTemplate.java b/common/src/main/java/com/dfsek/terra/config/loaders/config/biome/templates/provider/ImageProviderTemplate.java index b66e25cba..e8231dbc9 100644 --- a/common/src/main/java/com/dfsek/terra/config/loaders/config/biome/templates/provider/ImageProviderTemplate.java +++ b/common/src/main/java/com/dfsek/terra/config/loaders/config/biome/templates/provider/ImageProviderTemplate.java @@ -1,6 +1,7 @@ package com.dfsek.terra.config.loaders.config.biome.templates.provider; import com.dfsek.tectonic.annotations.Value; +import com.dfsek.terra.api.config.meta.MetaValue; import com.dfsek.terra.api.registry.Registry; import com.dfsek.terra.api.world.biome.provider.BiomeProvider; import com.dfsek.terra.api.world.biome.provider.ImageBiomeProvider; @@ -9,13 +10,14 @@ import com.dfsek.terra.config.builder.BiomeBuilder; import java.awt.image.BufferedImage; import java.util.stream.Collectors; +@SuppressWarnings("unused") public class ImageProviderTemplate extends BiomeProviderTemplate { private final Registry biomes; @Value("image.name") - private BufferedImage image; + private MetaValue image; @Value("image.align") - private ImageBiomeProvider.Align align; + private MetaValue align; public ImageProviderTemplate(Registry set) { this.biomes = set; @@ -23,6 +25,6 @@ public class ImageProviderTemplate extends BiomeProviderTemplate { @Override public BiomeProvider build(long seed) { - return new ImageBiomeProvider(biomes.entries().stream().map(biomeBuilder -> biomeBuilder.apply(seed)).collect(Collectors.toSet()), image, resolution, align); + return new ImageBiomeProvider(biomes.entries().stream().map(biomeBuilder -> biomeBuilder.apply(seed)).collect(Collectors.toSet()), image.get(), resolution.get(), align.get()); } } diff --git a/common/src/main/java/com/dfsek/terra/config/loaders/config/biome/templates/provider/SingleBiomeProviderTemplate.java b/common/src/main/java/com/dfsek/terra/config/loaders/config/biome/templates/provider/SingleBiomeProviderTemplate.java index 525315454..6a5b36bbc 100644 --- a/common/src/main/java/com/dfsek/terra/config/loaders/config/biome/templates/provider/SingleBiomeProviderTemplate.java +++ b/common/src/main/java/com/dfsek/terra/config/loaders/config/biome/templates/provider/SingleBiomeProviderTemplate.java @@ -1,19 +1,21 @@ package com.dfsek.terra.config.loaders.config.biome.templates.provider; import com.dfsek.tectonic.annotations.Value; +import com.dfsek.terra.api.config.meta.MetaValue; import com.dfsek.terra.api.world.biome.provider.BiomeProvider; import com.dfsek.terra.api.world.biome.provider.SingleBiomeProvider; import com.dfsek.terra.config.builder.BiomeBuilder; +@SuppressWarnings("unused") public class SingleBiomeProviderTemplate extends BiomeProviderTemplate { @Value("biome") - private BiomeBuilder biome; + private MetaValue biome; public SingleBiomeProviderTemplate() { } @Override public BiomeProvider build(long seed) { - return new SingleBiomeProvider(biome.apply(seed)); + return new SingleBiomeProvider(biome.get().apply(seed)); } }