From a17536e5af8604cbee279c8e21aa87d40c40cc66 Mon Sep 17 00:00:00 2001 From: Martin Prokoph Date: Sat, 3 May 2025 14:30:26 +0200 Subject: [PATCH] feat: improve config screen --- .../picturesign/config/PictureSignConfig.java | 50 ++++++++++++++++--- .../assets/picturesign/lang/de_de.json | 10 +++- .../assets/picturesign/lang/en_us.json | 19 ++++--- 3 files changed, 64 insertions(+), 15 deletions(-) diff --git a/common/src/main/java/eu/midnightdust/picturesign/config/PictureSignConfig.java b/common/src/main/java/eu/midnightdust/picturesign/config/PictureSignConfig.java index dacad34..19935a9 100755 --- a/common/src/main/java/eu/midnightdust/picturesign/config/PictureSignConfig.java +++ b/common/src/main/java/eu/midnightdust/picturesign/config/PictureSignConfig.java @@ -2,6 +2,7 @@ package eu.midnightdust.picturesign.config; import com.google.common.collect.Lists; import eu.midnightdust.lib.config.MidnightConfig; +import eu.midnightdust.lib.util.PlatformFunctions; import net.minecraft.client.gl.ShaderProgramKey; import net.minecraft.client.gl.ShaderProgramKeys; import net.minecraft.client.texture.TextureManager; @@ -16,24 +17,53 @@ public class PictureSignConfig extends MidnightConfig { private static final String GENERAL = "general"; private static final String ADVANCED = "advanced"; + private static final String EBE_MODID = "enhancedblockentities"; + private static final String WM_MODID = "watermedia"; + private static final String IRIS_MODID = "iris"; + + @Comment(centered = true, category = GENERAL) public static Comment _features; @Entry(category = GENERAL) public static boolean enabled = true; + @Condition(requiredModId = WM_MODID) @Entry(category = GENERAL) public static boolean enableMultimediaSigns = true; - @Entry(min = 0, max = 1000, isSlider = true, category = GENERAL) public static int audioDistanceMultiplier = 30; + @Condition(requiredOption = "isWMLoaded", requiredValue = "false") + @Comment(category = GENERAL, centered = true) public static Comment wmNotice; + + @Comment(centered = true, category = GENERAL) public static Comment _behaviour; + @Entry(category = GENERAL) public static boolean helperUi = true; + @Condition(requiredOption = "helperUi", visibleButLocked = true) + @Entry(category = GENERAL) public static boolean exceedVanillaLineLength = true; @Entry(category = GENERAL) public static boolean translucency = false; @Entry(category = GENERAL) public static boolean fullBrightPicture = false; - @Entry(category = GENERAL) public static boolean helperUi = true; - @Entry(category = GENERAL) public static boolean exceedVanillaLineLength = true; + @Entry(min = 0, max = 2048, isSlider = true, category = GENERAL) public static int signRenderDistance = 64; + @Condition(requiredModId = WM_MODID) + @Entry(min = 0, max = 1000, isSlider = true, category = GENERAL) public static int audioDistanceMultiplier = 30; + @Condition(requiredModId = EBE_MODID) + @Comment(category = GENERAL) public static Comment ebeWarning; + + @Comment(centered = true, category = ADVANCED) public static Comment _workarounds; + @Entry(category = ADVANCED) public static MissingImageMode missingImageMode = MissingImageMode.BLACK; + @Condition(requiredModId = IRIS_MODID) + @Entry(category = ADVANCED) public static PictureShader pictureShader = PictureShader.PosColTexLight; + + @Comment(centered = true, category = ADVANCED) public static Comment _misc; @Entry(category = ADVANCED) public static boolean debug = false; @Entry(min = 1, max = 10, isSlider = true, category = ADVANCED) public static int maxThreads = 4; - @Entry(min = 0, max = 2048, isSlider = true, category = GENERAL) public static int signRenderDistance = 64; + + @Comment(centered = true, category = ADVANCED) public static Comment _security; @Entry(category = ADVANCED) public static boolean safeMode = true; + @Condition(requiredOption = "safeMode") @Entry(category = ADVANCED) public static List safeProviders = Lists.newArrayList("https://i.imgur.com/", "https://i.ibb.co/", "https://pictshare.net/", "https://iili.io/"); + @Condition(requiredModId = WM_MODID) + @Condition(requiredOption = "safeMode") @Entry(category = ADVANCED) public static List safeGifProviders = Lists.newArrayList("https://i.imgur.com/", "https://media1.tenor.com/"); + @Condition(requiredModId = WM_MODID) + @Condition(requiredOption = "safeMode") @Entry(category = ADVANCED) public static List safeMultimediaProviders = Lists.newArrayList("https://youtube.com/", "https://www.youtube.com/", "https://youtu.be/","https://vimeo.com/"); + @Condition(requiredOption = "safeMode") @Entry(category = ADVANCED) public static List safeJsonProviders = Lists.newArrayList("https://github.com/", "https://gist.github.com/", "https://www.jsonkeeper.com/", "https://api.npoint.io/", "https://api.jsonsilo.com/"); - @Comment(category = GENERAL) @Condition(requiredModId = "enhancedblockentities") public static Comment ebeWarning; - @Entry(category = ADVANCED) public static MissingImageMode missingImageMode = MissingImageMode.BLACK; - @Entry(category = ADVANCED) public static PictureShader pictureShader = PictureShader.PosColTexLight; + + @Condition(requiredModId = "thismodhopefullydoesntexistwejustneedtohidetheentrywhilekeepingitaccessible") + @Entry(category = GENERAL) public static boolean isWMLoaded = PlatformFunctions.isModLoaded(WM_MODID); public enum MissingImageMode { BLACK(id("textures/black.png")), @@ -56,4 +86,10 @@ public class PictureSignConfig extends MidnightConfig { } public final ShaderProgramKey program; } + + public static void init(String modid, Class config) { + MidnightConfig.init(modid, config); + isWMLoaded = PlatformFunctions.isModLoaded(WM_MODID); + PictureSignConfig.write(modid); + } } diff --git a/common/src/main/resources/assets/picturesign/lang/de_de.json b/common/src/main/resources/assets/picturesign/lang/de_de.json index b028a28..b3f0921 100755 --- a/common/src/main/resources/assets/picturesign/lang/de_de.json +++ b/common/src/main/resources/assets/picturesign/lang/de_de.json @@ -13,7 +13,6 @@ "picturesign.midnightconfig.signRenderDistance":"Schildsichtweite", "picturesign.midnightconfig.safeMode":"Sicherer Modus", "picturesign.midnightconfig.safeMode.tooltip":"Lädt nur Bilder von vertrauten Seiten", - "picturesign.midnightconfig.ebeWarning":"§cDu benutzt die Mod 'Enhanced Block Entities' – stelle sicher, dass du alles in Relation zu Schildern in der EBE Config deaktiviert hast!", "picturesign.midnightconfig.safeProviders":"Sichere Bildanbieter", "picturesign.midnightconfig.safeGifProviders":"Sichere GIF-Anbieter", "picturesign.midnightconfig.safeMultimediaProviders":"Sichere Multimedia-Anbieter", @@ -22,9 +21,16 @@ "picturesign.midnightconfig.enum.MissingImageMode.BLACK":"Schwarz", "picturesign.midnightconfig.enum.MissingImageMode.MISSING_TEXTURE":"Schwarz & Lila", "picturesign.midnightconfig.enum.MissingImageMode.TRANSPARENT":"Transparent", + "picturesign.midnightconfig.ebeWarning": "§cDu benutzt die Mod 'Enhanced Block Entities' – stelle sicher, dass du alles in Relation zu Schildern in der EBE Config deaktiviert hast!", + "picturesign.midnightconfig.wmNotice":"§5Um Video/Audio abzuspielen, installiere die WATERMeDIA mod und VLC Media Player", + "picturesign.midnightconfig._features": "§7\uD83E\uDEA7 Funktionen", + "picturesign.midnightconfig._behaviour": "§7\uD83D\uDDBC Verhalten", + "picturesign.midnightconfig._workarounds": "§7\uD83D\uDD27 Problemumgehung", + "picturesign.midnightconfig._misc": "§7\uD83D\uDCD0 Verschiedenes", + "picturesign.midnightconfig._security": "§7\uD83D\uDD10 Sicherheit", "key.picturesign.copy_sign": "Text eines Schildes kopieren", - "key.picturesign.edit_sign":"Schild bearbeiten", + "key.picturesign.edit_sign": "Schild bearbeiten", "picturesign.midnightconfig.category.general": "Generell", "picturesign.midnightconfig.category.advanced": "Fortgeschritten", diff --git a/common/src/main/resources/assets/picturesign/lang/en_us.json b/common/src/main/resources/assets/picturesign/lang/en_us.json index ee3f087..7ebaac8 100755 --- a/common/src/main/resources/assets/picturesign/lang/en_us.json +++ b/common/src/main/resources/assets/picturesign/lang/en_us.json @@ -11,13 +11,12 @@ "picturesign.midnightconfig.fullBrightPicture":"Full-bright Pictures", "picturesign.midnightconfig.fullBrightPicture.tooltip":"Makes pictures always appear fully lit", "picturesign.midnightconfig.helperUi":"Enable Helper UI", - "picturesign.midnightconfig.exceedVanillaLineLength":"Exceed vanilla line length", - "picturesign.midnightconfig.debug":"Debug mode", - "picturesign.midnightconfig.maxThreads":"Max download threads", - "picturesign.midnightconfig.signRenderDistance":"Sign render distance", - "picturesign.midnightconfig.safeMode":"Safe mode", + "picturesign.midnightconfig.exceedVanillaLineLength":"Exceed Vanilla Line Length", + "picturesign.midnightconfig.debug":"Debug Mode", + "picturesign.midnightconfig.maxThreads":"Max Download Threads", + "picturesign.midnightconfig.signRenderDistance":"Sign Render Distance", + "picturesign.midnightconfig.safeMode":"Safe Mode", "picturesign.midnightconfig.safeMode.tooltip":"Only load images from trusted providers", - "picturesign.midnightconfig.ebeWarning":"§cYou are using the mod 'Enhanced Block Entities' – make sure to disable anything sign-related in it's config!", "picturesign.midnightconfig.safeProviders":"Safe Image Providers", "picturesign.midnightconfig.safeGifProviders":"Safe GIF Providers", "picturesign.midnightconfig.safeMultimediaProviders":"Safe Multimedia Providers", @@ -33,6 +32,14 @@ "picturesign.midnightconfig.enum.PictureShader.PosTex":"PosTex", "picturesign.midnightconfig.enum.PictureShader.PosColTex":"PosColTex", "picturesign.midnightconfig.enum.PictureShader.PosTexCol":"PosTexCol", + "picturesign.midnightconfig.ebeWarning":"§cYou are using the mod 'Enhanced Block Entities' – make sure to disable anything sign-related in it's config!", + "picturesign.midnightconfig.wmNotice":"§5To enable multimedia support, install the WATERMeDIA mod and VLC Media Player", + "picturesign.midnightconfig._features": "§7\uD83E\uDEA7 Features", + "picturesign.midnightconfig._behaviour": "§7\uD83D\uDDBC Behaviour", + "picturesign.midnightconfig._workarounds": "§7\uD83D\uDD27 Workarounds", + "picturesign.midnightconfig._misc": "§7\uD83D\uDCD0 Miscellaneous", + "picturesign.midnightconfig._security": "§7\uD83D\uDD10 Security", + "key.picturesign.copy_sign":"Copy Text from Sign", "key.picturesign.edit_sign":"Edit Sign", "key.categories.picturesign":"PictureSign",