diff --git a/build.gradle.kts b/build.gradle.kts index 875edb8..f6ac2aa 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -71,7 +71,9 @@ dependencies { } // MidnightLib - modImplementation ("eu.midnightdust:midnightlib:${mod.dep("midnightlib_version")}+${minecraft}-${loader}") + val midnightlib = "eu.midnightdust:midnightlib:${mod.dep("midnightlib_version")}+${minecraft}-${loader}" + modImplementation(midnightlib) + include(midnightlib) if (loader == "fabric") { modImplementation("net.fabricmc:fabric-loader:${mod.dep("fabric_loader")}") diff --git a/gradle.properties b/gradle.properties index ba243b4..1e9041d 100644 --- a/gradle.properties +++ b/gradle.properties @@ -31,7 +31,7 @@ deps.neoforge_patch=[VERSIONED] # Mod dependencies deps.yarn_build=[VERSIONED] deps.modmenu_version=[VERSIONED] -deps.midnightlib_version=1.9.0-alpha.1 +deps.midnightlib_version=1.9.0-beta.3 # Mod integrations jigsaws.cull_leaves_version = 3.0.2-fabric @@ -47,12 +47,9 @@ jigsaws.toml4j_version = 0.7.2 jigsaws.cit_resewn_version = 1.1.3+1.20 jigsaws.complete_config_version = 2.3.0 jigsaws.spruceui_version=5.0.0+1.20 -jigsaws.emf_version=2.4.1 -jigsaws.etf_version=6.2.10 +jigsaws.emf_version=[VERSIONED] +jigsaws.etf_version=[VERSIONED] jigsaws.exordium_version=1.2.1-1.20.2 -# Required for LBG -jigsaws.quilt_loader_version=0.19.0-beta.18 -jigsaws.quilt_fabric_api_version=7.0.1+0.83.0-1.20 # Publishing publish.modrinth=3IuO68q1 diff --git a/src/main/java/net/puzzlemc/gui/PuzzleGui.java b/src/main/java/net/puzzlemc/gui/PuzzleGui.java index b1b7842..253b9bc 100644 --- a/src/main/java/net/puzzlemc/gui/PuzzleGui.java +++ b/src/main/java/net/puzzlemc/gui/PuzzleGui.java @@ -53,7 +53,7 @@ public class PuzzleGui { if (isActive("lambdabettergrass")) LBGCompat.init(); if (isActive("continuity")) ContinuityCompat.init(); try { - if (isActive("entity_Componenture_features")) ETFCompat.init(); + if (isActive("entity_texture_features")) ETFCompat.init(); if (isActive("entity_model_features")) EMFCompat.init(); } catch (Exception e) { LOGGER.error("ETF/EMF config structure changed. Again...", e); diff --git a/src/main/java/net/puzzlemc/gui/compat/EMFCompat.java b/src/main/java/net/puzzlemc/gui/compat/EMFCompat.java index e568b27..908b4bd 100644 --- a/src/main/java/net/puzzlemc/gui/compat/EMFCompat.java +++ b/src/main/java/net/puzzlemc/gui/compat/EMFCompat.java @@ -1,32 +1,54 @@ package net.puzzlemc.gui.compat; -import eu.midnightdust.lib.util.PlatformFunctions; +import net.minecraft.ChatFormatting; +import net.minecraft.client.Minecraft; import net.minecraft.network.chat.CommonComponents; import net.minecraft.network.chat.Component; import net.puzzlemc.gui.PuzzleApi; import net.puzzlemc.gui.screen.widget.PuzzleWidget; import traben.entity_model_features.EMF; import traben.entity_model_features.config.EMFConfig; +import traben.entity_texture_features.config.ETFConfig; +import traben.entity_texture_features.config.screens.ETFConfigScreenMain; import java.util.EnumSet; import java.util.NavigableSet; import java.util.Objects; import java.util.TreeSet; +import static net.puzzlemc.gui.PuzzleGui.NO; +import static net.puzzlemc.gui.PuzzleGui.YES; + public class EMFCompat { public static void init() { PuzzleApi.addToResourceOptions(new PuzzleWidget(Component.literal("\uD83D\uDC37 ").append(Component.translatable("entity_model_features.title")))); EMFConfig emfConfig = EMF.config().getConfig(); - if (PlatformFunctions.isModLoaded("physicsmod")) { - PuzzleApi.addToResourceOptions(new PuzzleWidget(Component.translatable("entity_model_features.config.physics"), (button) -> button.setMessage(emfConfig.attemptPhysicsModPatch_2 != EMFConfig.PhysicsModCompatChoice.OFF ? - Component.translatable("entity_model_features.config." + (emfConfig.attemptPhysicsModPatch_2 == EMFConfig.PhysicsModCompatChoice.VANILLA ? "physics.1" : "physics.2")) : CommonComponents.OPTION_OFF), (button) -> { - final NavigableSet set = - new TreeSet<>(EnumSet.allOf(EMFConfig.PhysicsModCompatChoice.class)); - - emfConfig.attemptPhysicsModPatch_2 = Objects.requireNonNullElseGet( - set.higher(emfConfig.attemptPhysicsModPatch_2), set::first); - EMF.config().saveToFile(); - })); - } + PuzzleApi.addToResourceOptions(new PuzzleWidget(Component.translatable("entity_model_features.config.update"), (button) -> button.setMessage(Component.literal(emfConfig.modelUpdateFrequency.toString())), (button) -> { + final NavigableSet set = new TreeSet<>(EnumSet.allOf(ETFConfig.UpdateFrequency.class)); + emfConfig.modelUpdateFrequency = Objects.requireNonNullElseGet(set.higher(emfConfig.modelUpdateFrequency), set::first); + EMF.config().saveToFile(); + })); + PuzzleApi.addToResourceOptions(new PuzzleWidget(0, 65, Component.translatable("entity_model_features.config.lod"), () -> emfConfig.animationLODDistance, + (button) -> button.setMessage(lodMessage(emfConfig.animationLODDistance)), + (slider) -> { + try { + emfConfig.animationLODDistance = slider.getInt(); + } catch (NumberFormatException ignored) {} + EMF.config().saveToFile(); + })); + PuzzleApi.addToGraphicsOptions(new PuzzleWidget(Component.translatable("entity_model_features.config.low_fps_lod"), (button) -> button.setMessage(emfConfig.retainDetailOnLowFps ? YES : NO), (button) -> { + emfConfig.retainDetailOnLowFps = !emfConfig.retainDetailOnLowFps; + EMF.config().saveToFile(); + })); + PuzzleApi.addToGraphicsOptions(new PuzzleWidget(Component.translatable("entity_model_features.config.large_mob_lod"), (button) -> button.setMessage(emfConfig.retainDetailOnLargerMobs ? YES : NO), (button) -> { + emfConfig.retainDetailOnLargerMobs = !emfConfig.retainDetailOnLargerMobs; + EMF.config().saveToFile(); + })); + PuzzleApi.addToResourceOptions(new PuzzleWidget(Component.translatable("puzzle.action.open_config_screen"), (button) -> button.setMessage(Component.nullToEmpty("OPEN")), button -> Minecraft.getInstance().setScreen(new ETFConfigScreenMain(Minecraft.getInstance().screen)))); + } + public static Component lodMessage(int value) { + if (value == 20) return Component.literal(value + " (Default)"); + else if (value == 0 || value == 65) return CommonComponents.OPTION_OFF.copy().withStyle(ChatFormatting.RED); + else return Component.literal(String.valueOf(value)).withStyle(ChatFormatting.AQUA); } } diff --git a/src/main/java/net/puzzlemc/gui/compat/ETFCompat.java b/src/main/java/net/puzzlemc/gui/compat/ETFCompat.java index ff305b8..ccd72bd 100644 --- a/src/main/java/net/puzzlemc/gui/compat/ETFCompat.java +++ b/src/main/java/net/puzzlemc/gui/compat/ETFCompat.java @@ -1,10 +1,12 @@ package net.puzzlemc.gui.compat; +import net.minecraft.client.Minecraft; import net.minecraft.network.chat.Component; import net.puzzlemc.gui.PuzzleApi; import net.puzzlemc.gui.screen.widget.PuzzleWidget; import traben.entity_texture_features.ETFApi; import traben.entity_texture_features.config.ETFConfig; +import traben.entity_texture_features.config.screens.ETFConfigScreenMain; import java.util.EnumSet; import java.util.NavigableSet; @@ -43,5 +45,6 @@ public class ETFCompat { etfConfig.skinFeaturesEnabled = !etfConfig.skinFeaturesEnabled; ETFApi.saveETFConfigChangesAndResetETF(); })); + PuzzleApi.addToResourceOptions(new PuzzleWidget(Component.translatable("puzzle.action.open_config_screen"), (button) -> button.setMessage(Component.nullToEmpty("OPEN")), button -> Minecraft.getInstance().setScreen(new ETFConfigScreenMain(Minecraft.getInstance().screen)))); } } diff --git a/src/main/java/net/puzzlemc/gui/screen/widget/PuzzleOptionListWidget.java b/src/main/java/net/puzzlemc/gui/screen/widget/PuzzleOptionListWidget.java index fc2dd31..af77962 100644 --- a/src/main/java/net/puzzlemc/gui/screen/widget/PuzzleOptionListWidget.java +++ b/src/main/java/net/puzzlemc/gui/screen/widget/PuzzleOptionListWidget.java @@ -68,7 +68,7 @@ public class PuzzleOptionListWidget extends MidnightConfigListWidget { ButtonEntry e = this.getHovered(); if (minecraft.screen instanceof PuzzleOptionsScreen page && e != null && !e.buttons.isEmpty() && e.text.getContents() instanceof TranslatableContents content) { - AbstractWidget button = e.buttons.getFirst(); + AbstractWidget button = e.buttons.get(0); String key = null; if (I18n.exists(content.getKey() + ".tooltip")) key = content.getKey() + ".tooltip"; else if (I18n.exists(content.getKey() + ".desc")) key = content.getKey() + ".desc"; diff --git a/src/main/resources/architectury.puzzle.json b/src/main/resources/architectury.puzzle.json deleted file mode 100644 index 9c049e5..0000000 --- a/src/main/resources/architectury.puzzle.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "accessWidener": "puzzle-models.accesswidener" -} \ No newline at end of file diff --git a/src/main/resources/assets/puzzle/lang/en_us.json b/src/main/resources/assets/puzzle/lang/en_us.json index a90599f..2835291 100755 --- a/src/main/resources/assets/puzzle/lang/en_us.json +++ b/src/main/resources/assets/puzzle/lang/en_us.json @@ -5,6 +5,7 @@ "puzzle.page.resources":"Resource", "puzzle.page.performance":"Performance", "puzzle.page.misc":"Miscellaneous", + "puzzle.action.open_config_screen":"Open config screen", "puzzle.option.check_for_updates":"Check for Updates", "puzzle.option.check_for_updates.tooltip":"Enables Puzzle's built-in update checker", "puzzle.option.show_version_info":"Show Puzzle version info", diff --git a/versions/1.20.1-fabric/gradle.properties b/versions/1.20.1-fabric/gradle.properties index 5e6477a..325f439 100644 --- a/versions/1.20.1-fabric/gradle.properties +++ b/versions/1.20.1-fabric/gradle.properties @@ -9,4 +9,7 @@ deps.neoforge_loader=[UNSUPPORTED] deps.fabric_version=0.92.3+1.20.1 deps.modmenu_version=7.2.2 +jigsaws.emf_version=3.0.6-fabric-1.20.1 +jigsaws.etf_version=7.0.6-fabric-1.20.1 + loom.platform=fabric diff --git a/versions/1.21.1-fabric/gradle.properties b/versions/1.21.1-fabric/gradle.properties index 2493151..2db18ac 100644 --- a/versions/1.21.1-fabric/gradle.properties +++ b/versions/1.21.1-fabric/gradle.properties @@ -10,4 +10,7 @@ deps.fabric_version=0.114.0+1.21.1 deps.modmenu_version=11.0.3 +jigsaws.emf_version=3.0.6-fabric-1.21 +jigsaws.etf_version=7.0.6-fabric-1.21 + loom.platform=fabric \ No newline at end of file diff --git a/versions/1.21.1-neoforge/gradle.properties b/versions/1.21.1-neoforge/gradle.properties index 3a1c734..7b1fccc 100644 --- a/versions/1.21.1-neoforge/gradle.properties +++ b/versions/1.21.1-neoforge/gradle.properties @@ -10,4 +10,7 @@ deps.fabric_version=0.114.0+1.21.1 deps.modmenu_version=[UNSUPPORTED] +jigsaws.emf_version=3.0.6-neoforge-1.21 +jigsaws.etf_version=7.0.6-neoforge-1.21 + loom.platform=neoforge \ No newline at end of file diff --git a/versions/1.21.10-fabric/gradle.properties b/versions/1.21.10-fabric/gradle.properties index ecfd4dd..71e7b68 100644 --- a/versions/1.21.10-fabric/gradle.properties +++ b/versions/1.21.10-fabric/gradle.properties @@ -9,4 +9,7 @@ deps.neoforge_loader=21.10.47-beta deps.fabric_version=0.138.0+1.21.10 deps.modmenu_version=16.0.0-rc.1 +jigsaws.emf_version=3.0.6-fabric-1.21.9 +jigsaws.etf_version=7.0.6-fabric-1.21.9 + loom.platform=fabric \ No newline at end of file diff --git a/versions/1.21.10-neoforge/gradle.properties b/versions/1.21.10-neoforge/gradle.properties index baf58ca..f037bb7 100644 --- a/versions/1.21.10-neoforge/gradle.properties +++ b/versions/1.21.10-neoforge/gradle.properties @@ -9,4 +9,7 @@ deps.neoforge_loader=21.10.47-beta deps.fabric_version=0.138.0+1.21.10 deps.modmenu_version=16.0.0-rc.1 +jigsaws.emf_version=3.0.6-neoforge-1.21.9 +jigsaws.etf_version=7.0.6-neoforge-1.21.9 + loom.platform=neoforge \ No newline at end of file diff --git a/versions/1.21.5-fabric/gradle.properties b/versions/1.21.5-fabric/gradle.properties index 7e266b9..740f55e 100644 --- a/versions/1.21.5-fabric/gradle.properties +++ b/versions/1.21.5-fabric/gradle.properties @@ -9,4 +9,7 @@ deps.neoforge_loader=21.4.47-beta deps.fabric_version=0.121.0+1.21.5 deps.modmenu_version=14.0.0-rc.1 +jigsaws.emf_version=3.0.6-fabric-1.21.5 +jigsaws.etf_version=7.0.6-fabric-1.21.5 + loom.platform=fabric \ No newline at end of file diff --git a/versions/1.21.5-neoforge/gradle.properties b/versions/1.21.5-neoforge/gradle.properties index e36ac2e..69ae822 100644 --- a/versions/1.21.5-neoforge/gradle.properties +++ b/versions/1.21.5-neoforge/gradle.properties @@ -9,4 +9,7 @@ deps.neoforge_loader=21.5.54-beta deps.fabric_version=0.121.0+1.21.5 deps.modmenu_version=[UNSUPPORTED] +jigsaws.emf_version=3.0.6-neoforge-1.21.5 +jigsaws.etf_version=7.0.6-neoforge-1.21.5 + loom.platform=neoforge \ No newline at end of file diff --git a/versions/1.21.8-fabric/gradle.properties b/versions/1.21.8-fabric/gradle.properties index 0da1f37..74f78ca 100644 --- a/versions/1.21.8-fabric/gradle.properties +++ b/versions/1.21.8-fabric/gradle.properties @@ -9,4 +9,7 @@ deps.neoforge_loader=21.8.50 deps.fabric_version=0.136.0+1.21.8 deps.modmenu_version=15.0.0 +jigsaws.emf_version=3.0.6-fabric-1.21.6 +jigsaws.etf_version=7.0.6-fabric-1.21.6 + loom.platform=fabric \ No newline at end of file diff --git a/versions/1.21.8-neoforge/gradle.properties b/versions/1.21.8-neoforge/gradle.properties index 0e4c559..bf48db2 100644 --- a/versions/1.21.8-neoforge/gradle.properties +++ b/versions/1.21.8-neoforge/gradle.properties @@ -9,4 +9,7 @@ deps.neoforge_loader=21.8.50 deps.fabric_version=0.136.0+1.21.8 deps.modmenu_version=[UNSUPPORTED] +jigsaws.emf_version=3.0.6-neoforge-1.21.6 +jigsaws.etf_version=7.0.6-neoforge-1.21.6 + loom.platform=neoforge \ No newline at end of file