diff options
Diffstat (limited to 'src/main/java')
3 files changed, 28 insertions, 14 deletions
diff --git a/src/main/java/de/hysky/skyblocker/mixins/InGameHudMixin.java b/src/main/java/de/hysky/skyblocker/mixins/InGameHudMixin.java index 3adcd5fc..d8373119 100644 --- a/src/main/java/de/hysky/skyblocker/mixins/InGameHudMixin.java +++ b/src/main/java/de/hysky/skyblocker/mixins/InGameHudMixin.java @@ -168,9 +168,25 @@ public abstract class InGameHudMixin { this.layeredDrawer.addLayer(HudRenderEvents.LAST.invoker()::onRender); } - // TODO switch to fabric event when available - @Inject(method = "renderPlayerList", at = @At("HEAD")) + // Renders the hud (always on screen) widgets. + // Inject before the debug hud, this injection point is identical to the after main hud event + // z = 200 + // TODO: Switch to fabric event when available + // TODO: The after sleep/before demo timer injection point gives z = 1600, + // and due to the z offset that comes with item rendering, it still renders above the debug hud + @Inject(method = "renderMainHud", at = @At("RETURN")) private void skyblocker$renderHud(CallbackInfo ci, @Local(argsOnly = true) DrawContext context) { + skyblocker$renderTabHudInternal(context, true); + } + + // Renders the tab widgets + // TODO: Switch to fabric event when available + @Inject(method = "renderPlayerList", at = @At("HEAD")) + private void skyblocker$renderTabHud(CallbackInfo ci, @Local(argsOnly = true) DrawContext context) { + skyblocker$renderTabHudInternal(context, false); + } + + private void skyblocker$renderTabHudInternal(DrawContext context, boolean hud) { if (!Utils.isOnSkyblock()) return; MinecraftClient client = MinecraftClient.getInstance(); @@ -180,7 +196,7 @@ public abstract class InGameHudMixin { MatrixStack matrices = context.getMatrices(); matrices.push(); matrices.scale(scale, scale, 1.F); - ScreenMaster.render(context, (int) (window.getScaledWidth() / scale), (int) (window.getScaledHeight() / scale)); + ScreenMaster.render(context, (int) (window.getScaledWidth() / scale), (int) (window.getScaledHeight() / scale), hud); matrices.pop(); } diff --git a/src/main/java/de/hysky/skyblocker/skyblock/tabhud/screenbuilder/ScreenMaster.java b/src/main/java/de/hysky/skyblocker/skyblock/tabhud/screenbuilder/ScreenMaster.java index 59b1bd38..c7929636 100644 --- a/src/main/java/de/hysky/skyblocker/skyblock/tabhud/screenbuilder/ScreenMaster.java +++ b/src/main/java/de/hysky/skyblocker/skyblock/tabhud/screenbuilder/ScreenMaster.java @@ -59,22 +59,22 @@ public class ScreenMaster { * Top level render method. * Calls the appropriate ScreenBuilder with the screen's dimensions * Called in PlayerListHudMixin + * + * @param hud true to only render the hud (always on screen) widgets, false to only render the tab widgets. */ - public static void render(DrawContext context, int w, int h) { + public static void render(DrawContext context, int w, int h, boolean hud) { MinecraftClient client = MinecraftClient.getInstance(); - ScreenLayer screenLayer; + ScreenBuilder screenBuilder = getScreenBuilder(Utils.getLocation()); if (client.options.playerListKey.isPressed()) { - if (TabHud.defaultTgl.isPressed()) return; + if (hud || TabHud.defaultTgl.isPressed()) return; if (TabHud.toggleSecondary.isPressed()) { - screenLayer = ScreenLayer.SECONDARY_TAB; + screenBuilder.run(context, w, h, ScreenLayer.SECONDARY_TAB); } else { - screenLayer = ScreenLayer.MAIN_TAB; + screenBuilder.run(context, w, h, ScreenLayer.MAIN_TAB); } - } else { - screenLayer = ScreenLayer.HUD; + } else if (hud) { + screenBuilder.run(context, w, h, ScreenLayer.HUD); } - - getScreenBuilder(Utils.getLocation()).run(context, w, h, screenLayer); } public static void loadConfig() { diff --git a/src/main/java/de/hysky/skyblocker/skyblock/tabhud/widget/ComponentBasedWidget.java b/src/main/java/de/hysky/skyblocker/skyblock/tabhud/widget/ComponentBasedWidget.java index b889fdbc..d5eb512b 100644 --- a/src/main/java/de/hysky/skyblocker/skyblock/tabhud/widget/ComponentBasedWidget.java +++ b/src/main/java/de/hysky/skyblocker/skyblock/tabhud/widget/ComponentBasedWidget.java @@ -108,8 +108,6 @@ public abstract class ComponentBasedWidget extends HudWidget { RenderSystem.enableDepthTest(); ms.push(); - // move above other UI elements - ms.translate(0, 0, 200); if (SkyblockerConfigManager.get().uiAndVisuals.tabHud.enableHudBackground) { GameOptions options = MinecraftClient.getInstance().options; int textBackgroundColor = options.getTextBackgroundColor(DEFAULT_COL_BG_BOX); |
