From 132a200e43f01175b167b2b7e06d1f7797677000 Mon Sep 17 00:00:00 2001 From: dfsek Date: Fri, 10 Jun 2022 17:33:41 -0700 Subject: [PATCH] create and register SetExtrusionTemplate --- .../biome/extrusion/BiomeExtrusionAddon.java | 7 +++++++ .../extrusions/SamplerExtrusionTemplate.java | 17 +++++++++++++++++ .../extrusions/SetExtrusionTemplate.java | 19 +++++++++++++++++++ 3 files changed, 43 insertions(+) create mode 100644 common/addons/biome-provider-extrusion/src/main/java/com/dfsek/terra/addons/biome/extrusion/config/extrusions/SamplerExtrusionTemplate.java create mode 100644 common/addons/biome-provider-extrusion/src/main/java/com/dfsek/terra/addons/biome/extrusion/config/extrusions/SetExtrusionTemplate.java diff --git a/common/addons/biome-provider-extrusion/src/main/java/com/dfsek/terra/addons/biome/extrusion/BiomeExtrusionAddon.java b/common/addons/biome-provider-extrusion/src/main/java/com/dfsek/terra/addons/biome/extrusion/BiomeExtrusionAddon.java index b7e1dbe9b..56c6f90a3 100644 --- a/common/addons/biome-provider-extrusion/src/main/java/com/dfsek/terra/addons/biome/extrusion/BiomeExtrusionAddon.java +++ b/common/addons/biome-provider-extrusion/src/main/java/com/dfsek/terra/addons/biome/extrusion/BiomeExtrusionAddon.java @@ -6,6 +6,8 @@ import com.dfsek.terra.addons.biome.extrusion.api.Extrusion; import com.dfsek.terra.addons.biome.extrusion.api.ReplaceableBiome; import com.dfsek.terra.addons.biome.extrusion.config.BiomeExtrusionTemplate; import com.dfsek.terra.addons.biome.extrusion.config.ReplaceableBiomeLoader; +import com.dfsek.terra.addons.biome.extrusion.config.extrusions.SetExtrusionTemplate; +import com.dfsek.terra.addons.biome.extrusion.extrusions.SetExtrusion; import com.dfsek.terra.addons.manifest.api.AddonInitializer; import com.dfsek.terra.api.Platform; import com.dfsek.terra.api.addon.BaseAddon; @@ -46,6 +48,11 @@ public class BiomeExtrusionAddon implements AddonInitializer { .getOrCreateRegistry(PROVIDER_REGISTRY_KEY); providerRegistry.register(addon.key("PIPELINE"), BiomeExtrusionTemplate::new); }) + .then(event -> { + CheckedRegistry>> sourceRegistry = event.getPack().getOrCreateRegistry( + EXTRUSION_REGISTRY_KEY); + sourceRegistry.register(addon.key("SET"), SetExtrusionTemplate::new); + }) .failThrough(); platform.getEventManager() diff --git a/common/addons/biome-provider-extrusion/src/main/java/com/dfsek/terra/addons/biome/extrusion/config/extrusions/SamplerExtrusionTemplate.java b/common/addons/biome-provider-extrusion/src/main/java/com/dfsek/terra/addons/biome/extrusion/config/extrusions/SamplerExtrusionTemplate.java new file mode 100644 index 000000000..d0315be4e --- /dev/null +++ b/common/addons/biome-provider-extrusion/src/main/java/com/dfsek/terra/addons/biome/extrusion/config/extrusions/SamplerExtrusionTemplate.java @@ -0,0 +1,17 @@ +package com.dfsek.terra.addons.biome.extrusion.config.extrusions; + +import com.dfsek.tectonic.api.config.template.annotations.Value; +import com.dfsek.tectonic.api.config.template.object.ObjectTemplate; + +import com.dfsek.terra.addons.biome.extrusion.api.Extrusion; +import com.dfsek.terra.api.noise.NoiseSampler; +import com.dfsek.terra.api.util.Range; + + +public abstract class SamplerExtrusionTemplate implements ObjectTemplate { + @Value("sampler") + protected NoiseSampler sampler; + + @Value("range") + protected Range range; +} diff --git a/common/addons/biome-provider-extrusion/src/main/java/com/dfsek/terra/addons/biome/extrusion/config/extrusions/SetExtrusionTemplate.java b/common/addons/biome-provider-extrusion/src/main/java/com/dfsek/terra/addons/biome/extrusion/config/extrusions/SetExtrusionTemplate.java new file mode 100644 index 000000000..90a4b05ad --- /dev/null +++ b/common/addons/biome-provider-extrusion/src/main/java/com/dfsek/terra/addons/biome/extrusion/config/extrusions/SetExtrusionTemplate.java @@ -0,0 +1,19 @@ +package com.dfsek.terra.addons.biome.extrusion.config.extrusions; + +import com.dfsek.tectonic.api.config.template.annotations.Value; + +import com.dfsek.terra.addons.biome.extrusion.api.Extrusion; +import com.dfsek.terra.addons.biome.extrusion.api.ReplaceableBiome; +import com.dfsek.terra.addons.biome.extrusion.extrusions.SetExtrusion; +import com.dfsek.terra.api.util.collection.ProbabilityCollection; + + +public class SetExtrusionTemplate extends SamplerExtrusionTemplate { + @Value("biomes") + private ProbabilityCollection biomes; + + @Override + public Extrusion get() { + return new SetExtrusion(sampler, range, biomes); + } +}