From debdf5fd531b06786ff68dac47ec715f05b26cc4 Mon Sep 17 00:00:00 2001 From: SD Date: Mon, 29 Mar 2021 22:37:09 +0530 Subject: [PATCH] Configurable resource pack activation types --- .../dimdoors/DimensionalDoorsInitializer.java | 5 ++- .../java/org/dimdev/dimdoors/ModConfig.java | 33 +++++++++++++++++++ 2 files changed, 35 insertions(+), 3 deletions(-) diff --git a/src/main/java/org/dimdev/dimdoors/DimensionalDoorsInitializer.java b/src/main/java/org/dimdev/dimdoors/DimensionalDoorsInitializer.java index 08ad9505..7c70f71f 100644 --- a/src/main/java/org/dimdev/dimdoors/DimensionalDoorsInitializer.java +++ b/src/main/java/org/dimdev/dimdoors/DimensionalDoorsInitializer.java @@ -117,9 +117,8 @@ public class DimensionalDoorsInitializer implements ModInitializer { ModCriteria.init(); ResourceManagerHelper.get(ResourceType.SERVER_DATA).registerReloadListener(PocketLoader.getInstance()); - // TODO: make ResourcePackActivationType configurable, intended for modpack creators - ResourceManagerHelper.registerBuiltinResourcePack(new Identifier("dimdoors", "default"), dimDoorsMod, ResourcePackActivationType.DEFAULT_ENABLED); - ResourceManagerHelper.registerBuiltinResourcePack(new Identifier("dimdoors", "classic"), dimDoorsMod, ResourcePackActivationType.DEFAULT_ENABLED); + ResourceManagerHelper.registerBuiltinResourcePack(new Identifier("dimdoors", "default"), dimDoorsMod, CONFIG_MANAGER.get().getPocketsConfig().defaultPocketsResourcePackActivationType.asResourcePackActivationType()); + ResourceManagerHelper.registerBuiltinResourcePack(new Identifier("dimdoors", "classic"), dimDoorsMod, CONFIG_MANAGER.get().getPocketsConfig().classicPocketsResourcePackActivationType.asResourcePackActivationType()); registerListeners(); apiSubscribers.forEach(DimensionalDoorsApi::postInitialize); diff --git a/src/main/java/org/dimdev/dimdoors/ModConfig.java b/src/main/java/org/dimdev/dimdoors/ModConfig.java index ac377171..f883353e 100644 --- a/src/main/java/org/dimdev/dimdoors/ModConfig.java +++ b/src/main/java/org/dimdev/dimdoors/ModConfig.java @@ -10,12 +10,20 @@ import java.util.List; import blue.endless.jankson.Jankson; import me.sargunvohra.mcmods.autoconfig1u.ConfigData; import me.sargunvohra.mcmods.autoconfig1u.annotation.Config; +import me.sargunvohra.mcmods.autoconfig1u.annotation.ConfigEntry; import me.sargunvohra.mcmods.autoconfig1u.annotation.ConfigEntry.Category; +import me.sargunvohra.mcmods.autoconfig1u.annotation.ConfigEntry.Gui.EnumHandler; import me.sargunvohra.mcmods.autoconfig1u.annotation.ConfigEntry.Gui.RequiresRestart; import me.sargunvohra.mcmods.autoconfig1u.annotation.ConfigEntry.Gui.Tooltip; import me.sargunvohra.mcmods.autoconfig1u.annotation.ConfigEntry.Gui.TransitiveObject; import me.sargunvohra.mcmods.autoconfig1u.serializer.ConfigSerializer; import me.sargunvohra.mcmods.autoconfig1u.util.Utils; +import me.shedaniel.clothconfig2.gui.entries.SelectionListEntry; +import org.jetbrains.annotations.NotNull; + +import net.fabricmc.fabric.api.resource.ResourcePackActivationType; + +import static me.sargunvohra.mcmods.autoconfig1u.annotation.ConfigEntry.Gui.EnumHandler.EnumDisplayOption.*; @SuppressWarnings("FieldMayBeFinal") @Config(name = "dimdoors") @@ -88,6 +96,8 @@ public final class ModConfig implements ConfigData { @Tooltip public int publicPocketSize = 1; @Tooltip public String defaultWeightEquation = "5"; @Tooltip public int fallbackWeight = 5; + @Tooltip @EnumHandler(option = BUTTON) public ExtendedResourcePackActivationType classicPocketsResourcePackActivationType = ExtendedResourcePackActivationType.DEFAULT_ENABLED; + @Tooltip @EnumHandler(option = BUTTON) public ExtendedResourcePackActivationType defaultPocketsResourcePackActivationType = ExtendedResourcePackActivationType.DEFAULT_ENABLED; } public static class World { @@ -123,6 +133,29 @@ public final class ModConfig implements ConfigData { @Tooltip public double riftJitter = 1; } + public enum ExtendedResourcePackActivationType implements SelectionListEntry.Translatable { + NORMAL(ResourcePackActivationType.NORMAL, "resourcePackActivationType.normal"), + DEFAULT_ENABLED(ResourcePackActivationType.DEFAULT_ENABLED, "resourcePackActivationType.defaultEnabled"), + ALWAYS_ENABLED(ResourcePackActivationType.ALWAYS_ENABLED, "resourcePackActivationType.alwaysEnabled"); + + private final ResourcePackActivationType resourcePackActivationType; + private final String translationKey; + + ExtendedResourcePackActivationType(ResourcePackActivationType resourcePackActivationType, String translationKey) { + this.resourcePackActivationType = resourcePackActivationType; + this.translationKey = translationKey; + } + + public ResourcePackActivationType asResourcePackActivationType() { + return resourcePackActivationType; + } + + @Override + public @NotNull String getKey() { + return translationKey; + } + } + public static class SubRootJanksonConfigSerializer implements ConfigSerializer { private static final Jankson JANKSON = Jankson.builder().build(); private final Config definition;