From 1777dc1aca2c085e73179754c74d6a0824ccc71e Mon Sep 17 00:00:00 2001 From: dfsek Date: Mon, 5 Jul 2021 00:18:51 -0700 Subject: [PATCH] ore addon impl --- .../com/dfsek/terra/addons/ore/OreAddon.java | 28 +++++++++++++ .../dfsek/terra/addons/ore/OreConfigType.java | 39 +++++++++++++++++++ 2 files changed, 67 insertions(+) create mode 100644 common/addons/ore/src/main/java/com/dfsek/terra/addons/ore/OreAddon.java create mode 100644 common/addons/ore/src/main/java/com/dfsek/terra/addons/ore/OreConfigType.java diff --git a/common/addons/ore/src/main/java/com/dfsek/terra/addons/ore/OreAddon.java b/common/addons/ore/src/main/java/com/dfsek/terra/addons/ore/OreAddon.java new file mode 100644 index 000000000..58667776c --- /dev/null +++ b/common/addons/ore/src/main/java/com/dfsek/terra/addons/ore/OreAddon.java @@ -0,0 +1,28 @@ +package com.dfsek.terra.addons.ore; + +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.EventListener; +import com.dfsek.terra.api.event.events.config.ConfigPackPreLoadEvent; +import com.dfsek.terra.api.injection.annotations.Inject; + + +@Addon("core-ore-config") +@Author("Terra") +@Version("1.0.0") +public class OreAddon extends TerraAddon implements EventListener { + @Inject + private TerraPlugin main; + + @Override + public void initialize() { + main.getEventManager().registerListener(this, this); + } + + public void onPackLoad(ConfigPackPreLoadEvent event) { + event.getPack().registerConfigType(new OreConfigType(event.getPack()), "ORE", 1); + } +} diff --git a/common/addons/ore/src/main/java/com/dfsek/terra/addons/ore/OreConfigType.java b/common/addons/ore/src/main/java/com/dfsek/terra/addons/ore/OreConfigType.java new file mode 100644 index 000000000..a76f335bc --- /dev/null +++ b/common/addons/ore/src/main/java/com/dfsek/terra/addons/ore/OreConfigType.java @@ -0,0 +1,39 @@ +package com.dfsek.terra.addons.ore; + +import com.dfsek.terra.addons.ore.ores.Ore; +import com.dfsek.terra.api.TerraPlugin; +import com.dfsek.terra.api.config.ConfigFactory; +import com.dfsek.terra.api.config.ConfigPack; +import com.dfsek.terra.api.config.ConfigType; +import com.dfsek.terra.api.registry.OpenRegistry; + +import java.util.function.Supplier; + +public class OreConfigType implements ConfigType { + private final OreFactory factory = new OreFactory(); + private final ConfigPack pack; + + public OreConfigType(ConfigPack pack) { + this.pack = pack; + } + + @Override + public OreTemplate getTemplate(ConfigPack pack, TerraPlugin main) { + return new OreTemplate(); + } + + @Override + public ConfigFactory getFactory() { + return factory; + } + + @Override + public Class getTypeClass() { + return Ore.class; + } + + @Override + public Supplier> registrySupplier() { + return pack.getRegistryFactory()::create; + } +}