aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/de/hysky/skyblocker/skyblock/dungeon/DungeonMap.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/de/hysky/skyblocker/skyblock/dungeon/DungeonMap.java')
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/dungeon/DungeonMap.java25
1 files changed, 13 insertions, 12 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 878b7a35..7a6cdcd0 100644
--- a/src/main/java/de/hysky/skyblocker/skyblock/dungeon/DungeonMap.java
+++ b/src/main/java/de/hysky/skyblocker/skyblock/dungeon/DungeonMap.java
@@ -14,14 +14,16 @@ import net.minecraft.client.render.LightmapTextureManager;
import net.minecraft.client.render.MapRenderer;
import net.minecraft.client.render.VertexConsumerProvider;
import net.minecraft.client.util.math.MatrixStack;
+import net.minecraft.component.DataComponentTypes;
+import net.minecraft.component.type.MapIdComponent;
import net.minecraft.item.FilledMapItem;
import net.minecraft.item.ItemStack;
import net.minecraft.item.Items;
import net.minecraft.item.map.MapState;
public class DungeonMap {
- private static final int DEFAULT_MAP_ID = 1024;
- private static Integer cachedMapId = null;
+ private static final MapIdComponent DEFAULT_MAP_ID_COMPONENT = new MapIdComponent(1024);
+ private static MapIdComponent cachedMapIdComponent = null;
public static void init() {
HudRenderEvents.AFTER_MAIN_HUD.register((context, tickDelta) -> render(context));
@@ -35,11 +37,11 @@ public class DungeonMap {
ClientPlayConnectionEvents.JOIN.register((handler, sender, client) -> reset());
}
- private static void render(MatrixStack matrices) {
+ public static void render(MatrixStack matrices) {
MinecraftClient client = MinecraftClient.getInstance();
if (client.player == null || client.world == null) return;
- int mapId = getMapId(client.player.getInventory().main.get(8));
+ MapIdComponent mapId = getMapIdComponent(client.player.getInventory().main.get(8));
MapState state = FilledMapItem.getMapState(mapId, client.world);
if (state == null) return;
@@ -58,13 +60,12 @@ public class DungeonMap {
matrices.pop();
}
- public static int getMapId(ItemStack stack) {
- if (stack.isOf(Items.FILLED_MAP)) {
- @SuppressWarnings("DataFlowIssue")
- int mapId = FilledMapItem.getMapId(stack);
- cachedMapId = mapId;
- return mapId;
- } else return cachedMapId != null ? cachedMapId : DEFAULT_MAP_ID;
+ public static MapIdComponent getMapIdComponent(ItemStack stack) {
+ if (stack.isOf(Items.FILLED_MAP) && stack.contains(DataComponentTypes.MAP_ID)) {
+ MapIdComponent mapIdComponent = stack.get(DataComponentTypes.MAP_ID);
+ cachedMapIdComponent = mapIdComponent;
+ return mapIdComponent;
+ } else return cachedMapIdComponent != null ? cachedMapIdComponent : DEFAULT_MAP_ID_COMPONENT;
}
private static void render(DrawContext context) {
@@ -74,6 +75,6 @@ public class DungeonMap {
}
private static void reset() {
- cachedMapId = null;
+ cachedMapIdComponent = null;
}
}