runelite-api: expand hint arrow api
This commit is contained in:
@@ -346,6 +346,8 @@ public interface Client extends GameEngine
|
|||||||
|
|
||||||
boolean hasHintArrow();
|
boolean hasHintArrow();
|
||||||
|
|
||||||
|
HintArrowType getHintArrowType();
|
||||||
|
|
||||||
void clearHintArrow();
|
void clearHintArrow();
|
||||||
|
|
||||||
void setHintArrow(WorldPoint point);
|
void setHintArrow(WorldPoint point);
|
||||||
@@ -354,6 +356,12 @@ public interface Client extends GameEngine
|
|||||||
|
|
||||||
void setHintArrow(NPC npc);
|
void setHintArrow(NPC npc);
|
||||||
|
|
||||||
|
WorldPoint getHintArrowPoint();
|
||||||
|
|
||||||
|
Player getHintArrowPlayer();
|
||||||
|
|
||||||
|
NPC getHintArrowNpc();
|
||||||
|
|
||||||
boolean isInterpolatePlayerAnimations();
|
boolean isInterpolatePlayerAnimations();
|
||||||
|
|
||||||
void setInterpolatePlayerAnimations(boolean interpolate);
|
void setInterpolatePlayerAnimations(boolean interpolate);
|
||||||
|
|||||||
@@ -884,6 +884,29 @@ public abstract class RSClientMixin implements RSClient
|
|||||||
return client.getHintArrowTargetType() != HintArrowType.NONE.getValue();
|
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
|
@Inject
|
||||||
@Override
|
@Override
|
||||||
public void clearHintArrow()
|
public void clearHintArrow()
|
||||||
@@ -919,6 +942,60 @@ public abstract class RSClientMixin implements RSClient
|
|||||||
client.setHintArrowOffsetY(LOCAL_TILE_SIZE / 2);
|
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")
|
@Copy("menuAction")
|
||||||
static void rs$menuAction(int var0, int var1, int var2, int var3, String var4, String var5, int var6, int var7)
|
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