diff --git a/build.gradle b/build.gradle index a04c4b4..ceba3d7 100644 --- a/build.gradle +++ b/build.gradle @@ -32,7 +32,7 @@ dependencies { modImplementation("com.terraformersmc:modmenu:2.0.5") include modImplementation("com.github.MeteorDevelopment:starscript:0.1.5") modApi("me.shedaniel.cloth:cloth-config-fabric:5.0.38") - modCompileOnly "io.vram:frex-fabric-mc117:6.0.+" + modCompileOnly "io.vram:frex-fabric-mc117:6.0.145" include modImplementation("io.gitlab.jfronny.libjf:libjf-data-manipulation-v0:${project.jfapi_version}") { exclude(group: "net.fabricmc.fabric-api") } diff --git a/gradle.properties b/gradle.properties index 5bdf184..c1831c5 100644 --- a/gradle.properties +++ b/gradle.properties @@ -3,15 +3,15 @@ org.gradle.jvmargs=-Xmx1G # Fabric Properties # check these on https://fabricmc.net/versions.html minecraft_version=1.17.1 -yarn_mappings=build.61 -loader_version=0.12.1 +yarn_mappings=build.63 +loader_version=0.12.5 # Mod Properties -mod_version=2.8.1 +mod_version=2.8.2 maven_group=io.gitlab.jfronny archives_base_name=respackopts # Dependencies -fabric_version=0.40.1+1.17 -jfapi_version=2.1.2 +fabric_version=0.42.1+1.17 +jfapi_version=2.1.3 modrinth_id=TiF5QWZY modrinth_required_dependencies=3CD6YUw1 diff --git a/run/resourcepacks/testpack/assets/minecraft/langer/en_us.json b/run/resourcepacks/testpack/assets/minecraft/langer/en_us.json index 2ee8801..67d0371 100644 --- a/run/resourcepacks/testpack/assets/minecraft/langer/en_us.json +++ b/run/resourcepacks/testpack/assets/minecraft/langer/en_us.json @@ -2,6 +2,9 @@ "rpo.lumi": "${Lumi} ${Lights}", "rpo.lumi.tonemap": "Tonemap mode", "rpo.tooltip.lumi.tonemap": "Tooltip test", + "rpo.lumi.tonemap.default": "Default Tonemap", + "rpo.lumi.tonemap.vibrant": "Vibrant Tonemap", + "rpo.lumi.tonemap.film": "Filmic Tonemap", "rpo.lumi.pbr": "Enable PBR", "rpo.lumi.debugMode": "Debug Mode", "rpo.lumi.debugMode.normal": "${Normal} Mode", diff --git a/src/main/java/io/gitlab/jfronny/respackopts/Respackopts.java b/src/main/java/io/gitlab/jfronny/respackopts/Respackopts.java index 0bcb4af..40b699b 100644 --- a/src/main/java/io/gitlab/jfronny/respackopts/Respackopts.java +++ b/src/main/java/io/gitlab/jfronny/respackopts/Respackopts.java @@ -13,7 +13,7 @@ import io.gitlab.jfronny.respackopts.gson.entry.ConfigBranchSerializer; import io.gitlab.jfronny.respackopts.gson.entry.EnumEntrySerializer; import io.gitlab.jfronny.respackopts.gson.entry.NumericEntrySerializer; import io.gitlab.jfronny.respackopts.util.RpoCommand; -import io.gitlab.jfronny.respackopts.data.entry.*; +import io.gitlab.jfronny.respackopts.tree.*; import io.gitlab.jfronny.respackopts.filters.FileFilterEventImpl; import io.gitlab.jfronny.respackopts.util.GuiFactory; import meteordevelopment.starscript.Script; @@ -119,7 +119,7 @@ public class Respackopts implements ClientModInitializer { }); SAVE_ACTIONS.add(() -> { if (CONFIG.debugLogs) - LOGGER.info("Generating FREX shader code"); + LOGGER.info("Generating shader code"); StringBuilder sb = new StringBuilder(); sb.append("#ifndef respackopts_loaded"); sb.append("\n#define respackopts_loaded"); diff --git a/src/main/java/io/gitlab/jfronny/respackopts/data/PackMeta.java b/src/main/java/io/gitlab/jfronny/respackopts/data/PackMeta.java index d14aa8b..117400b 100644 --- a/src/main/java/io/gitlab/jfronny/respackopts/data/PackMeta.java +++ b/src/main/java/io/gitlab/jfronny/respackopts/data/PackMeta.java @@ -1,6 +1,6 @@ package io.gitlab.jfronny.respackopts.data; -import io.gitlab.jfronny.respackopts.data.entry.ConfigBranch; +import io.gitlab.jfronny.respackopts.tree.ConfigBranch; import io.gitlab.jfronny.respackopts.data.enums.PackCapability; import java.util.HashSet; diff --git a/src/main/java/io/gitlab/jfronny/respackopts/data/condition/RpoBooleanCondition.java b/src/main/java/io/gitlab/jfronny/respackopts/data/condition/RpoBooleanCondition.java index 060799f..d8886be 100644 --- a/src/main/java/io/gitlab/jfronny/respackopts/data/condition/RpoBooleanCondition.java +++ b/src/main/java/io/gitlab/jfronny/respackopts/data/condition/RpoBooleanCondition.java @@ -2,7 +2,7 @@ package io.gitlab.jfronny.respackopts.data.condition; import com.google.gson.JsonParseException; import io.gitlab.jfronny.respackopts.Respackopts; -import io.gitlab.jfronny.respackopts.data.entry.ConfigBranch; +import io.gitlab.jfronny.respackopts.tree.ConfigBranch; import io.gitlab.jfronny.respackopts.util.RpoFormatException; import java.util.Map; diff --git a/src/main/java/io/gitlab/jfronny/respackopts/gson/entry/BooleanEntrySerializer.java b/src/main/java/io/gitlab/jfronny/respackopts/gson/entry/BooleanEntrySerializer.java index 20fa5a8..4b6d5b2 100644 --- a/src/main/java/io/gitlab/jfronny/respackopts/gson/entry/BooleanEntrySerializer.java +++ b/src/main/java/io/gitlab/jfronny/respackopts/gson/entry/BooleanEntrySerializer.java @@ -1,7 +1,7 @@ package io.gitlab.jfronny.respackopts.gson.entry; import com.google.gson.*; -import io.gitlab.jfronny.respackopts.data.entry.ConfigBooleanEntry; +import io.gitlab.jfronny.respackopts.tree.ConfigBooleanEntry; import java.lang.reflect.Type; diff --git a/src/main/java/io/gitlab/jfronny/respackopts/gson/entry/ConfigBranchSerializer.java b/src/main/java/io/gitlab/jfronny/respackopts/gson/entry/ConfigBranchSerializer.java index ab6ad57..135207c 100644 --- a/src/main/java/io/gitlab/jfronny/respackopts/gson/entry/ConfigBranchSerializer.java +++ b/src/main/java/io/gitlab/jfronny/respackopts/gson/entry/ConfigBranchSerializer.java @@ -2,7 +2,7 @@ package io.gitlab.jfronny.respackopts.gson.entry; import com.google.gson.*; import io.gitlab.jfronny.respackopts.Respackopts; -import io.gitlab.jfronny.respackopts.data.entry.*; +import io.gitlab.jfronny.respackopts.tree.*; import io.gitlab.jfronny.respackopts.data.enums.PackReloadType; import java.lang.reflect.Type; diff --git a/src/main/java/io/gitlab/jfronny/respackopts/gson/entry/EnumEntrySerializer.java b/src/main/java/io/gitlab/jfronny/respackopts/gson/entry/EnumEntrySerializer.java index 2fa572e..dcb99e0 100644 --- a/src/main/java/io/gitlab/jfronny/respackopts/gson/entry/EnumEntrySerializer.java +++ b/src/main/java/io/gitlab/jfronny/respackopts/gson/entry/EnumEntrySerializer.java @@ -2,7 +2,7 @@ package io.gitlab.jfronny.respackopts.gson.entry; import com.google.gson.*; import io.gitlab.jfronny.respackopts.Respackopts; -import io.gitlab.jfronny.respackopts.data.entry.ConfigEnumEntry; +import io.gitlab.jfronny.respackopts.tree.ConfigEnumEntry; import java.lang.reflect.Type; diff --git a/src/main/java/io/gitlab/jfronny/respackopts/gson/entry/NumericEntrySerializer.java b/src/main/java/io/gitlab/jfronny/respackopts/gson/entry/NumericEntrySerializer.java index 94b9221..d7e7c64 100644 --- a/src/main/java/io/gitlab/jfronny/respackopts/gson/entry/NumericEntrySerializer.java +++ b/src/main/java/io/gitlab/jfronny/respackopts/gson/entry/NumericEntrySerializer.java @@ -1,7 +1,7 @@ package io.gitlab.jfronny.respackopts.gson.entry; import com.google.gson.*; -import io.gitlab.jfronny.respackopts.data.entry.ConfigNumericEntry; +import io.gitlab.jfronny.respackopts.tree.ConfigNumericEntry; import io.gitlab.jfronny.respackopts.data.enums.NumericEntryType; import java.lang.reflect.Type; diff --git a/src/main/java/io/gitlab/jfronny/respackopts/data/entry/ConfigBooleanEntry.java b/src/main/java/io/gitlab/jfronny/respackopts/tree/ConfigBooleanEntry.java similarity index 96% rename from src/main/java/io/gitlab/jfronny/respackopts/data/entry/ConfigBooleanEntry.java rename to src/main/java/io/gitlab/jfronny/respackopts/tree/ConfigBooleanEntry.java index 47bcddf..183f2c3 100644 --- a/src/main/java/io/gitlab/jfronny/respackopts/data/entry/ConfigBooleanEntry.java +++ b/src/main/java/io/gitlab/jfronny/respackopts/tree/ConfigBooleanEntry.java @@ -1,4 +1,4 @@ -package io.gitlab.jfronny.respackopts.data.entry; +package io.gitlab.jfronny.respackopts.tree; import io.gitlab.jfronny.respackopts.Respackopts; import me.shedaniel.clothconfig2.api.AbstractConfigListEntry; diff --git a/src/main/java/io/gitlab/jfronny/respackopts/data/entry/ConfigBranch.java b/src/main/java/io/gitlab/jfronny/respackopts/tree/ConfigBranch.java similarity index 99% rename from src/main/java/io/gitlab/jfronny/respackopts/data/entry/ConfigBranch.java rename to src/main/java/io/gitlab/jfronny/respackopts/tree/ConfigBranch.java index dcba7ac..ca8d1de 100644 --- a/src/main/java/io/gitlab/jfronny/respackopts/data/entry/ConfigBranch.java +++ b/src/main/java/io/gitlab/jfronny/respackopts/tree/ConfigBranch.java @@ -1,4 +1,4 @@ -package io.gitlab.jfronny.respackopts.data.entry; +package io.gitlab.jfronny.respackopts.tree; import com.google.common.collect.ImmutableMap; import com.google.gson.reflect.TypeToken; diff --git a/src/main/java/io/gitlab/jfronny/respackopts/data/entry/ConfigEntry.java b/src/main/java/io/gitlab/jfronny/respackopts/tree/ConfigEntry.java similarity index 98% rename from src/main/java/io/gitlab/jfronny/respackopts/data/entry/ConfigEntry.java rename to src/main/java/io/gitlab/jfronny/respackopts/tree/ConfigEntry.java index 9e14016..e9a6337 100644 --- a/src/main/java/io/gitlab/jfronny/respackopts/data/entry/ConfigEntry.java +++ b/src/main/java/io/gitlab/jfronny/respackopts/tree/ConfigEntry.java @@ -1,4 +1,4 @@ -package io.gitlab.jfronny.respackopts.data.entry; +package io.gitlab.jfronny.respackopts.tree; import io.gitlab.jfronny.respackopts.Respackopts; import io.gitlab.jfronny.respackopts.data.enums.ConfigSyncMode; diff --git a/src/main/java/io/gitlab/jfronny/respackopts/data/entry/ConfigEnumEntry.java b/src/main/java/io/gitlab/jfronny/respackopts/tree/ConfigEnumEntry.java similarity index 83% rename from src/main/java/io/gitlab/jfronny/respackopts/data/entry/ConfigEnumEntry.java rename to src/main/java/io/gitlab/jfronny/respackopts/tree/ConfigEnumEntry.java index 5ae2b93..e1610a8 100644 --- a/src/main/java/io/gitlab/jfronny/respackopts/data/entry/ConfigEnumEntry.java +++ b/src/main/java/io/gitlab/jfronny/respackopts/tree/ConfigEnumEntry.java @@ -1,16 +1,13 @@ -package io.gitlab.jfronny.respackopts.data.entry; +package io.gitlab.jfronny.respackopts.tree; +import io.gitlab.jfronny.respackopts.Respackopts; import io.gitlab.jfronny.respackopts.data.enums.ConfigSyncMode; import io.gitlab.jfronny.respackopts.util.GuiFactory; -import io.gitlab.jfronny.respackopts.Respackopts; import me.shedaniel.clothconfig2.api.AbstractConfigListEntry; -import me.shedaniel.clothconfig2.impl.builders.DropdownMenuBuilder; import meteordevelopment.starscript.value.Value; import net.minecraft.text.Text; -import java.util.ArrayList; -import java.util.List; -import java.util.Objects; +import java.util.*; import java.util.function.Function; public class ConfigEnumEntry extends ConfigEntry { @@ -123,13 +120,20 @@ public class ConfigEnumEntry extends ConfigEntry { @Override public AbstractConfigListEntry buildEntry(GuiEntryBuilderParam guiEntryBuilderParam) { Function entryText = s -> GuiFactory.getText(s, ("".equals(guiEntryBuilderParam.translationPrefix()) ? "" : guiEntryBuilderParam.translationPrefix() + ".") + guiEntryBuilderParam.entryName()); - return guiEntryBuilderParam.entryBuilder().startDropdownMenu(guiEntryBuilderParam.name(), - DropdownMenuBuilder.TopCellElementBuilder.of(getValue(), s -> s, entryText), - DropdownMenuBuilder.CellCreatorBuilder.of(entryText)) + Map translationReverseLookup = new HashMap<>(); + for (String value : values) { + translationReverseLookup.put(entryText.apply(value).getString(), value); + } + return guiEntryBuilderParam.entryBuilder().startStringDropdownMenu(guiEntryBuilderParam.name(), entryText.apply(getValue()).getString(), entryText) .setSuggestionMode(false) - .setDefaultValue(getDefault()) - .setSelections(() -> values.iterator()) + .setDefaultValue(entryText.apply(getDefault()).getString()) + .setSelections(translationReverseLookup.keySet()) .setSaveConsumer(value -> { + if (!translationReverseLookup.containsKey(value)) { + Respackopts.LOGGER.error("Invalid enum entry selected: " + value); + return; + } + value = translationReverseLookup.get(value); if (!Objects.equals(getValue(), value)) { if (Respackopts.CONFIG.debugLogs) Respackopts.LOGGER.info("ConfigEnumEntry SaveCallback"); guiEntryBuilderParam.saveCallback(); diff --git a/src/main/java/io/gitlab/jfronny/respackopts/data/entry/ConfigNumericEntry.java b/src/main/java/io/gitlab/jfronny/respackopts/tree/ConfigNumericEntry.java similarity index 98% rename from src/main/java/io/gitlab/jfronny/respackopts/data/entry/ConfigNumericEntry.java rename to src/main/java/io/gitlab/jfronny/respackopts/tree/ConfigNumericEntry.java index 064e1d5..936ce55 100644 --- a/src/main/java/io/gitlab/jfronny/respackopts/data/entry/ConfigNumericEntry.java +++ b/src/main/java/io/gitlab/jfronny/respackopts/tree/ConfigNumericEntry.java @@ -1,4 +1,4 @@ -package io.gitlab.jfronny.respackopts.data.entry; +package io.gitlab.jfronny.respackopts.tree; import io.gitlab.jfronny.respackopts.Respackopts; import io.gitlab.jfronny.respackopts.data.enums.ConfigSyncMode; diff --git a/src/main/java/io/gitlab/jfronny/respackopts/data/entry/GuiEntryBuilderParam.java b/src/main/java/io/gitlab/jfronny/respackopts/tree/GuiEntryBuilderParam.java similarity index 92% rename from src/main/java/io/gitlab/jfronny/respackopts/data/entry/GuiEntryBuilderParam.java rename to src/main/java/io/gitlab/jfronny/respackopts/tree/GuiEntryBuilderParam.java index 7b1323d..cb8e62c 100644 --- a/src/main/java/io/gitlab/jfronny/respackopts/data/entry/GuiEntryBuilderParam.java +++ b/src/main/java/io/gitlab/jfronny/respackopts/tree/GuiEntryBuilderParam.java @@ -1,4 +1,4 @@ -package io.gitlab.jfronny.respackopts.data.entry; +package io.gitlab.jfronny.respackopts.tree; import io.gitlab.jfronny.respackopts.data.enums.PackReloadType; import me.shedaniel.clothconfig2.api.ConfigEntryBuilder; diff --git a/src/main/java/io/gitlab/jfronny/respackopts/util/GuiFactory.java b/src/main/java/io/gitlab/jfronny/respackopts/util/GuiFactory.java index 2ae3936..c1e5e94 100644 --- a/src/main/java/io/gitlab/jfronny/respackopts/util/GuiFactory.java +++ b/src/main/java/io/gitlab/jfronny/respackopts/util/GuiFactory.java @@ -1,9 +1,9 @@ package io.gitlab.jfronny.respackopts.util; import io.gitlab.jfronny.respackopts.Respackopts; -import io.gitlab.jfronny.respackopts.data.entry.ConfigBranch; -import io.gitlab.jfronny.respackopts.data.entry.ConfigEntry; -import io.gitlab.jfronny.respackopts.data.entry.GuiEntryBuilderParam; +import io.gitlab.jfronny.respackopts.tree.ConfigBranch; +import io.gitlab.jfronny.respackopts.tree.ConfigEntry; +import io.gitlab.jfronny.respackopts.tree.GuiEntryBuilderParam; import io.gitlab.jfronny.respackopts.data.enums.PackReloadType; import io.gitlab.jfronny.respackopts.integration.DashLoaderCompat; import me.shedaniel.clothconfig2.api.AbstractConfigListEntry; diff --git a/src/main/java/io/gitlab/jfronny/respackopts/util/RpoCommand.java b/src/main/java/io/gitlab/jfronny/respackopts/util/RpoCommand.java index 8716b8e..12cda6c 100644 --- a/src/main/java/io/gitlab/jfronny/respackopts/util/RpoCommand.java +++ b/src/main/java/io/gitlab/jfronny/respackopts/util/RpoCommand.java @@ -1,7 +1,7 @@ package io.gitlab.jfronny.respackopts.util; import io.gitlab.jfronny.respackopts.Respackopts; -import io.gitlab.jfronny.respackopts.data.entry.ConfigBranch; +import io.gitlab.jfronny.respackopts.tree.ConfigBranch; import net.fabricmc.loader.api.FabricLoader; import net.fabricmc.loader.api.ModContainer; import net.minecraft.text.Text; diff --git a/src/main/resources/fabric.mod.json b/src/main/resources/fabric.mod.json index 739fa62..c06240f 100644 --- a/src/main/resources/fabric.mod.json +++ b/src/main/resources/fabric.mod.json @@ -35,10 +35,5 @@ }, "conflicts": { "libjf": "<2.0" - }, - "custom": { - "libjf": { - "asm.export": true - } } } diff --git a/src/test/java/io/gitlab/jfronny/respackopts/ConfigTreeTest.java b/src/test/java/io/gitlab/jfronny/respackopts/ConfigTreeTest.java index 6430145..f489d95 100644 --- a/src/test/java/io/gitlab/jfronny/respackopts/ConfigTreeTest.java +++ b/src/test/java/io/gitlab/jfronny/respackopts/ConfigTreeTest.java @@ -1,7 +1,7 @@ package io.gitlab.jfronny.respackopts; import io.gitlab.jfronny.respackopts.data.ConfigFile; -import io.gitlab.jfronny.respackopts.data.entry.*; +import io.gitlab.jfronny.respackopts.tree.*; import io.gitlab.jfronny.respackopts.data.enums.ConfigSyncMode; import io.gitlab.jfronny.respackopts.data.enums.NumericEntryType; import org.junit.jupiter.api.AfterEach;