aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/de/hysky/skyblocker/skyblock/dungeon
diff options
context:
space:
mode:
authorAaron <51387595+AzureAaron@users.noreply.github.com>2024-02-18 02:40:37 -0500
committerAaron <51387595+AzureAaron@users.noreply.github.com>2024-04-26 16:23:20 -0400
commitcc00542e78fd87e0b554ab2a74d1cb193feabbb2 (patch)
treea02114dd55cc719fd67c33396f7c30c870d28c21 /src/main/java/de/hysky/skyblocker/skyblock/dungeon
parent4f4d3f480d75293a2f19f799423a282a4f03b421 (diff)
downloadSkyblocker-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/de/hysky/skyblocker/skyblock/dungeon')
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/dungeon/DungeonMap.java13
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/dungeon/DungeonScoreHUD.java16
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/dungeon/FireFreezeStaffTimer.java4
3 files changed, 26 insertions, 7 deletions
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());
}