From fa8a66833ea5cf982c2350009e88cfffd4f1840b Mon Sep 17 00:00:00 2001 From: dfsek Date: Thu, 29 Jul 2021 07:27:00 -0700 Subject: [PATCH] register biome sources --- .../addons/biome/pipeline/BiomePipelineAddon.java | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/common/addons/biome-provider-pipeline/src/main/java/com/dfsek/terra/addons/biome/pipeline/BiomePipelineAddon.java b/common/addons/biome-provider-pipeline/src/main/java/com/dfsek/terra/addons/biome/pipeline/BiomePipelineAddon.java index b5e06c0fe..c27d0145e 100644 --- a/common/addons/biome-provider-pipeline/src/main/java/com/dfsek/terra/addons/biome/pipeline/BiomePipelineAddon.java +++ b/common/addons/biome-provider-pipeline/src/main/java/com/dfsek/terra/addons/biome/pipeline/BiomePipelineAddon.java @@ -1,5 +1,6 @@ package com.dfsek.terra.addons.biome.pipeline; +import com.dfsek.tectonic.loading.object.ObjectTemplate; import com.dfsek.terra.addons.biome.pipeline.api.Stage; import com.dfsek.terra.addons.biome.pipeline.config.BiomePipelineTemplate; import com.dfsek.terra.addons.biome.pipeline.config.BiomeProviderLoader; @@ -28,14 +29,20 @@ import com.dfsek.terra.api.addon.annotations.Version; import com.dfsek.terra.api.event.events.config.pack.ConfigPackPreLoadEvent; import com.dfsek.terra.api.event.functional.FunctionalEventHandler; import com.dfsek.terra.api.injection.annotations.Inject; +import com.dfsek.terra.api.registry.CheckedRegistry; import com.dfsek.terra.api.util.reflection.TypeKey; import com.dfsek.terra.api.world.biome.generation.BiomeProvider; import com.dfsek.terra.addons.biome.pipeline.source.BiomeSource; +import java.util.function.Supplier; + @Addon("biome-provider-pipeline") @Author("Terra") @Version("1.0.0") public class BiomePipelineAddon extends TerraAddon { + + public static final TypeKey>> SOURCE_REGISTRY_KEY = new TypeKey<>() {}; + @Inject private TerraPlugin main; @@ -44,11 +51,9 @@ public class BiomePipelineAddon extends TerraAddon { main.getEventManager() .getHandler(FunctionalEventHandler.class) .register(this, ConfigPackPreLoadEvent.class) - .then(event -> event.getPack().applyLoader(BiomeSource.class, new SourceLoader()) - .applyLoader(Stage.class, new StageLoader()) + .then(event -> event.getPack().applyLoader(Stage.class, new StageLoader()) .applyLoader(ExpanderStage.Type.class, (c, o, l) -> ExpanderStage.Type.valueOf((String) o)) .applyLoader(MutatorStage.Type.class, (c, o, l) -> MutatorStage.Type.valueOf((String) o)) - .applyLoader(NoiseSource.class, NoiseSourceTemplate::new) .applyLoader(ReplaceMutator.class, ReplaceMutatorTemplate::new) .applyLoader(BorderMutator.class, BorderMutatorTemplate::new) .applyLoader(BorderListMutator.class, BorderListMutatorTemplate::new) @@ -58,6 +63,10 @@ public class BiomePipelineAddon extends TerraAddon { .applyLoader(BiomePipelineProvider.class, () -> new BiomePipelineTemplate(main)) .applyLoader(BiomeProvider.class, new BiomeProviderLoader()) .applyLoader(BiomeSource.Type.class, (t, object, cf) -> BiomeSource.Type.valueOf((String) object))) + .then(event -> { + CheckedRegistry>> sourceRegistry = event.getPack().getOrCreateRegistry(SOURCE_REGISTRY_KEY); + sourceRegistry.register("NOISE", NoiseSourceTemplate::new); + }) .failThrough(); } }