Work around cloth breaking enums, closes #15

This commit is contained in:
JFronny 2021-11-09 15:16:46 +01:00
parent 576c65135c
commit 934cb10a09
No known key found for this signature in database
GPG Key ID: BEC5ACBBD4EE17E5
20 changed files with 42 additions and 40 deletions

View File

@ -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")
}

View File

@ -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

View File

@ -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",

View File

@ -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");

View File

@ -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;

View File

@ -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;

View File

@ -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;

View File

@ -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;

View File

@ -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;

View File

@ -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;

View File

@ -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;

View File

@ -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;

View File

@ -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;

View File

@ -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<String> {
@ -123,13 +120,20 @@ public class ConfigEnumEntry extends ConfigEntry<String> {
@Override
public AbstractConfigListEntry<?> buildEntry(GuiEntryBuilderParam guiEntryBuilderParam) {
Function<String, Text> 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<String, String> 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();

View File

@ -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;

View File

@ -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;

View File

@ -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;

View File

@ -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;

View File

@ -35,10 +35,5 @@
},
"conflicts": {
"libjf": "<2.0"
},
"custom": {
"libjf": {
"asm.export": true
}
}
}

View File

@ -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;