diff options
-rw-r--r-- | src/main/java/de/hysky/skyblocker/skyblock/dungeon/DungeonMap.java | 41 |
1 files changed, 15 insertions, 26 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 293d301f..a1bfad2e 100644 --- a/src/main/java/de/hysky/skyblocker/skyblock/dungeon/DungeonMap.java +++ b/src/main/java/de/hysky/skyblocker/skyblock/dungeon/DungeonMap.java @@ -5,41 +5,30 @@ 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.minecraft.client.MinecraftClient; -import net.minecraft.client.render.MapRenderer; +import net.minecraft.client.render.LightmapTextureManager; import net.minecraft.client.render.VertexConsumerProvider; import net.minecraft.client.util.math.MatrixStack; import net.minecraft.item.FilledMapItem; -import net.minecraft.item.ItemStack; import net.minecraft.item.map.MapState; -import net.minecraft.nbt.NbtCompound; -import org.apache.commons.lang3.StringUtils; public class DungeonMap { - public static void render(MatrixStack matrices) { + private static final int mapId = 1024; + private static void render(MatrixStack matrices) { MinecraftClient client = MinecraftClient.getInstance(); if (client.player == null || client.world == null) return; - ItemStack item = client.player.getInventory().main.get(8); - NbtCompound tag = item.getNbt(); - if (tag != null && tag.contains("map")) { - String tag2 = tag.asString(); - tag2 = StringUtils.substringBetween(tag2, "map:", "}"); - int mapid = Integer.parseInt(tag2); - VertexConsumerProvider.Immediate vertices = client.getBufferBuilders().getEffectVertexConsumers(); - MapRenderer map = client.gameRenderer.getMapRenderer(); - MapState state = FilledMapItem.getMapState(mapid, client.world); - float scaling = SkyblockerConfigManager.get().locations.dungeons.mapScaling; - int x = SkyblockerConfigManager.get().locations.dungeons.mapX; - int y = SkyblockerConfigManager.get().locations.dungeons.mapY; + MapState state = FilledMapItem.getMapState(mapId, client.world); + if (state == null) return; - if (state == null) return; - matrices.push(); - matrices.translate(x, y, 0); - matrices.scale(scaling, scaling, 0f); - map.draw(matrices, vertices, mapid, state, false, 15728880); - vertices.draw(); - matrices.pop(); - } + float scaling = SkyblockerConfigManager.get().locations.dungeons.mapScaling; + VertexConsumerProvider.Immediate vertices = client.getBufferBuilders().getEffectVertexConsumers(); + + matrices.push(); + matrices.translate(SkyblockerConfigManager.get().locations.dungeons.mapX, SkyblockerConfigManager.get().locations.dungeons.mapY, 0); + matrices.scale(scaling, scaling, 0f); + client.gameRenderer.getMapRenderer().draw(matrices, vertices, mapId, state, false, LightmapTextureManager.MAX_LIGHT_COORDINATE); + vertices.draw(); + matrices.pop(); } public static void init() { //Todo: consider renaming the command to a more general name since it'll also have dungeon score and maybe other stuff in the future @@ -48,4 +37,4 @@ public class DungeonMap { .then(ClientCommandManager.literal("dungeonmap") .executes(Scheduler.queueOpenScreenCommand(DungeonMapConfigScreen::new)))))); } -}
\ No newline at end of file +} |