aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/com/thatgravyboat/skyblockhud/handlers/MapHandler.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/com/thatgravyboat/skyblockhud/handlers/MapHandler.java')
-rw-r--r--src/main/java/com/thatgravyboat/skyblockhud/handlers/MapHandler.java821
1 files changed, 426 insertions, 395 deletions
diff --git a/src/main/java/com/thatgravyboat/skyblockhud/handlers/MapHandler.java b/src/main/java/com/thatgravyboat/skyblockhud/handlers/MapHandler.java
index bb2b492..ab618af 100644
--- a/src/main/java/com/thatgravyboat/skyblockhud/handlers/MapHandler.java
+++ b/src/main/java/com/thatgravyboat/skyblockhud/handlers/MapHandler.java
@@ -28,426 +28,457 @@ import org.lwjgl.opengl.GL11;
public class MapHandler {
- public enum MapIconTypes {
- SHOPS,
- MISC,
- NPC,
- INFO,
- QUEST
- }
+ public enum MapIconTypes {
+ SHOPS,
+ MISC,
+ NPC,
+ INFO,
+ QUEST
+ }
- public static class MapIcon {
+ public static class MapIcon {
- public Vector2f position;
- public ResourceLocation icon;
- public String tooltip;
- public String command;
- public MapIconTypes type;
+ public Vector2f position;
+ public ResourceLocation icon;
+ public String tooltip;
+ public String command;
+ public MapIconTypes type;
- public MapIcon(
- Vector2f pos,
- ResourceLocation icon,
- String tooltip,
- MapIconTypes type
- ) {
- this(pos, icon, tooltip, type, "");
- }
+ public MapIcon(
+ Vector2f pos,
+ ResourceLocation icon,
+ String tooltip,
+ MapIconTypes type
+ ) {
+ this(pos, icon, tooltip, type, "");
+ }
- public MapIcon(
- Vector2f pos,
- ResourceLocation icon,
- String tooltip,
- MapIconTypes type,
- String command
- ) {
- this.position = pos;
- this.icon = icon;
- this.tooltip = tooltip;
- this.type = type;
- this.command = command;
- }
+ public MapIcon(
+ Vector2f pos,
+ ResourceLocation icon,
+ String tooltip,
+ MapIconTypes type,
+ String command
+ ) {
+ this.position = pos;
+ this.icon = icon;
+ this.tooltip = tooltip;
+ this.type = type;
+ this.command = command;
+ }
- public boolean canRender() {
- SBHConfig.Map mapConfig = SkyblockHud.config.map;
- if (
- mapConfig.showInfoIcons && type.equals(MapIconTypes.INFO)
- ) return true; else if (
- mapConfig.showMiscIcons && type.equals(MapIconTypes.MISC)
- ) return true; else if (
- mapConfig.showNpcIcons && type.equals(MapIconTypes.NPC)
- ) return true; else if (
- mapConfig.showQuestIcons && type.equals(MapIconTypes.QUEST)
- ) return true; else return (
- mapConfig.showShopIcons && type.equals(MapIconTypes.SHOPS)
- );
+ public boolean canRender() {
+ SBHConfig.Map mapConfig = SkyblockHud.config.map;
+ if (
+ mapConfig.showInfoIcons && type.equals(MapIconTypes.INFO)
+ ) return true; else if (
+ mapConfig.showMiscIcons && type.equals(MapIconTypes.MISC)
+ ) return true; else if (
+ mapConfig.showNpcIcons && type.equals(MapIconTypes.NPC)
+ ) return true; else if (
+ mapConfig.showQuestIcons && type.equals(MapIconTypes.QUEST)
+ ) return true; else return (
+ mapConfig.showShopIcons && type.equals(MapIconTypes.SHOPS)
+ );
+ }
}
- }
- public enum Maps {
- HUB(
- 0.5f,
- 494,
- 444,
- 294,
- 218,
- 294,
- 224,
- new ResourceLocation("skyblockhud", "maps/hub.png"),
- HubIcons.hubIcons
- ),
- MUSHROOM(
- 1.0f,
- 318,
- 316,
- -84,
- 605,
- -84,
- 612,
- new ResourceLocation("skyblockhud", "maps/mushroom.png"),
- Collections.emptyList()
- ),
- SPIDERS(
- 1.0f,
- 270,
- 238,
- 400,
- 362,
- 400,
- 364,
- new ResourceLocation("skyblockhud", "maps/spidersden.png"),
- Collections.emptyList()
- ),
- NETHER(
- 0.5f,
- 257,
- 371,
- 436,
- 732,
- 433,
- 736,
- new ResourceLocation("skyblockhud", "maps/fort.png"),
- Collections.emptyList()
- ),
- BARN(
- 1.5f,
- 135,
- 130,
- -82,
- 320,
- -81,
- 318,
- new ResourceLocation("skyblockhud", "maps/barn.png"),
- Collections.emptyList()
- ),
- DWARVEN(
- 0.5f,
- 409,
- 461,
- 206,
- 160,
- 202,
- 166,
- new ResourceLocation("skyblockhud", "maps/dwarven.png"),
- DwarvenIcons.dwarvenIcons
- ),
- PARK(
- 1.0f,
- 211,
- 230,
- 480,
- 133,
- 478,
- 134,
- new ResourceLocation("skyblockhud", "maps/park.png"),
- Collections.emptyList()
- );
+ public enum Maps {
+ HUB(
+ 0.5f,
+ 494,
+ 444,
+ 294,
+ 218,
+ 294,
+ 224,
+ new ResourceLocation("skyblockhud", "maps/hub.png"),
+ HubIcons.hubIcons
+ ),
+ MUSHROOM(
+ 1.0f,
+ 318,
+ 316,
+ -84,
+ 605,
+ -84,
+ 612,
+ new ResourceLocation("skyblockhud", "maps/mushroom.png"),
+ Collections.emptyList()
+ ),
+ SPIDERS(
+ 1.0f,
+ 270,
+ 238,
+ 400,
+ 362,
+ 400,
+ 364,
+ new ResourceLocation("skyblockhud", "maps/spidersden.png"),
+ Collections.emptyList()
+ ),
+ NETHER(
+ 0.5f,
+ 257,
+ 371,
+ 436,
+ 732,
+ 433,
+ 736,
+ new ResourceLocation("skyblockhud", "maps/fort.png"),
+ Collections.emptyList()
+ ),
+ BARN(
+ 1.5f,
+ 135,
+ 130,
+ -82,
+ 320,
+ -81,
+ 318,
+ new ResourceLocation("skyblockhud", "maps/barn.png"),
+ Collections.emptyList()
+ ),
+ DWARVEN(
+ 0.5f,
+ 409,
+ 461,
+ 206,
+ 160,
+ 202,
+ 166,
+ new ResourceLocation("skyblockhud", "maps/dwarven.png"),
+ DwarvenIcons.dwarvenIcons
+ ),
+ PARK(
+ 1.0f,
+ 211,
+ 230,
+ 480,
+ 133,
+ 478,
+ 134,
+ new ResourceLocation("skyblockhud", "maps/park.png"),
+ Collections.emptyList()
+ );
- public float scaleFactor;
- public int width;
- public int height;
- public int xMiniOffset;
- public int yMiniOffset;
- public int xOffset;
- public int yOffset;
- public ResourceLocation mapTexture;
- public List<MapIcon> icons;
+ public float scaleFactor;
+ public int width;
+ public int height;
+ public int xMiniOffset;
+ public int yMiniOffset;
+ public int xOffset;
+ public int yOffset;
+ public ResourceLocation mapTexture;
+ public List<MapIcon> icons;
- Maps(
- float scaleFactor,
- int width,
- int height,
- int xMiniOffset,
- int yMiniOffset,
- int xOffset,
- int yOffset,
- ResourceLocation mapTexture,
- List<MapIcon> icons
- ) {
- this.scaleFactor = scaleFactor;
- this.width = width;
- this.height = height;
- this.xMiniOffset = xMiniOffset;
- this.yMiniOffset = yMiniOffset;
- this.xOffset = xOffset;
- this.yOffset = yOffset;
- this.mapTexture = mapTexture;
- this.icons = icons;
+ Maps(
+ float scaleFactor,
+ int width,
+ int height,
+ int xMiniOffset,
+ int yMiniOffset,
+ int xOffset,
+ int yOffset,
+ ResourceLocation mapTexture,
+ List<MapIcon> icons
+ ) {
+ this.scaleFactor = scaleFactor;
+ this.width = width;
+ this.height = height;
+ this.xMiniOffset = xMiniOffset;
+ this.yMiniOffset = yMiniOffset;
+ this.xOffset = xOffset;
+ this.yOffset = yOffset;
+ this.mapTexture = mapTexture;
+ this.icons = icons;
+ }
}
- }
- @SubscribeEvent
- public void renderOverlay(RenderGameOverlayEvent.Post event) {
- if (
- Utils.overlayShouldRender(
- event.type,
- SkyblockHud.hasSkyblockScoreboard(),
- SkyblockHud.config.map.showMiniMap
- )
- ) {
- Minecraft mc = Minecraft.getMinecraft();
- if (mc.currentScreen instanceof MapScreen) return;
- if (
- LocationHandler.getCurrentLocation().getCategory().getMap() == null
- ) return;
- if (mc.thePlayer != null) {
- MapHandler.Maps map = LocationHandler
- .getCurrentLocation()
- .getCategory()
- .getMap();
- mc.renderEngine.bindTexture(mapOverlay);
- GlStateManager.color(1.0f, 1.0f, 1.0f, 1.0f);
- Position pos = SkyblockHud.config.map.miniMapPosition;
- Gui.drawModalRectWithCustomSizedTexture(
- pos.getAbsX(event.resolution, 72),
- pos.getAbsY(event.resolution, 72),
- 72,
- 0,
- 72,
- 72,
- 256,
- 256
- );
- mc.renderEngine.bindTexture(map.mapTexture);
+ @SubscribeEvent
+ public void renderOverlay(RenderGameOverlayEvent.Post event) {
+ if (
+ Utils.overlayShouldRender(
+ event.type,
+ SkyblockHud.hasSkyblockScoreboard(),
+ SkyblockHud.config.map.showMiniMap
+ )
+ ) {
+ Minecraft mc = Minecraft.getMinecraft();
+ if (mc.currentScreen instanceof MapScreen) return;
+ if (
+ LocationHandler.getCurrentLocation().getCategory().getMap() ==
+ null
+ ) return;
+ if (mc.thePlayer != null) {
+ MapHandler.Maps map = LocationHandler
+ .getCurrentLocation()
+ .getCategory()
+ .getMap();
+ mc.renderEngine.bindTexture(mapOverlay);
+ GlStateManager.color(1.0f, 1.0f, 1.0f, 1.0f);
+ Position pos = SkyblockHud.config.map.miniMapPosition;
+ Gui.drawModalRectWithCustomSizedTexture(
+ pos.getAbsX(event.resolution, 72),
+ pos.getAbsY(event.resolution, 72),
+ 72,
+ 0,
+ 72,
+ 72,
+ 256,
+ 256
+ );
+ mc.renderEngine.bindTexture(map.mapTexture);
- int x = mc.thePlayer.getPosition().getX() + map.xMiniOffset;
- int z = mc.thePlayer.getPosition().getZ() + map.yMiniOffset;
- float u = (x / (map.width / 256f)) - 33f;
- float v = (z / (map.height / 256f)) - 28f;
+ int x = mc.thePlayer.getPosition().getX() + map.xMiniOffset;
+ int z = mc.thePlayer.getPosition().getZ() + map.yMiniOffset;
+ float u = (x / (map.width / 256f)) - 33f;
+ float v = (z / (map.height / 256f)) - 28f;
- GL11.glTexParameteri(
- GL11.GL_TEXTURE_2D,
- GL11.GL_TEXTURE_WRAP_S,
- GL11.GL_CLAMP
- );
- GL11.glTexParameteri(
- GL11.GL_TEXTURE_2D,
- GL11.GL_TEXTURE_WRAP_T,
- GL11.GL_CLAMP
- );
+ GL11.glTexParameteri(
+ GL11.GL_TEXTURE_2D,
+ GL11.GL_TEXTURE_WRAP_S,
+ GL11.GL_CLAMP
+ );
+ GL11.glTexParameteri(
+ GL11.GL_TEXTURE_2D,
+ GL11.GL_TEXTURE_WRAP_T,
+ GL11.GL_CLAMP
+ );
- Gui.drawModalRectWithCustomSizedTexture(
- pos.getAbsX(event.resolution, 72) + 4,
- pos.getAbsY(event.resolution, 72) + 2,
- u,
- v,
- 64,
- 64,
- 256,
- 256
- );
+ Gui.drawModalRectWithCustomSizedTexture(
+ pos.getAbsX(event.resolution, 72) + 4,
+ pos.getAbsY(event.resolution, 72) + 2,
+ u,
+ v,
+ 64,
+ 64,
+ 256,
+ 256
+ );
- if (SkyblockHud.config.map.showPlayerLocation) {
- mc.fontRendererObj.drawString(
- "\u2022",
- pos.getAbsX(event.resolution, 72) + 36,
- pos.getAbsY(event.resolution, 72) + 34,
- 0xff0000,
- false
- );
- }
+ if (SkyblockHud.config.map.showPlayerLocation) {
+ mc.fontRendererObj.drawString(
+ "\u2022",
+ pos.getAbsX(event.resolution, 72) + 36,
+ pos.getAbsY(event.resolution, 72) + 34,
+ 0xff0000,
+ false
+ );
+ }
- GlStateManager.color(1.0f, 1.0f, 1.0f, 1.0f);
- mc.renderEngine.bindTexture(mapOverlay);
- Gui.drawModalRectWithCustomSizedTexture(
- pos.getAbsX(event.resolution, 72),
- pos.getAbsY(event.resolution, 72),
- 0,
- 0,
- 72,
- 72,
- 256,
- 256
- );
- String keyCode = GameSettings.getKeyDisplayString(
- KeyBindings.map.getKeyCode()
- );
- Utils.drawStringCenteredScaled(
- keyCode,
- mc.fontRendererObj,
- pos.getAbsX(event.resolution, 64) + 58,
- pos.getAbsY(event.resolution, 72) + 66,
- false,
- 6,
- 0xFFFFFF
- );
- BlockPos playerPos = mc.thePlayer.getPosition();
- String position = String.format(
- "%d/%d/%d",
- playerPos.getX(),
- playerPos.getY(),
- playerPos.getZ()
- );
- Utils.drawStringCenteredScaled(
- position,
- mc.fontRendererObj,
- pos.getAbsX(event.resolution, 64) + 29,
- pos.getAbsY(event.resolution, 72) + 66,
- false,
- 36,
- 0xFFFFFF
- );
- GlStateManager.color(1.0f, 1.0f, 1.0f, 1.0f);
- }
+ GlStateManager.color(1.0f, 1.0f, 1.0f, 1.0f);
+ mc.renderEngine.bindTexture(mapOverlay);
+ Gui.drawModalRectWithCustomSizedTexture(
+ pos.getAbsX(event.resolution, 72),
+ pos.getAbsY(event.resolution, 72),
+ 0,
+ 0,
+ 72,
+ 72,
+ 256,
+ 256
+ );
+ String keyCode = GameSettings.getKeyDisplayString(
+ KeyBindings.map.getKeyCode()
+ );
+ Utils.drawStringCenteredScaled(
+ keyCode,
+ mc.fontRendererObj,
+ pos.getAbsX(event.resolution, 64) + 58,
+ pos.getAbsY(event.resolution, 72) + 66,
+ false,
+ 6,
+ 0xFFFFFF
+ );
+ BlockPos playerPos = mc.thePlayer.getPosition();
+ String position = String.format(
+ "%d/%d/%d",
+ playerPos.getX(),
+ playerPos.getY(),
+ playerPos.getZ()
+ );
+ Utils.drawStringCenteredScaled(
+ position,
+ mc.fontRendererObj,
+ pos.getAbsX(event.resolution, 64) + 29,
+ pos.getAbsY(event.resolution, 72) + 66,
+ false,
+ 36,
+ 0xFFFFFF
+ );
+ GlStateManager.color(1.0f, 1.0f, 1.0f, 1.0f);
+ }
+ }
}
- }
- @SubscribeEvent
- public void clientTick(TickEvent.ClientTickEvent event) {
- if (
- KeyBindings.map.isPressed() &&
- LocationHandler.getCurrentLocation().getCategory().getMap() != null &&
- SkyblockHud.hasSkyblockScoreboard()
- ) SkyblockHud.screenToOpen = new MapScreen();
- }
+ @SubscribeEvent
+ public void clientTick(TickEvent.ClientTickEvent event) {
+ if (
+ KeyBindings.map.isPressed() &&
+ LocationHandler.getCurrentLocation().getCategory().getMap() !=
+ null &&
+ SkyblockHud.hasSkyblockScoreboard()
+ ) SkyblockHud.screenToOpen = new MapScreen();
+ }
- public static class MapScreen extends GuiScreen {
+ public static class MapScreen extends GuiScreen {
- public MapHandler.Maps map = LocationHandler
- .getCurrentLocation()
- .getCategory()
- .getMap();
+ public MapHandler.Maps map = LocationHandler
+ .getCurrentLocation()
+ .getCategory()
+ .getMap();
- @Override
- public void drawScreen(int mouseX, int mouseY, float partialTicks) {
- GlStateManager.color(1.0f, 1.0f, 1.0f, 1.0f);
- this.drawWorldBackground(0);
- this.mc.renderEngine.bindTexture(map.mapTexture);
- float mapX = (width / 2f) - ((map.width / 2f) * map.scaleFactor);
- float mapY = (height / 2f) - ((map.height / 2f) * map.scaleFactor);
- Gui.drawModalRectWithCustomSizedTexture(
- (int) mapX,
- (int) mapY,
- 0,
- 0,
- (int) (map.width * map.scaleFactor),
- (int) (map.height * map.scaleFactor),
- (int) (map.width * map.scaleFactor),
- (int) (map.height * map.scaleFactor)
- );
- drawIcons((int) mapX, (int) mapY);
- if (
- this.mc.thePlayer != null && SkyblockHud.config.map.showPlayerLocation
- ) {
- int x = this.mc.thePlayer.getPosition().getX() + map.xOffset;
- int z = this.mc.thePlayer.getPosition().getZ() + map.yOffset;
- fontRendererObj.drawString(
- "\u2022",
- (int) (x * map.scaleFactor + mapX),
- (int) (z * map.scaleFactor + mapY),
- 0xff0000
- );
- }
- GlStateManager.color(1.0f, 1.0f, 1.0f, 1.0f);
- onTooltip(mouseX, mouseY, (int) mapX, (int) mapY);
- }
+ @Override
+ public void drawScreen(int mouseX, int mouseY, float partialTicks) {
+ GlStateManager.color(1.0f, 1.0f, 1.0f, 1.0f);
+ this.drawWorldBackground(0);
+ this.mc.renderEngine.bindTexture(map.mapTexture);
+ float mapX = (width / 2f) - ((map.width / 2f) * map.scaleFactor);
+ float mapY = (height / 2f) - ((map.height / 2f) * map.scaleFactor);
+ Gui.drawModalRectWithCustomSizedTexture(
+ (int) mapX,
+ (int) mapY,
+ 0,
+ 0,
+ (int) (map.width * map.scaleFactor),
+ (int) (map.height * map.scaleFactor),
+ (int) (map.width * map.scaleFactor),
+ (int) (map.height * map.scaleFactor)
+ );
+ drawIcons((int) mapX, (int) mapY);
+ if (
+ this.mc.thePlayer != null &&
+ SkyblockHud.config.map.showPlayerLocation
+ ) {
+ int x = this.mc.thePlayer.getPosition().getX() + map.xOffset;
+ int z = this.mc.thePlayer.getPosition().getZ() + map.yOffset;
+ fontRendererObj.drawString(
+ "\u2022",
+ (int) (x * map.scaleFactor + mapX),
+ (int) (z * map.scaleFactor + mapY),
+ 0xff0000
+ );
+ }
+ GlStateManager.color(1.0f, 1.0f, 1.0f, 1.0f);
+ onTooltip(mouseX, mouseY, (int) mapX, (int) mapY);
+ }
- public void drawIcons(int startX, int startY) {
- if (map.icons == null) return;
- for (MapIcon icon : map.icons) {
- if (!icon.canRender()) continue;
- GlStateManager.enableBlend();
- GlStateManager.color(1.0f, 1.0f, 1.0f, 1.0f);
- this.mc.renderEngine.bindTexture(icon.icon);
- float x =
- ((icon.position.x + map.xOffset) * map.scaleFactor) + startX - 4;
- float y =
- ((icon.position.y + map.yOffset) * map.scaleFactor) + startY - 4;
- Gui.drawModalRectWithCustomSizedTexture(
- (int) x,
- (int) y,
- 0,
- 0,
- 8,
- 8,
- 8,
- 8
- );
- GlStateManager.color(1.0f, 1.0f, 1.0f, 1.0f);
- }
- }
+ public void drawIcons(int startX, int startY) {
+ if (map.icons == null) return;
+ for (MapIcon icon : map.icons) {
+ if (!icon.canRender()) continue;
+ GlStateManager.enableBlend();
+ GlStateManager.color(1.0f, 1.0f, 1.0f, 1.0f);
+ this.mc.renderEngine.bindTexture(icon.icon);
+ float x =
+ ((icon.position.x + map.xOffset) * map.scaleFactor) +
+ startX -
+ 4;
+ float y =
+ ((icon.position.y + map.yOffset) * map.scaleFactor) +
+ startY -
+ 4;
+ Gui.drawModalRectWithCustomSizedTexture(
+ (int) x,
+ (int) y,
+ 0,
+ 0,
+ 8,
+ 8,
+ 8,
+ 8
+ );
+ GlStateManager.color(1.0f, 1.0f, 1.0f, 1.0f);
+ }
+ }
- public void onTooltip(int mouseX, int mouseY, int startX, int startY) {
- if (map.icons == null) return;
- for (MapIcon icon : map.icons) {
- if (!icon.canRender()) continue;
- if (
- Utils.inRangeInclusive(
- mouseX,
- (int) ((icon.position.x + map.xOffset) * map.scaleFactor) +
- startX -
- 4,
- (int) ((icon.position.x + map.xOffset) * map.scaleFactor) +
- startX +
- 4
- ) &&
- Utils.inRangeInclusive(
- mouseY,
- (int) ((icon.position.y + map.yOffset) * map.scaleFactor) +
- startY -
- 4,
- (int) ((icon.position.y + map.yOffset) * map.scaleFactor) +
- startY +
- 4
- )
- ) {
- drawHoveringText(
- Arrays.asList(icon.tooltip.split("\n")),
- mouseX,
- mouseY
- );
- break;
+ public void onTooltip(int mouseX, int mouseY, int startX, int startY) {
+ if (map.icons == null) return;
+ for (MapIcon icon : map.icons) {
+ if (!icon.canRender()) continue;
+ if (
+ Utils.inRangeInclusive(
+ mouseX,
+ (int) (
+ (icon.position.x + map.xOffset) * map.scaleFactor
+ ) +
+ startX -
+ 4,
+ (int) (
+ (icon.position.x + map.xOffset) * map.scaleFactor
+ ) +
+ startX +
+ 4
+ ) &&
+ Utils.inRangeInclusive(
+ mouseY,
+ (int) (
+ (icon.position.y + map.yOffset) * map.scaleFactor
+ ) +
+ startY -
+ 4,
+ (int) (
+ (icon.position.y + map.yOffset) * map.scaleFactor
+ ) +
+ startY +
+ 4
+ )
+ ) {
+ drawHoveringText(
+ Arrays.asList(icon.tooltip.split("\n")),
+ mouseX,
+ mouseY
+ );
+ break;
+ }
+ }
}
- }
- }
- @Override
- protected void mouseClicked(int mouseX, int mouseY, int mouseButton) {
- int mapX = (int) ((width / 2f) - ((map.width / 2f) * map.scaleFactor));
- int mapY = (int) ((height / 2f) - ((map.height / 2f) * map.scaleFactor));
- for (MapIcon icon : map.icons) {
- if (!icon.canRender()) continue;
- if (
- Utils.inRangeInclusive(
- mouseX,
- (int) ((icon.position.x + map.xOffset) * map.scaleFactor) +
- mapX -
- 4,
- (int) ((icon.position.x + map.xOffset) * map.scaleFactor) + mapX + 4
- ) &&
- Utils.inRangeInclusive(
- mouseY,
- (int) ((icon.position.y + map.yOffset) * map.scaleFactor) +
- mapY -
- 4,
- (int) ((icon.position.y + map.yOffset) * map.scaleFactor) + mapY + 4
- )
- ) {
- if (!icon.command.isEmpty()) {
- this.mc.thePlayer.sendChatMessage("/" + icon.command);
- }
- break;
+ @Override
+ protected void mouseClicked(int mouseX, int mouseY, int mouseButton) {
+ int mapX = (int) (
+ (width / 2f) - ((map.width / 2f) * map.scaleFactor)
+ );
+ int mapY = (int) (
+ (height / 2f) - ((map.height / 2f) * map.scaleFactor)
+ );
+ for (MapIcon icon : map.icons) {
+ if (!icon.canRender()) continue;
+ if (
+ Utils.inRangeInclusive(
+ mouseX,
+ (int) (
+ (icon.position.x + map.xOffset) * map.scaleFactor
+ ) +
+ mapX -
+ 4,
+ (int) (
+ (icon.position.x + map.xOffset) * map.scaleFactor
+ ) +
+ mapX +
+ 4
+ ) &&
+ Utils.inRangeInclusive(
+ mouseY,
+ (int) (
+ (icon.position.y + map.yOffset) * map.scaleFactor
+ ) +
+ mapY -
+ 4,
+ (int) (
+ (icon.position.y + map.yOffset) * map.scaleFactor
+ ) +
+ mapY +
+ 4
+ )
+ ) {
+ if (!icon.command.isEmpty()) {
+ this.mc.thePlayer.sendChatMessage("/" + icon.command);
+ }
+ break;
+ }
+ }
}
- }
}
- }
}