WorldMapOverlay: Add check for current plane

This commit is contained in:
Morgan Lewis
2018-05-04 10:16:17 -06:00
parent 84a8ae322a
commit 23445ff29a
3 changed files with 19 additions and 3 deletions

View File

@@ -26,4 +26,5 @@ package net.runelite.api;
public interface WorldMapData
{
boolean surfaceContainsPosition(int x, int y);
}

View File

@@ -104,6 +104,12 @@ public class WorldMapOverlay extends Overlay
{
Point drawPoint = mapWorldPointToGraphicsPoint(point);
if (drawPoint == null)
{
worldPoint.setClickbox(null);
continue;
}
if (worldPoint.isSnapToEdge())
{
Canvas canvas = client.getCanvas();
@@ -168,6 +174,12 @@ public class WorldMapOverlay extends Overlay
private Point mapWorldPointToGraphicsPoint(WorldPoint worldPoint)
{
RenderOverview ro = clientProvider.get().getRenderOverview();
if (!ro.getWorldMapData().surfaceContainsPosition(worldPoint.getX(), worldPoint.getY()))
{
return null;
}
Float pixelsPerTile = ro.getWorldMapZoom();
Point worldMapPosition = ro.getWorldMapPosition();
@@ -184,18 +196,18 @@ public class WorldMapOverlay extends Overlay
return new Point(xGraphDiff, yGraphDiff);
}
return new Point(0, 0);
return null;
}
private void drawTooltip(Graphics2D graphics, WorldMapPoint worldPoint)
{
String tooltip = worldPoint.getTooltip();
if (tooltip == null || tooltip.length() <= 0)
Point drawPoint = mapWorldPointToGraphicsPoint(worldPoint.getWorldPoint());
if (tooltip == null || tooltip.length() <= 0 || drawPoint == null)
{
return;
}
Point drawPoint = mapWorldPointToGraphicsPoint(worldPoint.getWorldPoint());
drawPoint = new Point(drawPoint.getX() + TOOLTIP_OFFSET_WIDTH, drawPoint.getY() + TOOLTIP_OFFSET_HEIGHT);
graphics.setClip(0, 0, clientProvider.get().getCanvas().getWidth(), clientProvider.get().getCanvas().getHeight());

View File

@@ -25,7 +25,10 @@
package net.runelite.rs.api;
import net.runelite.api.WorldMapData;
import net.runelite.mapping.Import;
public interface RSWorldMapData extends WorldMapData
{
@Import("surfaceContainsPosition")
boolean surfaceContainsPosition(int x, int y);
}