diff --git a/common/addons/biome-provider-single/src/main/java/com/dfsek/terra/addons/biome/single/SingleBiomeProviderAddon.java b/common/addons/biome-provider-single/src/main/java/com/dfsek/terra/addons/biome/single/SingleBiomeProviderAddon.java new file mode 100644 index 000000000..704a20d28 --- /dev/null +++ b/common/addons/biome-provider-single/src/main/java/com/dfsek/terra/addons/biome/single/SingleBiomeProviderAddon.java @@ -0,0 +1,38 @@ +package com.dfsek.terra.addons.biome.single; + +import com.dfsek.tectonic.loading.object.ObjectTemplate; +import com.dfsek.terra.api.TerraPlugin; +import com.dfsek.terra.api.addon.TerraAddon; +import com.dfsek.terra.api.addon.annotations.Addon; +import com.dfsek.terra.api.addon.annotations.Author; +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 java.util.function.Supplier; + +@Addon("biome-provider-single") +@Author("Terra") +@Version("1.0.0") +public class SingleBiomeProviderAddon extends TerraAddon { + public static final TypeKey>> PROVIDER_REGISTRY_KEY = new TypeKey<>() {}; + + @Inject + private TerraPlugin main; + + @Override + public void initialize() { + main.getEventManager() + .getHandler(FunctionalEventHandler.class) + .register(this, ConfigPackPreLoadEvent.class) + .then(event -> { + CheckedRegistry>> providerRegistry = event.getPack().getOrCreateRegistry(PROVIDER_REGISTRY_KEY); + providerRegistry.register("SINGLE", SingleBiomeProviderTemplate::new); + }) + .failThrough(); + } +}