From 3338c6c8d2df0d17f6b5461a9a371f8f86348502 Mon Sep 17 00:00:00 2001 From: DreamYao520 <123301307+DreamYao520@users.noreply.github.com> Date: Sun, 4 Oct 2026 06:21:35 +0800 Subject: [PATCH] Add a default-enabled option for grouped F3 panels --- .../com/gtnewhorizons/angelica/config/AngelicaConfig.java | 4 ++++ .../mods/sodium/client/gui/SodiumGameOptionPages.java | 6 ++++++ src/main/resources/assets/angelica/lang/en_US.lang | 2 ++ src/main/resources/assets/angelica/lang/zh_CN.lang | 2 ++ .../early/angelica/gui/MixinGuiIngameForge_ModernF3.java | 2 +- 5 files changed, 15 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/gtnewhorizons/angelica/config/AngelicaConfig.java b/src/main/java/com/gtnewhorizons/angelica/config/AngelicaConfig.java index fb80eae85..6d73e9565 100644 --- a/src/main/java/com/gtnewhorizons/angelica/config/AngelicaConfig.java +++ b/src/main/java/com/gtnewhorizons/angelica/config/AngelicaConfig.java @@ -116,6 +116,10 @@ public class AngelicaConfig { @Config.DefaultBoolean(true) public static boolean modernizeF3Screen; + @Config.Comment("Group F3 debug information into labeled panels.") + @Config.DefaultBoolean(true) + public static boolean enableGroupedF3; + @Config.Comment("Show block registry name and meta value in F3, similar to 1.8+. [From ArchaicFix]") @Config.DefaultBoolean(true) public static boolean showBlockDebugInfo; diff --git a/src/main/java/me/jellysquid/mods/sodium/client/gui/SodiumGameOptionPages.java b/src/main/java/me/jellysquid/mods/sodium/client/gui/SodiumGameOptionPages.java index ac6243983..8f849805e 100644 --- a/src/main/java/me/jellysquid/mods/sodium/client/gui/SodiumGameOptionPages.java +++ b/src/main/java/me/jellysquid/mods/sodium/client/gui/SodiumGameOptionPages.java @@ -812,6 +812,12 @@ public class SodiumGameOptionPages { groups.add(OptionGroup.createBuilder() .add(Settings.MODE_GUI_BACKGROUND.option) .add(Settings.GUI_BACKGROUND.option) + .add(OptionImpl.createBuilder(boolean.class, angelicaOpts) + .setName(I18n.format("options.angelica.groupedf3")) + .setTooltip(I18n.format("options.angelica.groupedf3.tooltip")) + .setControl(TickBoxControl::new) + .setBinding((opts, value) -> AngelicaConfig.enableGroupedF3 = value, opts -> AngelicaConfig.enableGroupedF3) + .build()) .add(OptionImpl.createBuilder(boolean.class, angelicaOpts) .setName(I18n.format("options.angelica.disablef3")) .setTooltip(I18n.format("options.angelica.disablef3.tooltip")) diff --git a/src/main/resources/assets/angelica/lang/en_US.lang b/src/main/resources/assets/angelica/lang/en_US.lang index be82578b0..197828ae0 100644 --- a/src/main/resources/assets/angelica/lang/en_US.lang +++ b/src/main/resources/assets/angelica/lang/en_US.lang @@ -344,6 +344,8 @@ sodium.options.use_render_pass_optimization.tooltip=Analyzes sprite transparency options.angelica.aggressiveChunkLoading=Aggressive Chunk Loading options.angelica.aggressiveChunkLoading.tooltip=Renders chunks immediately when loaded, even if neighbors aren't ready yet. Improves perceived loading speed at render distance edges. Chunks rebuild automatically when neighbors load. Useful for low render distance servers. +options.angelica.groupedf3=Grouped F3 Screen +options.angelica.groupedf3.tooltip=Show grouped panels on the F3 debug screen. options.angelica.disablef3=Disable F3 Additions options.angelica.disablef3.tooltip=Disables Angelica's additions to the F3 debug screen. options.angelica.verbosef3=Verbose F3 diff --git a/src/main/resources/assets/angelica/lang/zh_CN.lang b/src/main/resources/assets/angelica/lang/zh_CN.lang index 0fa08f210..48a468932 100644 --- a/src/main/resources/assets/angelica/lang/zh_CN.lang +++ b/src/main/resources/assets/angelica/lang/zh_CN.lang @@ -224,6 +224,8 @@ sodium.options.use_render_pass_optimization.tooltip=分析贴图透明度,当 options.angelica.aggressiveChunkLoading=更激进地区块加载 options.angelica.aggressiveChunkLoading.tooltip=区块加载后立即渲染,即使相邻区块尚未加载完毕。将提升最大渲染距离处区块的加载速度。在相邻区块加载后会自动重建。适用于渲染距离较低的服务器。 +options.angelica.groupedf3=启用 F3 分组界面 +options.angelica.groupedf3.tooltip=将 F3 调试信息按类别分组显示。 options.angelica.disablef3=禁用F3附加信息显示 options.angelica.disablef3.tooltip=禁用Angelica在F3调试界面的附加信息。 diff --git a/src/mixin/java/com/gtnewhorizons/angelica/mixins/early/angelica/gui/MixinGuiIngameForge_ModernF3.java b/src/mixin/java/com/gtnewhorizons/angelica/mixins/early/angelica/gui/MixinGuiIngameForge_ModernF3.java index 6137a2570..dbe5bf87e 100644 --- a/src/mixin/java/com/gtnewhorizons/angelica/mixins/early/angelica/gui/MixinGuiIngameForge_ModernF3.java +++ b/src/mixin/java/com/gtnewhorizons/angelica/mixins/early/angelica/gui/MixinGuiIngameForge_ModernF3.java @@ -44,7 +44,7 @@ public class MixinGuiIngameForge_ModernF3 { @Local(argsOnly = true, ordinal = 0) int width, @Local(argsOnly = true, ordinal = 1) int height) { final boolean canceled = original.call(bus, event); final Minecraft mc = Minecraft.getMinecraft(); - if (canceled || !AngelicaConfig.modernizeF3Screen || !mc.gameSettings.showDebugInfo + if (canceled || !AngelicaConfig.modernizeF3Screen || !AngelicaConfig.enableGroupedF3 || !mc.gameSettings.showDebugInfo || !(event instanceof RenderGameOverlayEvent.Text text) || text.left.isEmpty()) return canceled; final int columnWidth = Math.max(20, (width - 16) / 2);