use of net.runelite.rs.api.RSNode in project runelite by runelite.
the class RSActorMixin method getHealth.
@Inject
@Override
public int getHealth() {
RSCombatInfoList combatInfoList = getCombatInfoList();
if (combatInfoList != null) {
RSNode node = combatInfoList.getNode();
RSNode next = node.getNext();
if (next instanceof RSCombatInfoListHolder) {
RSCombatInfoListHolder combatInfoListWrapper = (RSCombatInfoListHolder) next;
RSCombatInfo2 cf = combatInfoListWrapper.getCombatInfo2();
return cf.getHealthScale();
}
}
return -1;
}
use of net.runelite.rs.api.RSNode in project runelite by runelite.
the class RSActorMixin method getHealthRatio.
@Inject
@Override
public int getHealthRatio() {
RSCombatInfoList combatInfoList = getCombatInfoList();
if (combatInfoList != null) {
RSNode node = combatInfoList.getNode();
RSNode next = node.getNext();
if (next instanceof RSCombatInfoListHolder) {
RSCombatInfoListHolder combatInfoListWrapper = (RSCombatInfoListHolder) next;
RSCombatInfoList combatInfoList1 = combatInfoListWrapper.getCombatInfo1();
RSNode node2 = combatInfoList1.getNode();
RSNode next2 = node2.getNext();
if (next2 instanceof RSCombatInfo1) {
RSCombatInfo1 combatInfo = (RSCombatInfo1) next2;
return combatInfo.getHealthRatio();
}
}
}
return -1;
}
use of net.runelite.rs.api.RSNode in project runelite by runelite.
the class RSHashTableMixin method getNodes.
@Inject
@Override
public Collection<Node> getNodes() {
// Copied in RSWidgetMixin.getParentId to reduce allocations
List<Node> nodes = new ArrayList<Node>();
RSNode[] buckets = getBuckets();
for (int i = 0; i < buckets.length; ++i) {
Node node = buckets[i];
// It looks like the first node in the bucket is always
// a sentinel
Node cur = node.getNext();
while (cur != node) {
nodes.add(cur);
cur = cur.getNext();
}
}
return nodes;
}
use of net.runelite.rs.api.RSNode in project runelite by runelite.
the class RSWidgetMixin method getParentId.
@Inject
@Override
public int getParentId() {
int parentId = getRSParentId();
if (parentId != -1) {
return parentId;
}
int groupId = TO_GROUP(getId());
RSHashTable componentTable = client.getComponentTable();
RSNode[] buckets = componentTable.getBuckets();
for (int i = 0; i < buckets.length; ++i) {
Node node = buckets[i];
// It looks like the first node in the bucket is always
// a sentinel
Node cur = node.getNext();
while (cur != node) {
WidgetNode wn = (WidgetNode) cur;
if (groupId == wn.getId()) {
return (int) wn.getHash();
}
cur = cur.getNext();
}
}
return -1;
}
Aggregations