diff --git a/runelite-api/src/main/java/net/runelite/api/events/DynamicObjectAnimationChanged.java b/runelite-api/src/main/java/net/runelite/api/events/DynamicObjectAnimationChanged.java new file mode 100644 index 0000000000..1e4571e4fe --- /dev/null +++ b/runelite-api/src/main/java/net/runelite/api/events/DynamicObjectAnimationChanged.java @@ -0,0 +1,16 @@ +package net.runelite.api.events; + +import lombok.Data; + +@Data +public class DynamicObjectAnimationChanged +{ + /** + * The object that has entered a new animation. + */ + private int object; + /** + * The id of the animation animation. + */ + private int animation; +} diff --git a/runelite-mixins/src/main/java/net/runelite/mixins/RSDynamicObjectMixin.java b/runelite-mixins/src/main/java/net/runelite/mixins/RSDynamicObjectMixin.java index 5760e13157..ed1a4a70b9 100644 --- a/runelite-mixins/src/main/java/net/runelite/mixins/RSDynamicObjectMixin.java +++ b/runelite-mixins/src/main/java/net/runelite/mixins/RSDynamicObjectMixin.java @@ -24,6 +24,7 @@ */ package net.runelite.mixins; +import net.runelite.api.events.DynamicObjectAnimationChanged; import net.runelite.api.mixins.Copy; import net.runelite.api.mixins.FieldHook; import net.runelite.api.mixins.Inject; @@ -89,6 +90,14 @@ public abstract class RSDynamicObjectMixin implements RSDynamicObject public void rl$init(int id, int type, int orientation, int plane, int x, int y, int animationID, boolean var8, RSEntity var9) { this.animationID = animationID; + + if (animationID != -1) + { + DynamicObjectAnimationChanged dynamicObjectAnimationChanged = new DynamicObjectAnimationChanged(); + dynamicObjectAnimationChanged.setObject(id); + dynamicObjectAnimationChanged.setAnimation(animationID); + client.getCallbacks().post(dynamicObjectAnimationChanged); + } } @Inject