diff options
author | Aaron <51387595+AzureAaron@users.noreply.github.com> | 2024-02-18 02:40:37 -0500 |
---|---|---|
committer | Aaron <51387595+AzureAaron@users.noreply.github.com> | 2024-04-26 16:23:20 -0400 |
commit | cc00542e78fd87e0b554ab2a74d1cb193feabbb2 (patch) | |
tree | a02114dd55cc719fd67c33396f7c30c870d28c21 /src/main/java | |
parent | 4f4d3f480d75293a2f19f799423a282a4f03b421 (diff) | |
download | Skyblocker-cc00542e78fd87e0b554ab2a74d1cb193feabbb2.tar.gz Skyblocker-cc00542e78fd87e0b554ab2a74d1cb193feabbb2.tar.bz2 Skyblocker-cc00542e78fd87e0b554ab2a74d1cb193feabbb2.zip |
Migrate to HudRenderEvents
The Dwarven HUD & End HUD will be moved later due to the tab hud doing
stuff with the z value.
Diffstat (limited to 'src/main/java')
7 files changed, 33 insertions, 22 deletions
diff --git a/src/main/java/de/hysky/skyblocker/SkyblockerMod.java b/src/main/java/de/hysky/skyblocker/SkyblockerMod.java index e0815eee..3336cefb 100644 --- a/src/main/java/de/hysky/skyblocker/SkyblockerMod.java +++ b/src/main/java/de/hysky/skyblocker/SkyblockerMod.java @@ -136,6 +136,7 @@ public class SkyblockerMod implements ClientModInitializer { LividColor.init(); FishingHelper.init(); DungeonMap.init(); + DungeonScoreHUD.init(); DungeonManager.init(); DungeonBlaze.init(); Waterboard.init(); diff --git a/src/main/java/de/hysky/skyblocker/mixin/InGameHudMixin.java b/src/main/java/de/hysky/skyblocker/mixin/InGameHudMixin.java index 3dff4d6f..b71ee8c4 100644 --- a/src/main/java/de/hysky/skyblocker/mixin/InGameHudMixin.java +++ b/src/main/java/de/hysky/skyblocker/mixin/InGameHudMixin.java @@ -8,10 +8,6 @@ import de.hysky.skyblocker.config.SkyblockerConfigManager; import de.hysky.skyblocker.skyblock.fancybars.FancyStatusBars; import de.hysky.skyblocker.events.HudRenderEvents; import de.hysky.skyblocker.mixin.accessor.LayeredDrawerAccessor; -import de.hysky.skyblocker.skyblock.dungeon.DungeonMap; -import de.hysky.skyblocker.skyblock.dungeon.DungeonScore; -import de.hysky.skyblocker.skyblock.dungeon.DungeonScoreHUD; -import de.hysky.skyblocker.skyblock.dungeon.secrets.DungeonManager; import de.hysky.skyblocker.skyblock.item.HotbarSlotLock; import de.hysky.skyblocker.skyblock.item.ItemCooldowns; import de.hysky.skyblocker.skyblock.item.ItemProtection; @@ -94,11 +90,6 @@ public abstract class InGameHudMixin { return; if (statusBars.render(context, context.getScaledWindowWidth(), context.getScaledWindowHeight())) ci.cancel(); - - if (Utils.isInDungeons() && DungeonScore.isDungeonStarted()) { - if (SkyblockerConfigManager.get().locations.dungeons.enableMap && !DungeonManager.isInBoss()) DungeonMap.render(context.getMatrices()); - if (SkyblockerConfigManager.get().locations.dungeons.dungeonScore.enableScoreHUD) DungeonScoreHUD.render(context); - } } @Inject(method = "renderMountHealth", at = @At("HEAD"), cancellable = true) diff --git a/src/main/java/de/hysky/skyblocker/skyblock/dungeon/DungeonMap.java b/src/main/java/de/hysky/skyblocker/skyblock/dungeon/DungeonMap.java index f2986ec0..878b7a35 100644 --- a/src/main/java/de/hysky/skyblocker/skyblock/dungeon/DungeonMap.java +++ b/src/main/java/de/hysky/skyblocker/skyblock/dungeon/DungeonMap.java @@ -1,11 +1,15 @@ package de.hysky.skyblocker.skyblock.dungeon; import de.hysky.skyblocker.config.SkyblockerConfigManager; +import de.hysky.skyblocker.events.HudRenderEvents; +import de.hysky.skyblocker.skyblock.dungeon.secrets.DungeonManager; +import de.hysky.skyblocker.utils.Utils; import de.hysky.skyblocker.utils.scheduler.Scheduler; import net.fabricmc.fabric.api.client.command.v2.ClientCommandManager; import net.fabricmc.fabric.api.client.command.v2.ClientCommandRegistrationCallback; import net.fabricmc.fabric.api.client.networking.v1.ClientPlayConnectionEvents; import net.minecraft.client.MinecraftClient; +import net.minecraft.client.gui.DrawContext; import net.minecraft.client.render.LightmapTextureManager; import net.minecraft.client.render.MapRenderer; import net.minecraft.client.render.VertexConsumerProvider; @@ -20,6 +24,7 @@ public class DungeonMap { private static Integer cachedMapId = null; public static void init() { + HudRenderEvents.AFTER_MAIN_HUD.register((context, tickDelta) -> render(context)); ClientCommandRegistrationCallback.EVENT.register((dispatcher, registryAccess) -> dispatcher.register(ClientCommandManager.literal("skyblocker") .then(ClientCommandManager.literal("hud") .then(ClientCommandManager.literal("dungeon") @@ -30,7 +35,7 @@ public class DungeonMap { ClientPlayConnectionEvents.JOIN.register((handler, sender, client) -> reset()); } - public static void render(MatrixStack matrices) { + private static void render(MatrixStack matrices) { MinecraftClient client = MinecraftClient.getInstance(); if (client.player == null || client.world == null) return; @@ -62,6 +67,12 @@ public class DungeonMap { } else return cachedMapId != null ? cachedMapId : DEFAULT_MAP_ID; } + private static void render(DrawContext context) { + if (Utils.isInDungeons() && DungeonScore.isDungeonStarted() && !DungeonManager.isInBoss() && SkyblockerConfigManager.get().locations.dungeons.enableMap) { + render(context.getMatrices()); + } + } + private static void reset() { cachedMapId = null; } diff --git a/src/main/java/de/hysky/skyblocker/skyblock/dungeon/DungeonScoreHUD.java b/src/main/java/de/hysky/skyblocker/skyblock/dungeon/DungeonScoreHUD.java index 1dfb1b95..8d402172 100644 --- a/src/main/java/de/hysky/skyblocker/skyblock/dungeon/DungeonScoreHUD.java +++ b/src/main/java/de/hysky/skyblocker/skyblock/dungeon/DungeonScoreHUD.java @@ -1,6 +1,8 @@ package de.hysky.skyblocker.skyblock.dungeon; import de.hysky.skyblocker.config.SkyblockerConfigManager; +import de.hysky.skyblocker.events.HudRenderEvents; +import de.hysky.skyblocker.utils.Utils; import net.minecraft.client.MinecraftClient; import net.minecraft.client.gui.DrawContext; import net.minecraft.client.util.math.MatrixStack; @@ -11,13 +13,19 @@ public class DungeonScoreHUD { private DungeonScoreHUD() { } + public static void init() { + HudRenderEvents.AFTER_MAIN_HUD.register((context, tickDelta) -> render(context)); + } + //This is 4+5 wide, needed to offset the extra width from bold numbers (3×1 wide) in S+ and the "+" (6 wide) so that it doesn't go off the screen if the score is S+ and the hud element is at the right edge of the screen private static final Text extraSpace = Text.literal(" ").append(Text.literal(" ").formatted(Formatting.BOLD)); - public static void render(DrawContext context) { - int x = SkyblockerConfigManager.get().locations.dungeons.dungeonScore.scoreX; - int y = SkyblockerConfigManager.get().locations.dungeons.dungeonScore.scoreY; - render(context, x, y); + private static void render(DrawContext context) { + if (Utils.isInDungeons() && DungeonScore.isDungeonStarted() && SkyblockerConfigManager.get().locations.dungeons.dungeonScore.enableScoreHUD) { + int x = SkyblockerConfigManager.get().locations.dungeons.dungeonScore.scoreX; + int y = SkyblockerConfigManager.get().locations.dungeons.dungeonScore.scoreY; + render(context, x, y); + } } public static void render(DrawContext context, int x, int y) { diff --git a/src/main/java/de/hysky/skyblocker/skyblock/dungeon/FireFreezeStaffTimer.java b/src/main/java/de/hysky/skyblocker/skyblock/dungeon/FireFreezeStaffTimer.java index e5d4f078..7c0aab4c 100644 --- a/src/main/java/de/hysky/skyblocker/skyblock/dungeon/FireFreezeStaffTimer.java +++ b/src/main/java/de/hysky/skyblocker/skyblock/dungeon/FireFreezeStaffTimer.java @@ -1,9 +1,9 @@ package de.hysky.skyblocker.skyblock.dungeon; import de.hysky.skyblocker.config.SkyblockerConfigManager; +import de.hysky.skyblocker.events.HudRenderEvents; import net.fabricmc.fabric.api.client.message.v1.ClientReceiveMessageEvents; import net.fabricmc.fabric.api.client.networking.v1.ClientPlayConnectionEvents; -import net.fabricmc.fabric.api.client.rendering.v1.HudRenderCallback; import net.minecraft.client.MinecraftClient; import net.minecraft.client.font.TextRenderer; import net.minecraft.client.gui.DrawContext; @@ -14,7 +14,7 @@ public class FireFreezeStaffTimer { private static long fireFreezeTimer; public static void init() { - HudRenderCallback.EVENT.register(FireFreezeStaffTimer::onDraw); + HudRenderEvents.BEFORE_CHAT.register(FireFreezeStaffTimer::onDraw); ClientReceiveMessageEvents.GAME.register(FireFreezeStaffTimer::onChatMessage); ClientPlayConnectionEvents.JOIN.register((handler, sender, client) -> FireFreezeStaffTimer.reset()); } diff --git a/src/main/java/de/hysky/skyblocker/skyblock/dwarven/CrystalsHud.java b/src/main/java/de/hysky/skyblocker/skyblock/dwarven/CrystalsHud.java index 79e81ad0..8d5a6313 100644 --- a/src/main/java/de/hysky/skyblocker/skyblock/dwarven/CrystalsHud.java +++ b/src/main/java/de/hysky/skyblocker/skyblock/dwarven/CrystalsHud.java @@ -2,11 +2,11 @@ package de.hysky.skyblocker.skyblock.dwarven; import de.hysky.skyblocker.SkyblockerMod; import de.hysky.skyblocker.config.SkyblockerConfigManager; +import de.hysky.skyblocker.events.HudRenderEvents; import de.hysky.skyblocker.utils.Utils; import de.hysky.skyblocker.utils.scheduler.Scheduler; import net.fabricmc.fabric.api.client.command.v2.ClientCommandManager; import net.fabricmc.fabric.api.client.command.v2.ClientCommandRegistrationCallback; -import net.fabricmc.fabric.api.client.rendering.v1.HudRenderCallback; import net.minecraft.client.MinecraftClient; import net.minecraft.client.gui.DrawContext; import net.minecraft.client.util.math.MatrixStack; @@ -34,7 +34,7 @@ public class CrystalsHud { .then(ClientCommandManager.literal("crystals") .executes(Scheduler.queueOpenScreenCommand(CrystalsHudConfigScreen::new)))))); - HudRenderCallback.EVENT.register((context, tickDelta) -> { + HudRenderEvents.BEFORE_CHAT.register((context, tickDelta) -> { if (!SkyblockerConfigManager.get().locations.dwarvenMines.crystalsHud.enabled || CLIENT.player == null || !visible) { @@ -65,7 +65,7 @@ public class CrystalsHud { //and set position and scale MatrixStack matrices = context.getMatrices(); matrices.push(); - matrices.translate(hudX, hudY, 200f); + matrices.translate(hudX, hudY, 0f); matrices.scale(scale, scale, 0f); //draw map texture diff --git a/src/main/java/de/hysky/skyblocker/utils/render/title/TitleContainer.java b/src/main/java/de/hysky/skyblocker/utils/render/title/TitleContainer.java index 487e3d8b..a115bb2b 100644 --- a/src/main/java/de/hysky/skyblocker/utils/render/title/TitleContainer.java +++ b/src/main/java/de/hysky/skyblocker/utils/render/title/TitleContainer.java @@ -2,10 +2,10 @@ package de.hysky.skyblocker.utils.render.title; import de.hysky.skyblocker.config.SkyblockerConfig; import de.hysky.skyblocker.config.SkyblockerConfigManager; +import de.hysky.skyblocker.events.HudRenderEvents; import de.hysky.skyblocker.utils.scheduler.Scheduler; import net.fabricmc.fabric.api.client.command.v2.ClientCommandManager; import net.fabricmc.fabric.api.client.command.v2.ClientCommandRegistrationCallback; -import net.fabricmc.fabric.api.client.rendering.v1.HudRenderCallback; import net.minecraft.client.MinecraftClient; import net.minecraft.client.font.TextRenderer; import net.minecraft.client.gui.DrawContext; @@ -26,7 +26,7 @@ public class TitleContainer { private static final Set<Title> titles = new LinkedHashSet<>(); public static void init() { - HudRenderCallback.EVENT.register(TitleContainer::render); + HudRenderEvents.BEFORE_CHAT.register(TitleContainer::render); ClientCommandRegistrationCallback.EVENT.register((dispatcher, registryAccess) -> dispatcher.register(ClientCommandManager.literal("skyblocker") .then(ClientCommandManager.literal("hud") .then(ClientCommandManager.literal("titleContainer") @@ -148,7 +148,7 @@ public class TitleContainer { //Translate the matrix to the texts position and scale context.getMatrices().push(); - context.getMatrices().translate(title.x, title.y, 200); + context.getMatrices().translate(title.x, title.y, 0); context.getMatrices().scale(scale, scale, scale); //Draw text |