project: Mixins
This commit is contained in:
@@ -47,13 +47,11 @@ public abstract class RSClanSettingsMixin implements RSClanSettings
|
||||
public List<ClanMember> getMembers()
|
||||
{
|
||||
int memberCount = getMemberCount();
|
||||
String[] memberNames = getMemberNames();
|
||||
byte[] memberRanks = getMemberRanks();
|
||||
List<ClanMember> memberList = new ArrayList<>(memberCount);
|
||||
|
||||
for (int i = 0; i < memberCount; i++)
|
||||
{
|
||||
// memberList.add(new ClanMember(memberNames[i], client.getClanRankFromRs(memberRanks[i])));
|
||||
memberList.add((ClanMember) client.runeliteClanMember(this, i));
|
||||
}
|
||||
|
||||
return memberList;
|
||||
@@ -65,7 +63,6 @@ public abstract class RSClanSettingsMixin implements RSClanSettings
|
||||
{
|
||||
name = name.replace(" ", "\u00A0").toLowerCase();
|
||||
String[] memberNames = getMemberNames();
|
||||
byte[] memberRanks = getMemberRanks();
|
||||
int[] sorted = getSortedMembers();
|
||||
|
||||
int i = 0;
|
||||
@@ -82,7 +79,7 @@ public abstract class RSClanSettingsMixin implements RSClanSettings
|
||||
}
|
||||
else if (compare == 0)
|
||||
{
|
||||
// return new ClanMember(memberName, client.getClanRankFromRs(memberRanks[tag]));
|
||||
return (ClanMember) client.runeliteClanMember(this, memberIndex);
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
@@ -39,8 +39,10 @@ import java.util.Map;
|
||||
import java.util.Set;
|
||||
import javax.annotation.Nonnull;
|
||||
import javax.annotation.Nullable;
|
||||
import net.runelite.api.Actor;
|
||||
import net.runelite.api.Animation;
|
||||
import net.runelite.api.ChatMessageType;
|
||||
import net.runelite.api.Deque;
|
||||
import net.runelite.api.EnumComposition;
|
||||
import net.runelite.api.FriendContainer;
|
||||
import net.runelite.api.GameState;
|
||||
@@ -70,7 +72,6 @@ import net.runelite.api.Model;
|
||||
import net.runelite.api.NPC;
|
||||
import net.runelite.api.NPCComposition;
|
||||
import net.runelite.api.NameableContainer;
|
||||
import net.runelite.api.Node;
|
||||
import net.runelite.api.NodeCache;
|
||||
import net.runelite.api.ObjectComposition;
|
||||
import net.runelite.api.Perspective;
|
||||
@@ -158,6 +159,8 @@ import net.runelite.rs.api.RSNodeDeque;
|
||||
import net.runelite.rs.api.RSNodeHashTable;
|
||||
import net.runelite.rs.api.RSPacketBuffer;
|
||||
import net.runelite.rs.api.RSPlayer;
|
||||
import net.runelite.rs.api.RSProjectile;
|
||||
import net.runelite.rs.api.RSRuneLiteClanMember;
|
||||
import net.runelite.rs.api.RSRuneLiteMenuEntry;
|
||||
import net.runelite.rs.api.RSScene;
|
||||
import net.runelite.rs.api.RSScriptEvent;
|
||||
@@ -1046,34 +1049,36 @@ public abstract class RSClientMixin implements RSClient
|
||||
|
||||
@Inject
|
||||
@Override
|
||||
public List<Projectile> getProjectiles()
|
||||
public Projectile createProjectile(int id, int plane, int startX, int startY, int startZ, int startCycle, int endCycle, int slope, int startHeight, int endHeight, Actor target, int targetX, int targetY)
|
||||
{
|
||||
List<Projectile> projectiles = new ArrayList<Projectile>();
|
||||
RSNodeDeque projectileDeque = this.getProjectilesDeque();
|
||||
Node head = projectileDeque.getSentinel();
|
||||
|
||||
for (Node node = head.getNext(); node != head; node = node.getNext())
|
||||
int targetIndex = 0;
|
||||
if (target instanceof NPC)
|
||||
{
|
||||
projectiles.add((Projectile) node);
|
||||
targetIndex = ((NPC)target).getIndex() + 1;
|
||||
}
|
||||
else if (target instanceof Player)
|
||||
{
|
||||
targetIndex = -(((Player)target).getPlayerId() + 1);
|
||||
}
|
||||
|
||||
return projectiles;
|
||||
RSProjectile projectile = client.newProjectile(id, plane, startX, startY, startZ, startCycle, endCycle, slope, startHeight, targetIndex, endHeight);
|
||||
projectile.setDestination(targetX, targetY, Perspective.getTileHeight(client, new LocalPoint(targetX, targetY), client.getPlane()), startCycle + client.getGameCycle());
|
||||
|
||||
return projectile;
|
||||
}
|
||||
|
||||
@Inject
|
||||
@Override
|
||||
public List<GraphicsObject> getGraphicsObjects()
|
||||
public Deque<Projectile> getProjectiles()
|
||||
{
|
||||
List<GraphicsObject> graphicsObjects = new ArrayList<GraphicsObject>();
|
||||
RSNodeDeque graphicsObjectDeque = this.getGraphicsObjectDeque();
|
||||
Node head = graphicsObjectDeque.getSentinel();
|
||||
return this.getProjectilesDeque();
|
||||
}
|
||||
|
||||
for (Node node = head.getNext(); node != head; node = node.getNext())
|
||||
{
|
||||
graphicsObjects.add((GraphicsObject) node);
|
||||
}
|
||||
|
||||
return graphicsObjects;
|
||||
@Inject
|
||||
@Override
|
||||
public Deque<GraphicsObject> getGraphicsObjects()
|
||||
{
|
||||
return this.getGraphicsObjectDeque();
|
||||
}
|
||||
|
||||
@Inject
|
||||
@@ -1448,6 +1453,12 @@ public abstract class RSClientMixin implements RSClient
|
||||
}
|
||||
}
|
||||
|
||||
@Inject
|
||||
public static RSRuneLiteClanMember runeLiteClanMember()
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
@FieldHook("friendsChat")
|
||||
@Inject
|
||||
public static void clanMemberManagerChanged(int idx)
|
||||
|
||||
@@ -43,6 +43,12 @@ public abstract class RSProjectileMixin implements RSProjectile
|
||||
@Shadow("client")
|
||||
private static RSClient client;
|
||||
|
||||
@Inject
|
||||
private int targetX;
|
||||
|
||||
@Inject
|
||||
private int targetY;
|
||||
|
||||
@Inject
|
||||
RSProjectileMixin()
|
||||
{
|
||||
@@ -90,6 +96,13 @@ public abstract class RSProjectileMixin implements RSProjectile
|
||||
}
|
||||
}
|
||||
|
||||
@Inject
|
||||
@Override
|
||||
public LocalPoint getTarget()
|
||||
{
|
||||
return new LocalPoint(this.targetX, this.targetY);
|
||||
}
|
||||
|
||||
/**
|
||||
* Called when a projectile is set to move towards a point. For
|
||||
* projectiles that target the ground, like AoE projectiles from
|
||||
@@ -104,6 +117,8 @@ public abstract class RSProjectileMixin implements RSProjectile
|
||||
@MethodHook("setDestination")
|
||||
public void projectileMoved(int targetX, int targetY, int targetZ, int cycle)
|
||||
{
|
||||
this.targetX = targetX;
|
||||
this.targetY = targetY;
|
||||
final LocalPoint position = new LocalPoint(targetX, targetY);
|
||||
final ProjectileMoved projectileMoved = new ProjectileMoved();
|
||||
projectileMoved.setProjectile(this);
|
||||
|
||||
Reference in New Issue
Block a user