From 3322fd77aff903beeddad9db3e9f5f3b762fe38a Mon Sep 17 00:00:00 2001 From: samveerone-hue Date: Wed, 22 Jul 2026 13:59:56 +0100 Subject: [PATCH] Debug Screen Overlay Toggle --- .../sierra/greedy_meshing/client/GreedyConfigScreen.java | 5 +++++ .../mixin/client/DebugScreenOverlayMixin.java | 8 ++++---- src/main/java/hi/sierra/greedy_meshing/GreedyConfig.java | 6 ++++++ 3 files changed, 15 insertions(+), 4 deletions(-) diff --git a/src/client/java/hi/sierra/greedy_meshing/client/GreedyConfigScreen.java b/src/client/java/hi/sierra/greedy_meshing/client/GreedyConfigScreen.java index 5806768..1e59928 100644 --- a/src/client/java/hi/sierra/greedy_meshing/client/GreedyConfigScreen.java +++ b/src/client/java/hi/sierra/greedy_meshing/client/GreedyConfigScreen.java @@ -103,6 +103,11 @@ public static Screen create(Screen parent) { .setSaveConsumer(v -> draft.debugTrianglesHud = v) .build()); + general.addEntry(entries.startBooleanToggle(Component.literal("Debug Screen Overlay"), draft.debugScreenOverlay) + .setDefaultValue(true) + .setSaveConsumer(v -> draft.debugScreenOverlay = v) + .build()); + general.addEntry(entries.startFloatField(Component.literal("Mesh Opacity"), draft.meshOpacity) .setDefaultValue(0.35f) .setMin(0.0f) diff --git a/src/client/java/hi/sierra/greedy_meshing/mixin/client/DebugScreenOverlayMixin.java b/src/client/java/hi/sierra/greedy_meshing/mixin/client/DebugScreenOverlayMixin.java index dfb7d26..3835943 100644 --- a/src/client/java/hi/sierra/greedy_meshing/mixin/client/DebugScreenOverlayMixin.java +++ b/src/client/java/hi/sierra/greedy_meshing/mixin/client/DebugScreenOverlayMixin.java @@ -34,7 +34,7 @@ private static Identifier register(Identifier id, DebugScreenEntry entry) { register(Identifier.fromNamespaceAndPath("greedy_meshing", "stats"), new DebugScreenEntry() { @Override public void display(DebugScreenDisplayer displayer, Level level, LevelChunk clientChunk, LevelChunk serverChunk) { - if (!GreedyConfig.enabled()) return; + if (!GreedyConfig.enabled() || !GreedyConfig.debugScreenOverlay()) return; GreedyPerformanceStats.Snapshot stats = GreedyPerformanceStats.snapshot(); boolean active = GreedyRuntimeState.isRuntimeGreedyActive(); @@ -94,7 +94,7 @@ private static ResourceLocation register(ResourceLocation id, DebugScreenEntry e register(ResourceLocation.fromNamespaceAndPath("greedy_meshing", "stats"), new DebugScreenEntry() { @Override public void display(DebugScreenDisplayer displayer, Level level, LevelChunk clientChunk, LevelChunk serverChunk) { - if (!GreedyConfig.enabled()) return; + if (!GreedyConfig.enabled() || !GreedyConfig.debugScreenOverlay()) return; GreedyPerformanceStats.Snapshot stats = GreedyPerformanceStats.snapshot(); boolean active = GreedyRuntimeState.isRuntimeGreedyActive(); @@ -157,7 +157,7 @@ public abstract class DebugScreenOverlayMixin { @Unique private static void greedyMeshing$addLines(List lines) { - if (!GreedyConfig.enabled()) return; + if (!GreedyConfig.enabled() || !GreedyConfig.debugScreenOverlay()) return; GreedyPerformanceStats.Snapshot stats = GreedyPerformanceStats.snapshot(); boolean active = GreedyRuntimeState.isRuntimeGreedyActive(); @@ -201,7 +201,7 @@ public abstract class DebugScreenOverlayMixin { @Inject(method = "getGameInformation", at = @At("RETURN"), require = 0) private void greedyMeshing$appendDebugInfo(CallbackInfoReturnable> cir) { - if (!GreedyConfig.enabled()) return; + if (!GreedyConfig.enabled() || !GreedyConfig.debugScreenOverlay()) return; List lines = cir.getReturnValue(); GreedyPerformanceStats.Snapshot stats = GreedyPerformanceStats.snapshot(); diff --git a/src/main/java/hi/sierra/greedy_meshing/GreedyConfig.java b/src/main/java/hi/sierra/greedy_meshing/GreedyConfig.java index 5481e8b..254d678 100644 --- a/src/main/java/hi/sierra/greedy_meshing/GreedyConfig.java +++ b/src/main/java/hi/sierra/greedy_meshing/GreedyConfig.java @@ -69,6 +69,10 @@ public static boolean debugTrianglesHud() { return data.debugTrianglesHud; } + public static boolean debugScreenOverlay() { + return data.debugScreenOverlay; + } + public static float meshOpacity() { return data.meshOpacity; } @@ -81,6 +85,7 @@ public static Data snapshot() { copy.debugWireframe = data.debugWireframe; copy.debugComparison = data.debugComparison; copy.debugTrianglesHud = data.debugTrianglesHud; + copy.debugScreenOverlay = data.debugScreenOverlay; copy.meshOpacity = data.meshOpacity; return copy; } @@ -106,6 +111,7 @@ public static final class Data { public boolean debugWireframe = false; public boolean debugComparison = false; public boolean debugTrianglesHud = false; + public boolean debugScreenOverlay = true; public float meshOpacity = 0.35f; public void clamp() { if (meshOpacity < 0.0f) {