hooks: move combat info callback to actor mixin

This commit is contained in:
Adam
2018-05-31 18:13:16 -04:00
parent 08c605a0d0
commit fd3a27f8b6
2 changed files with 16 additions and 10 deletions

View File

@@ -61,7 +61,6 @@ import net.runelite.api.events.FocusChanged;
import net.runelite.api.events.GameTick;
import net.runelite.api.events.GraphicsObjectCreated;
import net.runelite.api.events.HitsplatApplied;
import net.runelite.api.events.LocalPlayerDeath;
import net.runelite.api.events.MenuOpened;
import net.runelite.api.events.MenuOptionClicked;
import net.runelite.api.events.PostItemComposition;
@@ -454,15 +453,6 @@ public class Hooks
shouldProcessGameTick = true;
}
public static void onSetCombatInfo(Actor actor, int combatInfoId, int gameCycle, int var3, int var4, int healthRatio, int health)
{
if (healthRatio == 0 && actor == client.getLocalPlayer())
{
LocalPlayerDeath event = new LocalPlayerDeath();
eventBus.post(event);
}
}
public static void postItemComposition(ItemComposition itemComposition)
{
PostItemComposition event = new PostItemComposition();

View File

@@ -39,11 +39,14 @@ import net.runelite.api.coords.WorldArea;
import net.runelite.api.coords.WorldPoint;
import net.runelite.api.events.AnimationChanged;
import net.runelite.api.events.GraphicChanged;
import net.runelite.api.events.LocalPlayerDeath;
import net.runelite.api.mixins.FieldHook;
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 static net.runelite.client.callback.Hooks.log;
import net.runelite.rs.api.RSActor;
import net.runelite.rs.api.RSClient;
import net.runelite.rs.api.RSCombatInfo1;
@@ -227,4 +230,17 @@ public abstract class RSActorMixin implements RSActor
return new WorldArea(this.getWorldLocation(), size, size);
}
@Inject
@MethodHook("setCombatInfo")
public void setCombatInfo(int combatInfoId, int gameCycle, int var3, int var4, int healthRatio, int health)
{
if (healthRatio == 0 && this == client.getLocalPlayer())
{
log.debug("You died!");
LocalPlayerDeath event = new LocalPlayerDeath();
eventBus.post(event);
}
}
}