From 4d6386d8468da27305e98649b025627125f1c867 Mon Sep 17 00:00:00 2001 From: Tomas Slusny Date: Fri, 22 Jun 2018 11:00:22 +0200 Subject: [PATCH] Move projectileMoved to mixins Signed-off-by: Tomas Slusny --- .../net/runelite/client/callback/Hooks.java | 24 ----------------- .../runelite/mixins/RSProjectileMixin.java | 26 +++++++++++++++++++ 2 files changed, 26 insertions(+), 24 deletions(-) diff --git a/runelite-client/src/main/java/net/runelite/client/callback/Hooks.java b/runelite-client/src/main/java/net/runelite/client/callback/Hooks.java index 59b5adbe9a..3da2cfd60a 100644 --- a/runelite-client/src/main/java/net/runelite/client/callback/Hooks.java +++ b/runelite-client/src/main/java/net/runelite/client/callback/Hooks.java @@ -43,17 +43,14 @@ import net.runelite.api.Client; import net.runelite.api.GraphicsObject; import net.runelite.api.MainBufferProvider; import net.runelite.api.MenuAction; -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.GraphicsObjectCreated; import net.runelite.api.events.MenuOptionClicked; -import net.runelite.api.events.ProjectileMoved; import net.runelite.api.widgets.Widget; import static net.runelite.api.widgets.WidgetInfo.WORLD_MAP_VIEW; import net.runelite.client.Notifier; @@ -384,27 +381,6 @@ public class Hooks eventBus.post(chatMessage); } - /** - * Called when a projectile is set to move towards a point. For - * projectiles that target the ground, like AoE projectiles from - * Lizardman Shamans, this is only called once - * - * @param projectile The projectile being moved - * @param targetX X position of where the projectile is being moved to - * @param targetY Y position of where the projectile is being moved to - * @param targetZ Z position of where the projectile is being moved to - * @param cycle - */ - public static void projectileMoved(Projectile projectile, int targetX, int targetY, int targetZ, int cycle) - { - LocalPoint position = new LocalPoint(targetX, targetY); - ProjectileMoved projectileMoved = new ProjectileMoved(); - projectileMoved.setProjectile(projectile); - projectileMoved.setPosition(position); - projectileMoved.setZ(targetZ); - eventBus.post(projectileMoved); - } - public static void updateNpcs() { // The NPC update event seem to run every server tick, diff --git a/runelite-mixins/src/main/java/net/runelite/mixins/RSProjectileMixin.java b/runelite-mixins/src/main/java/net/runelite/mixins/RSProjectileMixin.java index 00212b46b2..7410a48b3d 100644 --- a/runelite-mixins/src/main/java/net/runelite/mixins/RSProjectileMixin.java +++ b/runelite-mixins/src/main/java/net/runelite/mixins/RSProjectileMixin.java @@ -25,9 +25,13 @@ package net.runelite.mixins; import net.runelite.api.Actor; +import net.runelite.api.coords.LocalPoint; +import net.runelite.api.events.ProjectileMoved; import net.runelite.api.mixins.Inject; +import net.runelite.api.mixins.MethodHook; import net.runelite.api.mixins.Mixin; import net.runelite.api.mixins.Shadow; +import static net.runelite.client.callback.Hooks.eventBus; import net.runelite.rs.api.RSClient; import net.runelite.rs.api.RSNPC; import net.runelite.rs.api.RSPlayer; @@ -77,4 +81,26 @@ public abstract class RSProjectileMixin implements RSProjectile return players[idx]; } } + + /** + * Called when a projectile is set to move towards a point. For + * projectiles that target the ground, like AoE projectiles from + * Lizardman Shamans, this is only called once + * + * @param targetX X position of where the projectile is being moved to + * @param targetY Y position of where the projectile is being moved to + * @param targetZ Z position of where the projectile is being moved to + * @param cycle + */ + @Inject + @MethodHook("moveProjectile") + public void projectileMoved(int targetX, int targetY, int targetZ, int cycle) + { + final LocalPoint position = new LocalPoint(targetX, targetY); + final ProjectileMoved projectileMoved = new ProjectileMoved(); + projectileMoved.setProjectile(this); + projectileMoved.setPosition(position); + projectileMoved.setZ(targetZ); + eventBus.post(projectileMoved); + } }