entityhider: make hidden entities not occupy the tile they're on

This commit is contained in:
Lotto
2018-09-11 22:08:35 +02:00
parent 7a99eaf4f7
commit 18851f1094
3 changed files with 48 additions and 4 deletions

View File

@@ -29,7 +29,11 @@ import com.google.common.eventbus.Subscribe;
import com.google.inject.Provides;
import javax.inject.Inject;
import net.runelite.api.Client;
import net.runelite.api.GameState;
import net.runelite.api.Player;
import net.runelite.api.coords.WorldPoint;
import net.runelite.api.events.ConfigChanged;
import net.runelite.api.events.GameStateChanged;
import net.runelite.client.config.ConfigManager;
import net.runelite.client.plugins.Plugin;
import net.runelite.client.plugins.PluginDescriptor;
@@ -66,9 +70,18 @@ public class EntityHiderPlugin extends Plugin
updateConfig();
}
@Subscribe
public void onGameStateChanged(GameStateChanged event)
{
if (event.getGameState() == GameState.LOGGED_IN)
{
client.setIsHidingEntities(isPlayerRegionAllowed());
}
}
private void updateConfig()
{
client.setIsHidingEntities(true);
client.setIsHidingEntities(isPlayerRegionAllowed());
client.setPlayersHidden(config.hidePlayers());
client.setPlayersHidden2D(config.hidePlayers2D());
@@ -108,4 +121,19 @@ public class EntityHiderPlugin extends Plugin
client.setProjectilesHidden(false);
}
private boolean isPlayerRegionAllowed()
{
final Player localPlayer = client.getLocalPlayer();
if (localPlayer == null)
{
return true;
}
final int playerRegionID = WorldPoint.fromLocalInstance(client, localPlayer.getLocalLocation()).getRegionID();
// 9520 = Castle Wars
return playerRegionID != 9520;
}
}