mirror of
https://github.com/PolyhedralDev/Terra.git
synced 2026-04-19 23:00:19 +00:00
meta-ify remaining biome stuff
This commit is contained in:
@@ -34,6 +34,6 @@ public class BiomePipelineTemplate extends BiomeProviderTemplate {
|
|||||||
BiomePipeline.BiomePipelineBuilder biomePipelineBuilder = new BiomePipeline.BiomePipelineBuilder(initialSize.get());
|
BiomePipeline.BiomePipelineBuilder biomePipelineBuilder = new BiomePipeline.BiomePipelineBuilder(initialSize.get());
|
||||||
stages.stream().map(MetaValue::get).forEach(biomePipelineBuilder::addStage);
|
stages.stream().map(MetaValue::get).forEach(biomePipelineBuilder::addStage);
|
||||||
BiomePipeline pipeline = biomePipelineBuilder.build(source.get().apply(seed), seed);
|
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);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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.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.MetaValue;
|
||||||
import com.dfsek.terra.api.math.noise.NoiseSampler;
|
import com.dfsek.terra.api.math.noise.NoiseSampler;
|
||||||
import com.dfsek.terra.api.math.noise.samplers.noise.ConstantSampler;
|
import com.dfsek.terra.api.math.noise.samplers.noise.ConstantSampler;
|
||||||
import com.dfsek.terra.api.util.seeded.NoiseSeeded;
|
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 {
|
public abstract class BiomeProviderTemplate implements ObjectTemplate<BiomeProvider.BiomeProviderBuilder>, BiomeProvider.BiomeProviderBuilder {
|
||||||
@Value("resolution")
|
@Value("resolution")
|
||||||
@Default
|
@Default
|
||||||
protected int resolution = 1;
|
protected MetaValue<Integer> resolution = MetaValue.of(1);
|
||||||
|
|
||||||
@Value("blend.noise")
|
@Value("blend.noise")
|
||||||
@Default
|
@Default
|
||||||
protected NoiseSeeded blend = new NoiseSeeded() {
|
protected MetaValue<NoiseSeeded> blend = MetaValue.of(new NoiseSeeded() {
|
||||||
@Override
|
@Override
|
||||||
public NoiseSampler apply(Long seed) {
|
public NoiseSampler apply(Long seed) {
|
||||||
return new ConstantSampler(0);
|
return new ConstantSampler(0);
|
||||||
@@ -24,12 +26,14 @@ public abstract class BiomeProviderTemplate implements ObjectTemplate<BiomeProvi
|
|||||||
public int getDimensions() {
|
public int getDimensions() {
|
||||||
return 2;
|
return 2;
|
||||||
}
|
}
|
||||||
};
|
});
|
||||||
|
|
||||||
@Value("blend.amplitude")
|
@Value("blend.amplitude")
|
||||||
@Default
|
@Default
|
||||||
protected double blendAmp = 0d;
|
protected MetaValue<Double> blendAmp = MetaValue.of(0d);
|
||||||
|
|
||||||
@Value("type")
|
@Value("type")
|
||||||
BiomeProvider.Type type;
|
protected MetaValue<BiomeProvider.Type> type;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public BiomeProvider.BiomeProviderBuilder get() {
|
public BiomeProvider.BiomeProviderBuilder get() {
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
package com.dfsek.terra.config.loaders.config.biome.templates.provider;
|
package com.dfsek.terra.config.loaders.config.biome.templates.provider;
|
||||||
|
|
||||||
import com.dfsek.tectonic.annotations.Value;
|
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.registry.Registry;
|
||||||
import com.dfsek.terra.api.world.biome.provider.BiomeProvider;
|
import com.dfsek.terra.api.world.biome.provider.BiomeProvider;
|
||||||
import com.dfsek.terra.api.world.biome.provider.ImageBiomeProvider;
|
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.awt.image.BufferedImage;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
|
@SuppressWarnings("unused")
|
||||||
public class ImageProviderTemplate extends BiomeProviderTemplate {
|
public class ImageProviderTemplate extends BiomeProviderTemplate {
|
||||||
private final Registry<BiomeBuilder> biomes;
|
private final Registry<BiomeBuilder> biomes;
|
||||||
@Value("image.name")
|
@Value("image.name")
|
||||||
private BufferedImage image;
|
private MetaValue<BufferedImage> image;
|
||||||
|
|
||||||
@Value("image.align")
|
@Value("image.align")
|
||||||
private ImageBiomeProvider.Align align;
|
private MetaValue<ImageBiomeProvider.Align> align;
|
||||||
|
|
||||||
public ImageProviderTemplate(Registry<BiomeBuilder> set) {
|
public ImageProviderTemplate(Registry<BiomeBuilder> set) {
|
||||||
this.biomes = set;
|
this.biomes = set;
|
||||||
@@ -23,6 +25,6 @@ public class ImageProviderTemplate extends BiomeProviderTemplate {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public BiomeProvider build(long seed) {
|
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());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,19 +1,21 @@
|
|||||||
package com.dfsek.terra.config.loaders.config.biome.templates.provider;
|
package com.dfsek.terra.config.loaders.config.biome.templates.provider;
|
||||||
|
|
||||||
import com.dfsek.tectonic.annotations.Value;
|
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.BiomeProvider;
|
||||||
import com.dfsek.terra.api.world.biome.provider.SingleBiomeProvider;
|
import com.dfsek.terra.api.world.biome.provider.SingleBiomeProvider;
|
||||||
import com.dfsek.terra.config.builder.BiomeBuilder;
|
import com.dfsek.terra.config.builder.BiomeBuilder;
|
||||||
|
|
||||||
|
@SuppressWarnings("unused")
|
||||||
public class SingleBiomeProviderTemplate extends BiomeProviderTemplate {
|
public class SingleBiomeProviderTemplate extends BiomeProviderTemplate {
|
||||||
@Value("biome")
|
@Value("biome")
|
||||||
private BiomeBuilder biome;
|
private MetaValue<BiomeBuilder> biome;
|
||||||
|
|
||||||
public SingleBiomeProviderTemplate() {
|
public SingleBiomeProviderTemplate() {
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public BiomeProvider build(long seed) {
|
public BiomeProvider build(long seed) {
|
||||||
return new SingleBiomeProvider(biome.apply(seed));
|
return new SingleBiomeProvider(biome.get().apply(seed));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user