blob: 1372a0d256b9282def6891835308fc3bd9b4dfb6 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
|
package de.hysky.skyblocker.skyblock.dungeon;
import de.hysky.skyblocker.config.SkyblockerConfigManager;
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.LightmapTextureManager;
import net.minecraft.client.render.VertexConsumerProvider;
import net.minecraft.client.util.math.MatrixStack;
import net.minecraft.item.FilledMapItem;
import net.minecraft.item.map.MapState;
public class DungeonMap {
private static final int mapId = 1024;
public static void render(MatrixStack matrices) {
MinecraftClient client = MinecraftClient.getInstance();
if (client.player == null || client.world == null) return;
MapState state = FilledMapItem.getMapState(mapId, client.world);
if (state == null) return;
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
ClientCommandRegistrationCallback.EVENT.register((dispatcher, registryAccess) -> dispatcher.register(ClientCommandManager.literal("skyblocker")
.then(ClientCommandManager.literal("hud")
.then(ClientCommandManager.literal("dungeonmap")
.executes(Scheduler.queueOpenScreenCommand(DungeonMapConfigScreen::new))))));
}
}
|