hide dead NPCs for EntityHider (#1197)
This commit is contained in:
@@ -1478,6 +1478,13 @@ public interface Client extends GameShell
|
|||||||
*/
|
*/
|
||||||
void setProjectilesHidden(boolean state);
|
void setProjectilesHidden(boolean state);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Sets whether dead NPCs are hidden.
|
||||||
|
*
|
||||||
|
* @param state new NPC hidden state
|
||||||
|
*/
|
||||||
|
void setDeadNPCsHidden(boolean state);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Gets an array of tile collision data.
|
* Gets an array of tile collision data.
|
||||||
* <p>
|
* <p>
|
||||||
|
|||||||
@@ -153,4 +153,15 @@ public interface EntityHiderConfig extends Config
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ConfigItem(
|
||||||
|
position = 12,
|
||||||
|
keyName = "hideDeadNPCs",
|
||||||
|
name = "Hide Dead NPCs",
|
||||||
|
description = "Configures whether or not NPCs that just died are hidden"
|
||||||
|
)
|
||||||
|
default boolean hideDeadNPCs()
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -112,6 +112,8 @@ public class EntityHiderPlugin extends Plugin
|
|||||||
client.setAttackersHidden(config.hideAttackers());
|
client.setAttackersHidden(config.hideAttackers());
|
||||||
|
|
||||||
client.setProjectilesHidden(config.hideProjectiles());
|
client.setProjectilesHidden(config.hideProjectiles());
|
||||||
|
|
||||||
|
client.setDeadNPCsHidden(config.hideDeadNPCs());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -136,6 +138,8 @@ public class EntityHiderPlugin extends Plugin
|
|||||||
client.setAttackersHidden(false);
|
client.setAttackersHidden(false);
|
||||||
|
|
||||||
client.setProjectilesHidden(false);
|
client.setProjectilesHidden(false);
|
||||||
|
|
||||||
|
client.setDeadNPCsHidden(false);
|
||||||
}
|
}
|
||||||
|
|
||||||
private boolean isPlayerRegionAllowed()
|
private boolean isPlayerRegionAllowed()
|
||||||
|
|||||||
@@ -64,6 +64,9 @@ public abstract class EntityHiderBridgeMixin implements RSClient
|
|||||||
@Inject
|
@Inject
|
||||||
public static boolean hideProjectiles;
|
public static boolean hideProjectiles;
|
||||||
|
|
||||||
|
@Inject
|
||||||
|
public static boolean hideDeadNPCs;
|
||||||
|
|
||||||
@Inject
|
@Inject
|
||||||
public static String hideNPCsNames;
|
public static String hideNPCsNames;
|
||||||
|
|
||||||
@@ -151,4 +154,11 @@ public abstract class EntityHiderBridgeMixin implements RSClient
|
|||||||
{
|
{
|
||||||
hideProjectiles = state;
|
hideProjectiles = state;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Inject
|
||||||
|
@Override
|
||||||
|
public void setDeadNPCsHidden(boolean state)
|
||||||
|
{
|
||||||
|
hideDeadNPCs = state;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -79,6 +79,9 @@ public abstract class EntityHiderMixin implements RSScene
|
|||||||
@Shadow("hideProjectiles")
|
@Shadow("hideProjectiles")
|
||||||
private static boolean hideProjectiles;
|
private static boolean hideProjectiles;
|
||||||
|
|
||||||
|
@Shadow("hideDeadNPCs")
|
||||||
|
private static boolean hideDeadNPCs;
|
||||||
|
|
||||||
@Copy("newGameObject")
|
@Copy("newGameObject")
|
||||||
abstract boolean addEntityMarker(int var1, int var2, int var3, int var4, int var5, int x, int y, int var8, RSEntity renderable, int var10, boolean var11, long var12, int var13);
|
abstract boolean addEntityMarker(int var1, int var2, int var3, int var4, int var5, int x, int y, int var8, RSEntity renderable, int var10, boolean var11, long var12, int var13);
|
||||||
|
|
||||||
@@ -164,6 +167,11 @@ public abstract class EntityHiderMixin implements RSScene
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (hideDeadNPCs && npc.getHealthRatio() == 0)
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
for (String name : names)
|
for (String name : names)
|
||||||
{
|
{
|
||||||
if (name != null && !name.equals(""))
|
if (name != null && !name.equals(""))
|
||||||
|
|||||||
Reference in New Issue
Block a user