entityhider: Pets entity hider & isFollower (#2094)

This commit is contained in:
Siraz
2019-12-02 00:52:32 +01:00
committed by Ganom
parent 129ccd2de9
commit 47e8108181
7 changed files with 51 additions and 2 deletions

View File

@@ -1561,6 +1561,13 @@ public interface Client extends GameShell
*/
void setNPCsHidden2D(boolean state);
/**
* Sets whether Pets from other players are hidden.
*
* @param state new pet hidden state
*/
void setPetsHidden(boolean state);
/**
* Sets whether attacking players or NPCs are hidden.
*

View File

@@ -48,6 +48,8 @@ public interface NPCDefinition
boolean isClickable();
boolean isFollower();
/**
* Gets whether the NPC is visible on the mini-map.
*/

View File

@@ -234,11 +234,22 @@ public interface EntityHiderConfig extends Config
return "";
}
@ConfigItem(
position = 18,
keyName = "hidePets",
name = "Hide Pets",
description = "Configures whether or not other player pets are hidden"
)
default boolean hidePets()
{
return false;
}
@ConfigTitleSection(
keyName = "miscTitle",
name = "Miscellaneous",
description = "",
position = 18
position = 19
)
default Title miscTitle()
{
@@ -246,7 +257,7 @@ public interface EntityHiderConfig extends Config
}
@ConfigItem(
position = 19,
position = 20,
keyName = "hideProjectiles",
name = "Hide Projectiles",
description = "Configures whether or not projectiles are hidden",

View File

@@ -140,6 +140,8 @@ public class EntityHiderPlugin extends Plugin
//client.setNPCsNames(Text.fromCSV(config.hideNPCsNames()));
//client.setNPCsHiddenOnDeath(Text.fromCSV(config.hideNPCsOnDeath()));
client.setPetsHidden(config.hidePets());
client.setAttackersHidden(config.hideAttackers());
client.setProjectilesHidden(config.hideProjectiles());
@@ -164,6 +166,8 @@ public class EntityHiderPlugin extends Plugin
client.setNPCsHidden(false);
client.setNPCsHidden2D(false);
client.setPetsHidden(false);
client.setAttackersHidden(false);
client.setProjectilesHidden(false);

View File

@@ -62,6 +62,9 @@ public abstract class EntityHiderBridgeMixin implements RSClient
@Inject
public static boolean hideNPCs2D;
@Inject
public static boolean hidePets;
@Inject
public static boolean hideAttackers;
@@ -222,6 +225,13 @@ public abstract class EntityHiderBridgeMixin implements RSClient
hideSpecificPlayers = players;
}
@Inject
@Override
public void setPetsHidden(boolean state)
{
hidePets = state;
}
@Inject
@Override
public void setAttackersHidden(boolean state)

View File

@@ -83,6 +83,9 @@ public abstract class EntityHiderMixin implements RSScene
@Shadow("hideNPCs2D")
private static boolean hideNPCs2D;
@Shadow("hidePets")
private static boolean hidePets;
@Shadow("hideAttackers")
private static boolean hideAttackers;
@@ -188,6 +191,14 @@ public abstract class EntityHiderMixin implements RSScene
}
}
if (hidePets)
{
if (npc.getDefinition().isFollower())
{
return false;
}
}
if (hideDeadNPCs && npc.getHealthRatio() == 0)
{
return false;

View File

@@ -21,6 +21,10 @@ public interface RSNPCDefinition extends NPCDefinition
@Override
boolean isClickable();
@Import("isFollower")
@Override
boolean isFollower();
@Import("drawMapDot")
@Override
boolean isMinimapVisible();