Update almost everything to the new API

This commit is contained in:
Max Weber
2018-03-09 04:51:02 -07:00
parent cf4d5d8333
commit b75dddca28
32 changed files with 157 additions and 174 deletions

View File

@@ -27,6 +27,8 @@ package net.runelite.api;
import java.awt.Graphics2D;
import java.awt.Polygon;
import java.awt.image.BufferedImage;
import net.runelite.api.coords.LocalPoint;
import net.runelite.api.coords.WorldPoint;
public interface Actor extends Renderable
{
@@ -40,9 +42,9 @@ public interface Actor extends Renderable
int getHealth();
Point getWorldLocation();
WorldPoint getWorldLocation();
Point getLocalLocation();
LocalPoint getLocalLocation();
int getOrientation();
@@ -62,8 +64,6 @@ public interface Actor extends Renderable
Point getMinimapLocation();
Point getRegionLocation();
/**
* Returns the logical height of the actor's model. This is roughly where the health bar is drawn.
*/

View File

@@ -28,6 +28,8 @@ import java.awt.Canvas;
import java.awt.Dimension;
import java.util.List;
import java.util.Map;
import javax.annotation.Nullable;
import net.runelite.api.coords.LocalPoint;
import net.runelite.api.widgets.Widget;
import net.runelite.api.widgets.WidgetInfo;
@@ -184,7 +186,8 @@ public interface Client extends GameEngine
SpritePixels createSpritePixels(int[] pixels, int width, int height);
Point getSceneDestinationLocation();
@Nullable
LocalPoint getLocalDestinationLocation();
List<Projectile> getProjectiles();

View File

@@ -34,6 +34,7 @@ import java.awt.image.BufferedImage;
import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;
import net.runelite.api.coords.LocalPoint;
import net.runelite.api.model.Jarvis;
import net.runelite.api.model.Triangle;
import net.runelite.api.model.Vertex;
@@ -218,7 +219,7 @@ public class Perspective
{
int angle = client.getMapAngle() & 0x7FF;
Point localLocation = client.getLocalPlayer().getLocalLocation();
LocalPoint localLocation = client.getLocalPlayer().getLocalLocation();
x = x / 32 - localLocation.getX() / 32;
y = y / 32 - localLocation.getY() / 32;
@@ -328,7 +329,7 @@ public class Perspective
* @return a {@link Polygon} on screen corresponding to the given
* localLocation.
*/
public static Polygon getCanvasTilePoly(Client client, Point localLocation)
public static Polygon getCanvasTilePoly(Client client, LocalPoint localLocation)
{
return getCanvasTileAreaPoly(client, localLocation, 1);
}
@@ -342,7 +343,7 @@ public class Perspective
* size = 3
* @return a polygon representing the tiles in the area
*/
public static Polygon getCanvasTileAreaPoly(Client client, Point localLocation, int size)
public static Polygon getCanvasTileAreaPoly(Client client, LocalPoint localLocation, int size)
{
int plane = client.getPlane();
int halfTile = LOCAL_TILE_SIZE / 2;
@@ -391,7 +392,7 @@ public class Perspective
* @return a {@link Point} on screen corresponding to the given
* localLocation.
*/
public static Point getCanvasTextLocation(Client client, Graphics2D graphics, Point localLocation, String text, int zOffset)
public static Point getCanvasTextLocation(Client client, Graphics2D graphics, LocalPoint localLocation, String text, int zOffset)
{
int plane = client.getPlane();
@@ -420,7 +421,7 @@ public class Perspective
* @return a {@link Point} on screen corresponding to the given
* localLocation.
*/
public static Point getCanvasImageLocation(Client client, Graphics2D graphics, Point localLocation, BufferedImage image, int zOffset)
public static Point getCanvasImageLocation(Client client, Graphics2D graphics, LocalPoint localLocation, BufferedImage image, int zOffset)
{
int plane = client.getPlane();
@@ -446,7 +447,7 @@ public class Perspective
* @return a {@link Point} on screen corresponding to the given
* localLocation.
*/
public static Point getMiniMapImageLocation(Client client, Point localLocation, BufferedImage image)
public static Point getMiniMapImageLocation(Client client, LocalPoint localLocation, BufferedImage image)
{
Point p = Perspective.worldToMiniMap(client, localLocation.getX(), localLocation.getY());
@@ -472,7 +473,7 @@ public class Perspective
* @return a {@link Point} on screen corresponding to the given
* localLocation.
*/
public static Point getCanvasSpriteLocation(Client client, Graphics2D graphics, Point localLocation, SpritePixels sprite, int zOffset)
public static Point getCanvasSpriteLocation(Client client, Graphics2D graphics, LocalPoint localLocation, SpritePixels sprite, int zOffset)
{
int plane = client.getPlane();
@@ -718,7 +719,7 @@ public class Perspective
* @return a {@link Point} on screen corresponding to the given
* localLocation.
*/
public static Point getCanvasTextMiniMapLocation(Client client, Graphics2D graphics, Point localLocation, String text)
public static Point getCanvasTextMiniMapLocation(Client client, Graphics2D graphics, LocalPoint localLocation, String text)
{
Point p = Perspective.worldToMiniMap(client, localLocation.getX(), localLocation.getY());

View File

@@ -24,6 +24,9 @@
*/
package net.runelite.api;
import net.runelite.api.coords.LocalPoint;
import net.runelite.api.coords.WorldPoint;
public interface Tile
{
/**
@@ -45,11 +48,11 @@ public interface Tile
SceneTileModel getSceneTileModel();
Point getWorldLocation();
WorldPoint getWorldLocation();
Point getRegionLocation();
Point getLocalLocation();
LocalPoint getLocalLocation();
int getPlane();
}

View File

@@ -27,6 +27,8 @@ package net.runelite.api;
import java.awt.Graphics2D;
import java.awt.Polygon;
import java.awt.geom.Area;
import net.runelite.api.coords.LocalPoint;
import net.runelite.api.coords.WorldPoint;
public interface TileObject
{
@@ -38,11 +40,9 @@ public interface TileObject
int getId();
Point getWorldLocation();
WorldPoint getWorldLocation();
Point getLocalLocation();
Point getRegionLocation();
LocalPoint getLocalLocation();
Point getCanvasLocation();

View File

@@ -25,13 +25,13 @@
package net.runelite.api.events;
import lombok.Data;
import net.runelite.api.Point;
import net.runelite.api.Projectile;
import net.runelite.api.coords.LocalPoint;
@Data
public class ProjectileMoved
{
private Projectile projectile;
private Point position;
private int plane;
private LocalPoint position;
private int z;
}

View File

@@ -26,8 +26,8 @@ package net.runelite.api.queries;
import static java.lang.Math.abs;
import net.runelite.api.Actor;
import net.runelite.api.Point;
import net.runelite.api.Query;
import net.runelite.api.coords.LocalPoint;
public abstract class ActorQuery<EntityType extends Actor, QueryType> extends Query<EntityType, QueryType>
{
@@ -68,7 +68,7 @@ public abstract class ActorQuery<EntityType extends Actor, QueryType> extends Qu
}
@SuppressWarnings("unchecked")
public QueryType atLocalLocation(Point location)
public QueryType atLocalLocation(LocalPoint location)
{
predicate = and(actor -> actor.getLocalLocation().equals(location));
return (QueryType) this;
@@ -96,18 +96,18 @@ public abstract class ActorQuery<EntityType extends Actor, QueryType> extends Qu
}
@SuppressWarnings("unchecked")
public QueryType isWithinDistance(Point to, int distance)
public QueryType isWithinDistance(LocalPoint to, int distance)
{
predicate = and(a -> a.getLocalLocation().distanceTo(to) <= distance);
return (QueryType) this;
}
@SuppressWarnings("unchecked")
public QueryType isWithinArea(Point from, int area)
public QueryType isWithinArea(LocalPoint from, int area)
{
predicate = and(a ->
{
Point localLocation = a.getLocalLocation();
LocalPoint localLocation = a.getLocalLocation();
return abs(localLocation.getX() - from.getX()) < area
&& abs(localLocation.getY() - from.getY()) < area;
});

View File

@@ -26,7 +26,6 @@ package net.runelite.api.queries;
import static java.lang.Math.abs;
import net.runelite.api.Client;
import net.runelite.api.Point;
import net.runelite.api.Query;
import net.runelite.api.Region;
import net.runelite.api.Tile;
@@ -34,6 +33,8 @@ import net.runelite.api.TileObject;
import java.util.ArrayList;
import java.util.List;
import net.runelite.api.coords.LocalPoint;
import net.runelite.api.coords.WorldPoint;
public abstract class TileObjectQuery<EntityType extends TileObject, QueryType> extends Query<EntityType, QueryType>
{
@@ -78,32 +79,32 @@ public abstract class TileObjectQuery<EntityType extends TileObject, QueryType>
}
@SuppressWarnings("unchecked")
public QueryType atWorldLocation(Point location)
public QueryType atWorldLocation(WorldPoint location)
{
predicate = and(object -> object.getWorldLocation().equals(location));
return (QueryType) this;
}
@SuppressWarnings("unchecked")
public QueryType atLocalLocation(Point location)
public QueryType atLocalLocation(LocalPoint location)
{
predicate = and(object -> object.getLocalLocation().equals(location));
return (QueryType) this;
}
@SuppressWarnings("unchecked")
public QueryType isWithinDistance(Point to, int distance)
public QueryType isWithinDistance(LocalPoint to, int distance)
{
predicate = and(a -> a.getLocalLocation().distanceTo(to) <= distance);
return (QueryType) this;
}
@SuppressWarnings("unchecked")
public QueryType isWithinArea(Point from, int area)
public QueryType isWithinArea(LocalPoint from, int area)
{
predicate = and(a ->
{
Point localLocation = a.getLocalLocation();
LocalPoint localLocation = a.getLocalLocation();
return abs(localLocation.getX() - from.getX()) < area
&& abs(localLocation.getY() - from.getY()) < area;
});

View File

@@ -40,12 +40,12 @@ import net.runelite.api.MainBufferProvider;
import net.runelite.api.MenuAction;
import net.runelite.api.MessageNode;
import net.runelite.api.PacketBuffer;
import net.runelite.api.Point;
import net.runelite.api.Projectile;
import net.runelite.api.Region;
import net.runelite.api.RenderOverview;
import net.runelite.api.TextureProvider;
import net.runelite.api.WorldMapManager;
import net.runelite.api.coords.LocalPoint;
import net.runelite.api.events.ChatMessage;
import net.runelite.api.events.GameTick;
import net.runelite.api.events.MenuEntryAdded;
@@ -372,11 +372,11 @@ public class Hooks
*/
public static void projectileMoved(Projectile projectile, int targetX, int targetY, int targetZ, int cycle)
{
Point position = new Point(targetX, targetY);
LocalPoint position = new LocalPoint(targetX, targetY);
ProjectileMoved projectileMoved = new ProjectileMoved();
projectileMoved.setProjectile(projectile);
projectileMoved.setPosition(position);
projectileMoved.setPlane(targetZ);
projectileMoved.setZ(targetZ);
eventBus.post(projectileMoved);
}

View File

@@ -32,6 +32,7 @@ import javax.inject.Inject;
import lombok.extern.slf4j.Slf4j;
import net.runelite.api.Client;
import net.runelite.api.Point;
import net.runelite.api.coords.LocalPoint;
import net.runelite.client.ui.overlay.Overlay;
import net.runelite.client.ui.overlay.OverlayLayer;
import net.runelite.client.ui.overlay.OverlayPosition;
@@ -56,7 +57,7 @@ public class AgilityOverlay extends Overlay
@Override
public Dimension render(Graphics2D graphics, java.awt.Point parent)
{
Point playerLocation = client.getLocalPlayer().getLocalLocation();
LocalPoint playerLocation = client.getLocalPlayer().getLocalLocation();
Point mousePosition = client.getMouseCanvasPosition();
plugin.getObstacles().forEach((object, tile) ->
{

View File

@@ -25,25 +25,21 @@
package net.runelite.client.plugins.barrows;
import lombok.Getter;
import net.runelite.api.Point;
import lombok.RequiredArgsConstructor;
import net.runelite.api.coords.WorldPoint;
@RequiredArgsConstructor
public enum BarrowsBrothers
{
VERAC("V", new Point(3557, 3298)),
DHAROK("D", new Point(3575, 3298)),
AHRIM("A", new Point(3566, 3289)),
TORAG("T", new Point(3553, 3283)),
KARIL("K", new Point(3566, 3275)),
GUTHAN("G", new Point(3577, 3283));
VERAC("V", new WorldPoint(3557, 3298, 0)),
DHAROK("D", new WorldPoint(3575, 3298, 0)),
AHRIM("A", new WorldPoint(3566, 3289, 0)),
TORAG("T", new WorldPoint(3553, 3283, 0)),
KARIL("K", new WorldPoint(3566, 3275, 0)),
GUTHAN("G", new WorldPoint(3577, 3283, 0));
@Getter
private final String name;
@Getter
private final Point location;
BarrowsBrothers(String name, net.runelite.api.Point location)
{
this.name = name;
this.location = location;
}
private final WorldPoint location;
}

View File

@@ -37,6 +37,7 @@ import net.runelite.api.ObjectComposition;
import net.runelite.api.Perspective;
import net.runelite.api.Player;
import net.runelite.api.WallObject;
import net.runelite.api.coords.LocalPoint;
import net.runelite.client.ui.overlay.Overlay;
import net.runelite.client.ui.overlay.OverlayLayer;
import net.runelite.client.ui.overlay.OverlayPosition;
@@ -94,12 +95,12 @@ class BarrowsOverlay extends Overlay
return null;
}
private void renderObjects(Graphics2D graphics, Player local)
private void renderObjects(Graphics2D graphics, Player localPlayer)
{
net.runelite.api.Point localLocation = local.getLocalLocation();
LocalPoint localLocation = localPlayer.getLocalLocation();
for (WallObject wall : plugin.getWalls())
{
net.runelite.api.Point location = wall.getLocalLocation();
LocalPoint location = wall.getLocalLocation();
if (localLocation.distanceTo(location) <= MAX_DISTANCE)
{
renderWalls(graphics, wall);
@@ -108,7 +109,7 @@ class BarrowsOverlay extends Overlay
for (GameObject ladder : plugin.getLadders())
{
net.runelite.api.Point location = ladder.getLocalLocation();
LocalPoint location = ladder.getLocalLocation();
if (localLocation.distanceTo(location) <= MAX_DISTANCE)
{
renderLadders(graphics, ladder);
@@ -162,15 +163,15 @@ class BarrowsOverlay extends Overlay
{
for (BarrowsBrothers brother : BarrowsBrothers.values())
{
net.runelite.api.Point location = brother.getLocation();
LocalPoint localLocation = LocalPoint.fromWorld(client, brother.getLocation());
if (!Perspective.isWorldInScene(client, location))
if (localLocation == null)
{
continue;
}
net.runelite.api.Point minimapText = Perspective.getCanvasTextMiniMapLocation(client, graphics,
Perspective.worldToLocal(client, brother.getLocation()), brother.getName());
localLocation, brother.getName());
if (minimapText != null)
{

View File

@@ -32,6 +32,7 @@ import javax.inject.Inject;
import net.runelite.api.Client;
import net.runelite.api.GameObject;
import net.runelite.api.Point;
import net.runelite.api.coords.LocalPoint;
import net.runelite.client.ui.overlay.Overlay;
import net.runelite.client.ui.overlay.OverlayPosition;
@@ -60,12 +61,12 @@ class ConveyorBeltOverlay extends Overlay
return null;
}
Point localLocation = client.getLocalPlayer().getLocalLocation();
LocalPoint localLocation = client.getLocalPlayer().getLocalLocation();
Point mousePosition = client.getMouseCanvasPosition();
GameObject object = plugin.getConveyorBelt();
Point location = object.getLocalLocation();
LocalPoint location = object.getLocalLocation();
if (localLocation.distanceTo(location) <= MAX_DISTANCE)
{
Area objectClickbox = object.getClickbox();

View File

@@ -33,6 +33,7 @@ import net.runelite.api.Client;
import net.runelite.api.Perspective;
import static net.runelite.api.Perspective.LOCAL_TILE_SIZE;
import net.runelite.api.Point;
import net.runelite.api.coords.LocalPoint;
import net.runelite.client.ui.overlay.Overlay;
import net.runelite.client.ui.overlay.OverlayPosition;
import net.runelite.client.ui.overlay.OverlayPriority;
@@ -66,19 +67,14 @@ class CannonOverlay extends Overlay
return null;
}
if (!Perspective.isWorldInScene(client, plugin.getCannonPosition()))
{
return null;
}
Point cannonPoint = Perspective.worldToLocal(client, plugin.getCannonPosition());
LocalPoint cannonPoint = LocalPoint.fromWorld(client, plugin.getCannonPosition());
if (cannonPoint == null)
{
return null;
}
Point localLocation = client.getLocalPlayer().getLocalLocation();
LocalPoint localLocation = client.getLocalPlayer().getLocalLocation();
if (localLocation.distanceTo(cannonPoint) <= MAX_DISTANCE)
{
@@ -110,7 +106,7 @@ class CannonOverlay extends Overlay
* Draw the double hit spots on a 6 by 6 grid around the cannon
* @param startTile The position of the cannon
*/
private void drawDoubleHitSpots(Graphics2D graphics, net.runelite.api.Point startTile, Color color)
private void drawDoubleHitSpots(Graphics2D graphics, LocalPoint startTile, Color color)
{
for (int x = -3; x <= 3; x++)
{
@@ -130,7 +126,7 @@ class CannonOverlay extends Overlay
int xPos = startTile.getX() - (x * LOCAL_TILE_SIZE);
int yPos = startTile.getY() - (y * LOCAL_TILE_SIZE);
net.runelite.api.Point marker = new net.runelite.api.Point(xPos, yPos);
LocalPoint marker = new LocalPoint(xPos, yPos);
Polygon poly = Perspective.getCanvasTilePoly(client, marker);
if (poly == null)

View File

@@ -37,11 +37,11 @@ import net.runelite.api.Client;
import net.runelite.api.GameObject;
import net.runelite.api.ItemID;
import static net.runelite.api.ObjectID.CANNON_BASE;
import net.runelite.api.Perspective;
import net.runelite.api.Player;
import net.runelite.api.Projectile;
import static net.runelite.api.ProjectileID.CANNONBALL;
import static net.runelite.api.ProjectileID.GRANITE_CANNONBALL;
import net.runelite.api.coords.WorldPoint;
import net.runelite.api.events.ChatMessage;
import net.runelite.api.events.ConfigChanged;
import net.runelite.api.events.GameObjectSpawned;
@@ -71,7 +71,7 @@ public class CannonPlugin extends Plugin
private boolean cannonPlaced;
@Getter
private net.runelite.api.Point cannonPosition;
private WorldPoint cannonPosition;
@Getter
private GameObject cannon;
@@ -159,7 +159,7 @@ public class CannonPlugin extends Plugin
if ((projectile.getId() == CANNONBALL || projectile.getId() == GRANITE_CANNONBALL) && cannonPosition != null)
{
net.runelite.api.Point projectileLoc = Perspective.localToWorld(client, new net.runelite.api.Point(projectile.getX1(), projectile.getY1()));
WorldPoint projectileLoc = WorldPoint.fromLocal(client, projectile.getX1(), projectile.getY1(), client.getPlane());
//Check to see if projectile x,y is 0 else it will continuously decrease while ball is flying.
if (projectileLoc.equals(cannonPosition) && projectile.getX() == 0 && projectile.getY() == 0)

View File

@@ -25,7 +25,6 @@
*/
package net.runelite.client.plugins.devtools;
import java.awt.BasicStroke;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.Font;
@@ -52,6 +51,7 @@ import net.runelite.api.Projectile;
import net.runelite.api.Region;
import net.runelite.api.Tile;
import net.runelite.api.WallObject;
import net.runelite.api.coords.LocalPoint;
import net.runelite.api.widgets.Widget;
import net.runelite.api.widgets.WidgetInfo;
import net.runelite.api.widgets.WidgetItem;
@@ -341,7 +341,7 @@ public class DevToolsOverlay extends Overlay
int originX = projectile.getX1();
int originY = projectile.getY1();
net.runelite.api.Point tilePoint = new net.runelite.api.Point(originX, originY);
LocalPoint tilePoint = new LocalPoint(originX, originY);
Polygon poly = Perspective.getCanvasTilePoly(client, tilePoint);
if (poly != null)
@@ -372,17 +372,6 @@ public class DevToolsOverlay extends Overlay
}
}
public void renderProjectileOrigin(Graphics2D graphics, Projectile projectile, int floor, net.runelite.api.Point origin)
{
Polygon poly = Perspective.getCanvasTilePoly(client, origin);
graphics.setColor(Color.RED);
graphics.setStroke(new BasicStroke(2));
graphics.drawPolygon(poly);
graphics.setColor(Color.RED);
graphics.fillPolygon(poly);
}
public void renderWidgets(Graphics2D graphics)
{
Widget widget = plugin.currentWidget;

View File

@@ -28,7 +28,7 @@ import java.awt.Dimension;
import java.awt.Graphics2D;
import javax.inject.Inject;
import net.runelite.api.Client;
import net.runelite.api.Point;
import net.runelite.api.coords.WorldPoint;
import net.runelite.client.ui.overlay.Overlay;
import net.runelite.client.ui.overlay.OverlayPosition;
import net.runelite.client.ui.overlay.components.PanelComponent;
@@ -58,7 +58,7 @@ public class LocationOverlay extends Overlay
panelComponent = new PanelComponent();
Point localWorld = client.getLocalPlayer().getWorldLocation();
WorldPoint localWorld = client.getLocalPlayer().getWorldLocation();
panelComponent.getLines().add(new PanelComponent.Line(
"Tile",

View File

@@ -47,6 +47,7 @@ import net.runelite.api.Player;
import net.runelite.api.Point;
import net.runelite.api.Region;
import net.runelite.api.Tile;
import net.runelite.api.coords.LocalPoint;
import net.runelite.client.game.ItemManager;
import net.runelite.client.ui.FontManager;
import net.runelite.client.ui.overlay.Overlay;
@@ -122,13 +123,13 @@ public class GroundItemsOverlay extends Overlay
graphics.setFont(FontManager.getRunescapeSmallFont());
int z = client.getPlane();
Point from = player.getRegionLocation();
LocalPoint from = player.getLocalLocation();
int lowerX = max(0, from.getX() - MAX_RANGE);
int lowerY = max(0, from.getY() - MAX_RANGE);
int lowerX = max(0, from.getRegionX() - MAX_RANGE);
int lowerY = max(0, from.getRegionY() - MAX_RANGE);
int upperX = min(from.getX() + MAX_RANGE, REGION_SIZE - 1);
int upperY = min(from.getY() + MAX_RANGE, REGION_SIZE - 1);
int upperX = min(from.getRegionX() + MAX_RANGE, REGION_SIZE - 1);
int upperY = min(from.getRegionY() + MAX_RANGE, REGION_SIZE - 1);
for (int x = lowerX; x <= upperX; ++x)
{

View File

@@ -39,7 +39,7 @@ import net.runelite.api.Client;
import net.runelite.api.GameObject;
import net.runelite.api.ObjectID;
import net.runelite.api.Player;
import net.runelite.api.Point;
import net.runelite.api.coords.WorldPoint;
import net.runelite.api.events.ConfigChanged;
import net.runelite.api.events.GameObjectSpawned;
import net.runelite.api.events.GameTick;
@@ -321,7 +321,7 @@ public class HunterPlugin extends Plugin
*/
private HunterTrap getTrapFromCollection(GameObject gameObject)
{
final Point gameObjectLocation = gameObject.getWorldLocation();
final WorldPoint gameObjectLocation = gameObject.getWorldLocation();
for (HunterTrap trap : traps)
{

View File

@@ -32,6 +32,7 @@ import java.awt.Point;
import java.awt.geom.Arc2D;
import javax.inject.Inject;
import net.runelite.api.Client;
import net.runelite.api.coords.LocalPoint;
import net.runelite.client.ui.overlay.Overlay;
import net.runelite.client.ui.overlay.OverlayLayer;
import net.runelite.client.ui.overlay.OverlayPosition;
@@ -108,10 +109,10 @@ public class TrapOverlay extends Overlay
*/
private void drawTraps(Graphics2D graphics)
{
net.runelite.api.Point localLocation = client.getLocalPlayer().getLocalLocation();
LocalPoint localLocation = client.getLocalPlayer().getLocalLocation();
for (HunterTrap trap : plugin.getTraps())
{
net.runelite.api.Point trapLocation = trap.getGameObject().getLocalLocation();
LocalPoint trapLocation = trap.getGameObject().getLocalLocation();
if (trapLocation != null && localLocation.distanceTo(trapLocation) <= MAX_DISTANCE)
{
switch (trap.getState())

View File

@@ -42,6 +42,7 @@ import net.runelite.api.SceneTilePaint;
import net.runelite.api.SpritePixels;
import net.runelite.api.Tile;
import net.runelite.api.WallObject;
import net.runelite.api.coords.LocalPoint;
import net.runelite.api.events.GameStateChanged;
import net.runelite.api.events.MapRegionChanged;
import static net.runelite.client.plugins.instancemap.PixelMaps.ALL;
@@ -220,13 +221,14 @@ class InstanceMapOverlay extends Overlay
*/
private void drawPlayerDot(Graphics2D graphics, Player player, Color dotColor, Color outlineColor)
{
Point playerLocation = player.getRegionLocation();
LocalPoint playerLoc = player.getLocalLocation();
Tile[][] tiles = getTiles();
Point localPlayerPoint = new Point(playerLocation.getX(), (tiles[0].length - 1) - playerLocation.getY()); // flip the y value
int tileX = playerLoc.getRegionX();
int tileY = (tiles[0].length - 1) - playerLoc.getRegionY(); // flip the y value
int x = OVERLAY_POSITION.getX() + (int) (localPlayerPoint.getX() * TILE_SIZE * MAP_SCALING);
int y = OVERLAY_POSITION.getY() + (int) (localPlayerPoint.getY() * TILE_SIZE * MAP_SCALING);
int x = OVERLAY_POSITION.getX() + (int) (tileX * TILE_SIZE * MAP_SCALING);
int y = OVERLAY_POSITION.getY() + (int) (tileY * TILE_SIZE * MAP_SCALING);
graphics.setColor(dotColor);
graphics.fillRect(x, y, PLAYER_MARKER_SIZE, PLAYER_MARKER_SIZE);//draw the players point on the map
graphics.setColor(outlineColor);

View File

@@ -40,6 +40,7 @@ import net.runelite.api.Client;
import net.runelite.api.Perspective;
import net.runelite.api.Player;
import net.runelite.api.Point;
import net.runelite.api.coords.LocalPoint;
import net.runelite.api.coords.WorldPoint;
import net.runelite.client.ui.overlay.Overlay;
import net.runelite.client.ui.overlay.OverlayLayer;
@@ -50,7 +51,7 @@ import static net.runelite.api.Perspective.getCanvasTilePoly;
public class KourendLibraryOverlay extends Overlay
{
private final static Point LIBRARY_CENTER = new Point(1632, 3807);
private final static WorldPoint LIBRARY_CENTER = new WorldPoint(1632, 3807, 1);
private final static int MAXIMUM_DISTANCE = 24;
private final static int ROUGH_ENABLE_DISTANCE = 45;
@@ -76,9 +77,9 @@ public class KourendLibraryOverlay extends Overlay
return null;
}
Point playerLoc = player.getWorldLocation();
WorldPoint playerLoc = player.getWorldLocation();
if (playerLoc.distanceTo(LIBRARY_CENTER) > ROUGH_ENABLE_DISTANCE)
if (playerLoc.distanceTo2D(LIBRARY_CENTER) > ROUGH_ENABLE_DISTANCE)
{
return null;
}
@@ -100,7 +101,7 @@ public class KourendLibraryOverlay extends Overlay
continue;
}
Point localBookcase = Perspective.worldToLocal(client, caseLoc.toPoint());
LocalPoint localBookcase = LocalPoint.fromWorld(client, caseLoc);
Point screenBookcase = Perspective.worldToCanvas(client, localBookcase.getX(), localBookcase.getY(), caseLoc.getPlane(), 25);
if (screenBookcase != null)
@@ -211,7 +212,7 @@ public class KourendLibraryOverlay extends Overlay
.forEach(n ->
{
Book b = library.getCustomerBook();
Point local = n.getLocalLocation();
LocalPoint local = n.getLocalLocation();
Polygon poly = getCanvasTilePoly(client, local);
OverlayUtil.renderPolygon(g, poly, Color.WHITE);
Point screen = Perspective.worldToCanvas(client, local.getX(), local.getY(), client.getPlane(), n.getLogicalHeight());

View File

@@ -35,8 +35,6 @@ import net.runelite.api.AnimationID;
import net.runelite.api.ChatMessageType;
import net.runelite.api.Client;
import net.runelite.api.MenuAction;
import net.runelite.api.Perspective;
import net.runelite.api.Point;
import net.runelite.api.coords.WorldPoint;
import net.runelite.api.events.AnimationChanged;
import net.runelite.api.events.ChatMessage;
@@ -114,8 +112,7 @@ public class KourendLibraryPlugin extends Plugin
{
if (MenuAction.GAME_OBJECT_FIRST_OPTION == menuOpt.getMenuAction() && menuOpt.getMenuTarget().contains("Bookshelf"))
{
Point worldPoint = Perspective.regionToWorld(client, new Point(menuOpt.getId() & 127, menuOpt.getId() >> 7 & 127));
lastBookcaseClick = new WorldPoint(worldPoint.getX(), worldPoint.getY(), client.getPlane());
lastBookcaseClick = WorldPoint.fromLocal(client, menuOpt.getId() & 127, menuOpt.getId() >> 7 & 127, client.getPlane());
}
}

View File

@@ -38,6 +38,7 @@ import net.runelite.api.Player;
import net.runelite.api.Point;
import net.runelite.api.Skill;
import net.runelite.api.WallObject;
import net.runelite.api.coords.LocalPoint;
import net.runelite.client.game.SkillIconManager;
import net.runelite.client.ui.overlay.Overlay;
import net.runelite.client.ui.overlay.OverlayLayer;
@@ -83,10 +84,10 @@ class MotherlodeRocksOverlay extends Overlay
private void renderTiles(Graphics2D graphics, Player local)
{
Point localLocation = local.getLocalLocation();
LocalPoint localLocation = local.getLocalLocation();
for (WallObject vein : plugin.getVeins())
{
Point location = vein.getLocalLocation();
LocalPoint location = vein.getLocalLocation();
if (localLocation.distanceTo(location) <= MAX_DISTANCE)
{
renderVein(graphics, vein);
@@ -95,7 +96,7 @@ class MotherlodeRocksOverlay extends Overlay
for (GameObject rock : plugin.getRocks())
{
Point location = rock.getLocalLocation();
LocalPoint location = rock.getLocalLocation();
if (localLocation.distanceTo(location) <= MAX_DISTANCE)
{
renderRock(graphics, rock);

View File

@@ -33,7 +33,7 @@ import javax.inject.Inject;
import lombok.Getter;
import net.runelite.api.Client;
import net.runelite.api.Perspective;
import net.runelite.api.Point;
import net.runelite.api.coords.LocalPoint;
import net.runelite.client.ui.overlay.Overlay;
import net.runelite.client.ui.overlay.OverlayLayer;
import net.runelite.client.ui.overlay.OverlayPosition;
@@ -69,10 +69,10 @@ public class PohOverlay extends Overlay
@Override
public Dimension render(Graphics2D graphics, java.awt.Point parent)
{
Point localLocation = client.getLocalPlayer().getLocalLocation();
LocalPoint localLocation = client.getLocalPlayer().getLocalLocation();
plugin.getPohObjects().forEach((object, tile) ->
{
Point location = object.getLocalLocation();
LocalPoint location = object.getLocalLocation();
if (tile.getPlane() == client.getPlane() && localLocation.distanceTo(location) <= MAX_DISTANCE)
{
PohIcons icon = PohIcons.getIcon(object.getId());

View File

@@ -31,7 +31,7 @@ import java.awt.Polygon;
import javax.inject.Inject;
import lombok.extern.slf4j.Slf4j;
import net.runelite.api.Client;
import net.runelite.api.Point;
import net.runelite.api.coords.LocalPoint;
import net.runelite.client.ui.overlay.Overlay;
import net.runelite.client.ui.overlay.OverlayLayer;
import net.runelite.client.ui.overlay.OverlayPosition;
@@ -61,7 +61,7 @@ public class RoguesDenOverlay extends Overlay
return null;
}
Point playerLocation = client.getLocalPlayer().getLocalLocation();
LocalPoint playerLocation = client.getLocalPlayer().getLocalLocation();
plugin.getObstaclesHull().forEach((obstacle, tile) ->
{

View File

@@ -51,6 +51,7 @@ import net.runelite.api.Client;
import net.runelite.api.DecorativeObject;
import net.runelite.api.Perspective;
import net.runelite.api.Point;
import net.runelite.api.coords.LocalPoint;
import net.runelite.client.game.ItemManager;
import net.runelite.client.ui.overlay.Overlay;
import net.runelite.client.ui.overlay.OverlayLayer;
@@ -89,10 +90,10 @@ class AbyssOverlay extends Overlay
return null;
}
Point localLocation = client.getLocalPlayer().getLocalLocation();
LocalPoint localLocation = client.getLocalPlayer().getLocalLocation();
for (DecorativeObject object : plugin.getAbyssObjects())
{
Point location = object.getLocalLocation();
LocalPoint location = object.getLocalLocation();
if (localLocation.distanceTo(location) <= MAX_DISTANCE)
{
renderRifts(graphics, object);

View File

@@ -24,13 +24,12 @@
*/
package net.runelite.client.plugins.tileindicators;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.Graphics2D;
import java.awt.Polygon;
import net.runelite.api.Client;
import net.runelite.api.Perspective;
import net.runelite.api.Point;
import net.runelite.api.coords.LocalPoint;
import net.runelite.client.ui.overlay.Overlay;
import net.runelite.client.ui.overlay.OverlayLayer;
import net.runelite.client.ui.overlay.OverlayPosition;
@@ -54,24 +53,20 @@ public class TileIndicatorsOverlay extends Overlay
@Override
public Dimension render(Graphics2D graphics, java.awt.Point parent)
{
if (client.getSceneDestinationLocation().getX() > 0
&& client.getSceneDestinationLocation().getY() > 0)
LocalPoint dest = client.getLocalDestinationLocation();
if (dest == null)
{
drawRegionTile(graphics, client.getSceneDestinationLocation(), config.highlightDestinationColor());
return null;
}
Polygon poly = Perspective.getCanvasTilePoly(client, dest);
if (poly == null)
{
return null;
}
OverlayUtil.renderPolygon(graphics, poly, config.highlightDestinationColor());
return null;
}
private void drawRegionTile(Graphics2D graphics, Point tile, Color color)
{
Point localTile = Perspective.regionToLocal(client, tile);
localTile = new Point(localTile.getX() + Perspective.LOCAL_TILE_SIZE / 2, localTile.getY() + Perspective.LOCAL_TILE_SIZE / 2);
Polygon poly = Perspective.getCanvasTilePoly(client, localTile);
if (poly != null)
{
OverlayUtil.renderPolygon(graphics, poly, color);
}
}
}

View File

@@ -30,10 +30,11 @@ import java.awt.image.BufferedImage;
import net.runelite.api.Actor;
import net.runelite.api.NPC;
import net.runelite.api.Perspective;
import static net.runelite.api.Perspective.LOCAL_COORD_BITS;
import net.runelite.api.Player;
import net.runelite.api.Point;
import net.runelite.api.SpritePixels;
import net.runelite.api.coords.LocalPoint;
import net.runelite.api.coords.WorldPoint;
import net.runelite.api.events.GraphicChanged;
import net.runelite.api.mixins.FieldHook;
import net.runelite.api.mixins.Inject;
@@ -123,24 +124,16 @@ public abstract class RSActorMixin implements RSActor
@Override
@Inject
public Point getWorldLocation()
public WorldPoint getWorldLocation()
{
Point localLocation = getLocalLocation();
return Perspective.localToWorld(client, localLocation);
return WorldPoint.fromLocal(client, getX(), getY(), client.getPlane());
}
@Inject
@Override
public Point getRegionLocation()
public LocalPoint getLocalLocation()
{
return new Point(getX() >>> LOCAL_COORD_BITS, getY() >>> LOCAL_COORD_BITS);// divided by 128
}
@Inject
@Override
public Point getLocalLocation()
{
return new Point(getX(), getY());
return new LocalPoint(getX(), getY());
}
@Inject

View File

@@ -26,6 +26,7 @@ package net.runelite.mixins;
import java.util.ArrayList;
import java.util.List;
import javax.annotation.Nullable;
import net.runelite.api.ChatMessageType;
import net.runelite.api.ClanMember;
import net.runelite.api.GameState;
@@ -43,6 +44,7 @@ import net.runelite.api.Projectile;
import net.runelite.api.Setting;
import net.runelite.api.Skill;
import net.runelite.api.Varbits;
import net.runelite.api.coords.LocalPoint;
import net.runelite.api.events.ExperienceChanged;
import net.runelite.api.events.GameStateChanged;
import net.runelite.api.events.GrandExchangeOfferChanged;
@@ -366,9 +368,16 @@ public abstract class RSClientMixin implements RSClient
@Inject
@Override
public Point getSceneDestinationLocation()
@Nullable
public LocalPoint getLocalDestinationLocation()
{
return new Point(getDestinationX(), getDestinationY());
int regionX = getDestinationX();
int regionY = getDestinationY();
if (regionX != 0 && regionY != 0)
{
return LocalPoint.fromRegion(regionX, regionY);
}
return null;
}
@Inject

View File

@@ -28,9 +28,10 @@ import net.runelite.api.Actor;
import net.runelite.api.DecorativeObject;
import net.runelite.api.GameObject;
import net.runelite.api.GroundObject;
import net.runelite.api.Perspective;
import net.runelite.api.Point;
import net.runelite.api.WallObject;
import net.runelite.api.coords.LocalPoint;
import net.runelite.api.coords.WorldPoint;
import net.runelite.api.events.DecorativeObjectChanged;
import net.runelite.api.events.DecorativeObjectDespawned;
import net.runelite.api.events.DecorativeObjectSpawned;
@@ -75,10 +76,9 @@ public abstract class RSTileMixin implements RSTile
@Inject
@Override
public Point getWorldLocation()
public WorldPoint getWorldLocation()
{
Point regionLocation = getRegionLocation();
return Perspective.regionToWorld(client, regionLocation);
return WorldPoint.fromRegion(client, getX(), getY(), getPlane());
}
@Inject
@@ -90,10 +90,9 @@ public abstract class RSTileMixin implements RSTile
@Inject
@Override
public Point getLocalLocation()
public LocalPoint getLocalLocation()
{
Point regionLocation = getRegionLocation();
return Perspective.regionToLocal(client, regionLocation);
return LocalPoint.fromRegion(getX(), getY());
}
@FieldHook("wallObject")

View File

@@ -30,9 +30,10 @@ import java.util.ArrayList;
import java.util.List;
import net.runelite.api.Model;
import net.runelite.api.Perspective;
import static net.runelite.api.Perspective.LOCAL_COORD_BITS;
import net.runelite.api.Point;
import net.runelite.api.TileObject;
import net.runelite.api.coords.LocalPoint;
import net.runelite.api.coords.WorldPoint;
import net.runelite.api.mixins.Inject;
import net.runelite.api.mixins.Mixin;
import net.runelite.api.mixins.Mixins;
@@ -68,25 +69,16 @@ public abstract class TileObjectMixin implements TileObject
@Override
@Inject
public Point getWorldLocation()
public WorldPoint getWorldLocation()
{
Point localLocation = getLocalLocation();
return Perspective.localToWorld(client, localLocation);
return WorldPoint.fromLocal(client, getX(), getY(), client.getPlane()); //TODO: use the correct plane
}
@Override
@Inject
public Point getLocalLocation()
public LocalPoint getLocalLocation()
{
return new Point(getX(), getY());
}
@Override
@Inject
public Point getRegionLocation()
{
Point localLocation = getLocalLocation();
return new Point(localLocation.getX() >>> LOCAL_COORD_BITS, localLocation.getY() >>> LOCAL_COORD_BITS);
return new LocalPoint(getX(), getY());
}
@Override
@@ -100,8 +92,7 @@ public abstract class TileObjectMixin implements TileObject
@Inject
public Point getCanvasLocation(int zOffset)
{
Point localLocation = getLocalLocation();
return Perspective.worldToCanvas(client, localLocation.getX(), localLocation.getY(), 0, zOffset);
return Perspective.worldToCanvas(client, getX(), getY(), 0, zOffset);
}
@Override