From 92c8e9e9e6ac8d722bf6d0e8410890e2d803e67a Mon Sep 17 00:00:00 2001 From: WooxSolo Date: Sun, 8 Apr 2018 12:43:00 +0200 Subject: [PATCH] Fix Actor.getWorldLocation to use pathX/pathY instead of getX/getY --- runelite-api/src/main/java/net/runelite/api/Actor.java | 5 +++++ .../src/main/java/net/runelite/mixins/RSActorMixin.java | 5 ++++- .../src/main/java/net/runelite/rs/api/RSActor.java | 6 ++++++ 3 files changed, 15 insertions(+), 1 deletion(-) diff --git a/runelite-api/src/main/java/net/runelite/api/Actor.java b/runelite-api/src/main/java/net/runelite/api/Actor.java index 4c021a2249..2655efc236 100644 --- a/runelite-api/src/main/java/net/runelite/api/Actor.java +++ b/runelite-api/src/main/java/net/runelite/api/Actor.java @@ -42,6 +42,11 @@ public interface Actor extends Renderable int getHealth(); + /** + * Retrieve the server location of the actor. Note that this is typically + * a couple steps ahead of where the client renders the actor. + * @return Returns the server location of the actor. + */ WorldPoint getWorldLocation(); LocalPoint getLocalLocation(); diff --git a/runelite-mixins/src/main/java/net/runelite/mixins/RSActorMixin.java b/runelite-mixins/src/main/java/net/runelite/mixins/RSActorMixin.java index ef35c2c80f..6dff4fcf43 100644 --- a/runelite-mixins/src/main/java/net/runelite/mixins/RSActorMixin.java +++ b/runelite-mixins/src/main/java/net/runelite/mixins/RSActorMixin.java @@ -127,7 +127,10 @@ public abstract class RSActorMixin implements RSActor @Inject public WorldPoint getWorldLocation() { - return WorldPoint.fromLocal(client, getX(), getY(), client.getPlane()); + return WorldPoint.fromLocal(client, + this.getPathX()[0] * Perspective.LOCAL_TILE_SIZE + Perspective.LOCAL_TILE_SIZE / 2, + this.getPathY()[0] * Perspective.LOCAL_TILE_SIZE + Perspective.LOCAL_TILE_SIZE / 2, + client.getPlane()); } @Inject diff --git a/runescape-api/src/main/java/net/runelite/rs/api/RSActor.java b/runescape-api/src/main/java/net/runelite/rs/api/RSActor.java index e9250c1c2d..c9854f024a 100644 --- a/runescape-api/src/main/java/net/runelite/rs/api/RSActor.java +++ b/runescape-api/src/main/java/net/runelite/rs/api/RSActor.java @@ -41,6 +41,12 @@ public interface RSActor extends RSRenderable, Actor @Import("y") int getY(); + @Import("pathX") + int[] getPathX(); + + @Import("pathY") + int[] getPathY(); + @Import("animation") @Override int getAnimation();