From 6535d74867d3cad643fc610ded452847e5167bcb Mon Sep 17 00:00:00 2001 From: JFronny <33260128+jfronny@users.noreply.github.com> Date: Sun, 20 Dec 2020 22:28:25 +0100 Subject: [PATCH] Do not load old data, fix a few bugs --- gradle.properties | 2 +- .../lumi/assets/minecraft/lang/en_us.json | 6 ---- .../lumi/assets/respackopts/conf.json | 4 ++- .../jfronny/respackopts/GuiFactory.java | 2 +- .../jfronny/respackopts/Respackopts.java | 30 +++++++++++++++---- .../respackopts/integration/FrexCompat.java | 8 +++-- .../mixin/ResourcePackManagerMixin.java | 6 +++- 7 files changed, 39 insertions(+), 19 deletions(-) diff --git a/gradle.properties b/gradle.properties index 2e31422..a42b2ea 100644 --- a/gradle.properties +++ b/gradle.properties @@ -6,7 +6,7 @@ minecraft_version=1.16.4 yarn_mappings=1.16.4+build.7 loader_version=0.10.8 # Mod Properties -mod_version=1.1 +mod_version=1.1.2 maven_group=io.gitlab.jfronny archives_base_name=respackopts # Dependencies diff --git a/run/resourcepacks/lumi/assets/minecraft/lang/en_us.json b/run/resourcepacks/lumi/assets/minecraft/lang/en_us.json index 56da126..f66c8d0 100644 --- a/run/resourcepacks/lumi/assets/minecraft/lang/en_us.json +++ b/run/resourcepacks/lumi/assets/minecraft/lang/en_us.json @@ -1,13 +1,7 @@ { "respackopts.title.lumi": "Lumi Lights", "respackopts.field.lumi.tonemap": "Tonemap mode", - "respackopts.field.lumi.tonemap.default": "Default", - "respackopts.field.lumi.tonemap.vibrant": "Vibrant", - "respackopts.field.lumi.tonemap.film": "Film", "respackopts.field.lumi.pbr": "Enable PBR", "respackopts.field.lumi.debugMode": "Debug Mode", - "respackopts.field.lumi.debugMode.none": "Disable", - "respackopts.field.lumi.debugMode.normal": "Render normals", - "respackopts.field.lumi.debugMode.viewDir": "Render view direction", "respackopts.field.lumi.waterVertexWavy": "Wavy water model" } \ No newline at end of file diff --git a/run/resourcepacks/lumi/assets/respackopts/conf.json b/run/resourcepacks/lumi/assets/respackopts/conf.json index b075cdb..c647800 100644 --- a/run/resourcepacks/lumi/assets/respackopts/conf.json +++ b/run/resourcepacks/lumi/assets/respackopts/conf.json @@ -13,6 +13,8 @@ "normal", "viewDir" ], - "waterVertexWavy": false + "waterVertexWavy": false, + "stringTest": "this is a string", + "numTest": 15.4 } } diff --git a/src/main/java/io/gitlab/jfronny/respackopts/GuiFactory.java b/src/main/java/io/gitlab/jfronny/respackopts/GuiFactory.java index 50c1ce6..6d6e43d 100644 --- a/src/main/java/io/gitlab/jfronny/respackopts/GuiFactory.java +++ b/src/main/java/io/gitlab/jfronny/respackopts/GuiFactory.java @@ -85,7 +85,7 @@ public class GuiFactory { } i++; } - config.addEntry(entryBuilder.startDropdownMenu(getText(n, b), (DropdownBoxEntry.SelectionTopCellElement) DropdownMenuBuilder.TopCellElementBuilder.of(sel, (s) -> s, (s) -> getText(s, b + "." + n)), new DropdownBoxEntry.DefaultSelectionCellCreator()) + config.addEntry(entryBuilder.startDropdownMenu(getText(n, b), (DropdownBoxEntry.SelectionTopCellElement) DropdownMenuBuilder.TopCellElementBuilder.of(sel, (s) -> s, (s) -> new LiteralText(s)), new DropdownBoxEntry.DefaultSelectionCellCreator()) .setSuggestionMode(false) .setDefaultValue(ev.first()) .setSelections(() -> ev.iterator()) diff --git a/src/main/java/io/gitlab/jfronny/respackopts/Respackopts.java b/src/main/java/io/gitlab/jfronny/respackopts/Respackopts.java index a28f2f0..620fffe 100644 --- a/src/main/java/io/gitlab/jfronny/respackopts/Respackopts.java +++ b/src/main/java/io/gitlab/jfronny/respackopts/Respackopts.java @@ -79,12 +79,30 @@ public class Respackopts implements ClientModInitializer { Reader reader = Files.newBufferedReader(q); Config c = g.fromJson(reader, Config.class); reader.close(); - if (c.bools != null) - boolVals.put(id, c.bools); - if (c.doubles != null) - numVals.put(id, c.doubles); - if (c.strings != null) - strVals.put(id, c.strings); + if (c.bools != null) { + boolVals.get(id).forEach((i, val) -> { + if (c.bools.containsKey(i)) { + boolVals.get(id).put(i, c.bools.get(i)); + } else + System.out.println("Could not find bool " + i + " in " + id); + }); + } + if (c.doubles != null) { + numVals.get(id).forEach((i, val) -> { + if (c.doubles.containsKey(i)) { + numVals.get(id).put(i, c.doubles.get(i)); + } else + System.out.println("Could not find num " + i + " in " + id); + }); + } + if (c.strings != null) { + strVals.get(id).forEach((i, val) -> { + if (c.strings.containsKey(i)) { + strVals.get(id).put(i, c.strings.get(i)); + } else + System.out.println("Could not find str " + i + " in " + id); + }); + } } catch (IOException e) { e.printStackTrace(); } diff --git a/src/main/java/io/gitlab/jfronny/respackopts/integration/FrexCompat.java b/src/main/java/io/gitlab/jfronny/respackopts/integration/FrexCompat.java index dea19c7..5d4d23c 100644 --- a/src/main/java/io/gitlab/jfronny/respackopts/integration/FrexCompat.java +++ b/src/main/java/io/gitlab/jfronny/respackopts/integration/FrexCompat.java @@ -9,6 +9,7 @@ import net.minecraft.util.Identifier; import java.util.concurrent.atomic.AtomicInteger; public class FrexCompat implements FrexInitializer { + boolean initial = true; @Override public void onInitalizeFrex() { ShaderConfig.registerShaderConfigSupplier(new Identifier(Respackopts.ID, "config_supplier"), () -> { @@ -53,11 +54,12 @@ public class FrexCompat implements FrexInitializer { System.out.println("[respackopts] enabled frex/canvas support"); Respackopts.saveActions.add(() -> { try { - ShaderConfig.invalidateShaderConfig(); + if (!initial) + ShaderConfig.invalidateShaderConfig(); + initial = false; } catch (Throwable e) { - if (FabricLoader.getInstance().isDevelopmentEnvironment()) - e.printStackTrace(); + e.printStackTrace(); } }); } diff --git a/src/main/java/io/gitlab/jfronny/respackopts/mixin/ResourcePackManagerMixin.java b/src/main/java/io/gitlab/jfronny/respackopts/mixin/ResourcePackManagerMixin.java index 87fef11..a205425 100644 --- a/src/main/java/io/gitlab/jfronny/respackopts/mixin/ResourcePackManagerMixin.java +++ b/src/main/java/io/gitlab/jfronny/respackopts/mixin/ResourcePackManagerMixin.java @@ -29,6 +29,7 @@ public class ResourcePackManagerMixin { profiles.forEach((s, v) -> { if (hasMetadata(v, "conf.json")) { try { + boolean overwriteData = false; Respackmeta conf = Respackopts.g.fromJson(readMetadata(v, "conf.json", Respackopts.g), Respackmeta.class); if (!Respackopts.boolVals.containsKey(conf.id)) Respackopts.boolVals.put(conf.id, new HashMap<>()); @@ -39,8 +40,8 @@ public class ResourcePackManagerMixin { if (!Respackopts.enumKeys.containsKey(conf.id)) Respackopts.enumKeys.put(conf.id, new HashMap<>()); if (Respackopts.metaVersion.equals(conf.version)) { + overwriteData |= !Respackopts.resPackMetas.containsKey(v.getDisplayName().asString()); Respackopts.resPackMetas.put(v.getDisplayName().asString(), conf); - Respackopts.load(conf.id); } else { System.err.println(s + " was not loaded as it specifies a different respackopts version than is installed"); @@ -98,6 +99,9 @@ public class ResourcePackManagerMixin { System.err.println("[respackopts] Unsupported non-primitive datatype"); } } + if (overwriteData) { + Respackopts.load(conf.id); + } } catch (Throwable e) { e.printStackTrace(); }