meta-ify remaining biome stuff

This commit is contained in:
dfsek
2021-06-14 17:59:48 -07:00
parent 9c86d015f0
commit 64cf6538cb
4 changed files with 19 additions and 11 deletions

View File

@@ -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);
}
}

View File

@@ -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>, BiomeProvider.BiomeProviderBuilder {
@Value("resolution")
@Default
protected int resolution = 1;
protected MetaValue<Integer> resolution = MetaValue.of(1);
@Value("blend.noise")
@Default
protected NoiseSeeded blend = new NoiseSeeded() {
protected MetaValue<NoiseSeeded> 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<BiomeProvi
public int getDimensions() {
return 2;
}
};
});
@Value("blend.amplitude")
@Default
protected double blendAmp = 0d;
protected MetaValue<Double> blendAmp = MetaValue.of(0d);
@Value("type")
BiomeProvider.Type type;
protected MetaValue<BiomeProvider.Type> type;
@Override
public BiomeProvider.BiomeProviderBuilder get() {

View File

@@ -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<BiomeBuilder> biomes;
@Value("image.name")
private BufferedImage image;
private MetaValue<BufferedImage> image;
@Value("image.align")
private ImageBiomeProvider.Align align;
private MetaValue<ImageBiomeProvider.Align> align;
public ImageProviderTemplate(Registry<BiomeBuilder> 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());
}
}

View File

@@ -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<BiomeBuilder> biome;
public SingleBiomeProviderTemplate() {
}
@Override
public BiomeProvider build(long seed) {
return new SingleBiomeProvider(biome.apply(seed));
return new SingleBiomeProvider(biome.get().apply(seed));
}
}