aboutsummaryrefslogtreecommitdiff
path: root/src/main/java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java')
-rw-r--r--src/main/java/de/hysky/skyblocker/mixins/InGameHudMixin.java22
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/tabhud/screenbuilder/ScreenMaster.java18
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/tabhud/widget/ComponentBasedWidget.java2
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);