runelite-api: expand hint arrow api
This commit is contained in:
@@ -346,6 +346,8 @@ public interface Client extends GameEngine
|
||||
|
||||
boolean hasHintArrow();
|
||||
|
||||
HintArrowType getHintArrowType();
|
||||
|
||||
void clearHintArrow();
|
||||
|
||||
void setHintArrow(WorldPoint point);
|
||||
@@ -354,6 +356,12 @@ public interface Client extends GameEngine
|
||||
|
||||
void setHintArrow(NPC npc);
|
||||
|
||||
WorldPoint getHintArrowPoint();
|
||||
|
||||
Player getHintArrowPlayer();
|
||||
|
||||
NPC getHintArrowNpc();
|
||||
|
||||
boolean isInterpolatePlayerAnimations();
|
||||
|
||||
void setInterpolatePlayerAnimations(boolean interpolate);
|
||||
|
||||
@@ -884,6 +884,29 @@ public abstract class RSClientMixin implements RSClient
|
||||
return client.getHintArrowTargetType() != HintArrowType.NONE.getValue();
|
||||
}
|
||||
|
||||
@Inject
|
||||
@Override
|
||||
public HintArrowType getHintArrowType()
|
||||
{
|
||||
int type = client.getHintArrowTargetType();
|
||||
if (type == HintArrowType.NPC.getValue())
|
||||
{
|
||||
return HintArrowType.NPC;
|
||||
}
|
||||
else if (type == HintArrowType.PLAYER.getValue())
|
||||
{
|
||||
return HintArrowType.PLAYER;
|
||||
}
|
||||
else if (type == HintArrowType.WORLD_POSITION.getValue())
|
||||
{
|
||||
return HintArrowType.WORLD_POSITION;
|
||||
}
|
||||
else
|
||||
{
|
||||
return HintArrowType.NONE;
|
||||
}
|
||||
}
|
||||
|
||||
@Inject
|
||||
@Override
|
||||
public void clearHintArrow()
|
||||
@@ -919,6 +942,60 @@ public abstract class RSClientMixin implements RSClient
|
||||
client.setHintArrowOffsetY(LOCAL_TILE_SIZE / 2);
|
||||
}
|
||||
|
||||
@Inject
|
||||
@Override
|
||||
public WorldPoint getHintArrowPoint()
|
||||
{
|
||||
if (getHintArrowType() == HintArrowType.WORLD_POSITION)
|
||||
{
|
||||
int x = client.getHintArrowX();
|
||||
int y = client.getHintArrowY();
|
||||
return new WorldPoint(x, y, client.getPlane());
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
@Inject
|
||||
@Override
|
||||
public Player getHintArrowPlayer()
|
||||
{
|
||||
if (getHintArrowType() == HintArrowType.PLAYER)
|
||||
{
|
||||
int idx = client.getHintArrowPlayerTargetIdx();
|
||||
RSPlayer[] players = client.getCachedPlayers();
|
||||
|
||||
if (idx < 0 || idx >= players.length)
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
return players[idx];
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
@Inject
|
||||
@Override
|
||||
public NPC getHintArrowNpc()
|
||||
{
|
||||
if (getHintArrowType() == HintArrowType.NPC)
|
||||
{
|
||||
int idx = client.getHintArrowNpcTargetIdx();
|
||||
RSNPC[] npcs = client.getCachedNPCs();
|
||||
|
||||
if (idx < 0 || idx >= npcs.length)
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
return npcs[idx];
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
@Copy("menuAction")
|
||||
static void rs$menuAction(int var0, int var1, int var2, int var3, String var4, String var5, int var6, int var7)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user