From 51b57d62a7332230a2877debc6ce11f98f750ca6 Mon Sep 17 00:00:00 2001 From: Seth Date: Tue, 13 Feb 2018 18:29:09 -0600 Subject: [PATCH] poh plugin: fix icons displaying when changing planes --- .../client/plugins/poh/BurnerOverlay.java | 19 +++++++++++-------- .../client/plugins/poh/PohOverlay.java | 8 +++----- .../client/plugins/poh/PohPlugin.java | 8 +++++--- 3 files changed, 19 insertions(+), 16 deletions(-) diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/poh/BurnerOverlay.java b/runelite-client/src/main/java/net/runelite/client/plugins/poh/BurnerOverlay.java index be1ad2344a..01782fa45a 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/poh/BurnerOverlay.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/poh/BurnerOverlay.java @@ -65,17 +65,20 @@ public class BurnerOverlay extends Overlay return null; } - for (GameObject object : plugin.getPohObjects()) + plugin.getPohObjects().forEach((object, tile) -> { - if (BURNER_UNLIT.contains(object.getId())) + if (tile.getPlane() == client.getPlane()) { - drawBurner(graphics, "Unlit", object, Color.RED, parent); + if (BURNER_UNLIT.contains(object.getId())) + { + drawBurner(graphics, "Unlit", object, Color.RED, parent); + } + else if (BURNER_LIT.contains(object.getId())) + { + drawBurner(graphics, "Lit", object, Color.GREEN, parent); + } } - else if (BURNER_LIT.contains(object.getId())) - { - drawBurner(graphics, "Lit", object, Color.GREEN, parent); - } - } + }); return null; } diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/poh/PohOverlay.java b/runelite-client/src/main/java/net/runelite/client/plugins/poh/PohOverlay.java index 728b5dc6a4..6285b73ecd 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/poh/PohOverlay.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/poh/PohOverlay.java @@ -31,7 +31,6 @@ import java.util.List; import javax.inject.Inject; import lombok.Getter; import net.runelite.api.Client; -import net.runelite.api.GameObject; import net.runelite.api.Perspective; import net.runelite.api.Point; import static net.runelite.client.plugins.poh.PohIcons.ALTAR; @@ -87,11 +86,10 @@ public class PohOverlay extends Overlay } Point localLocation = client.getLocalPlayer().getLocalLocation(); - - for (GameObject object : plugin.getPohObjects()) + plugin.getPohObjects().forEach((object, tile) -> { Point location = object.getLocalLocation(); - if (localLocation.distanceTo(location) <= MAX_DISTANCE) + if (tile.getPlane() == client.getPlane() && localLocation.distanceTo(location) <= MAX_DISTANCE) { PohIcons icon = PohIcons.getIcon(object.getId()); @@ -105,7 +103,7 @@ public class PohOverlay extends Overlay } } } - } + }); return null; } diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/poh/PohPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/poh/PohPlugin.java index 890c26e7c3..406074c7c7 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/poh/PohPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/poh/PohPlugin.java @@ -30,7 +30,8 @@ import com.google.inject.Binder; import com.google.inject.Provides; import java.util.Arrays; import java.util.Collection; -import java.util.HashSet; +import java.util.HashMap; +import java.util.Map; import java.util.Set; import javax.inject.Inject; import lombok.AccessLevel; @@ -43,6 +44,7 @@ import static net.runelite.api.ObjectID.INCENSE_BURNER_13210; import static net.runelite.api.ObjectID.INCENSE_BURNER_13211; import static net.runelite.api.ObjectID.INCENSE_BURNER_13212; import static net.runelite.api.ObjectID.INCENSE_BURNER_13213; +import net.runelite.api.Tile; import net.runelite.api.events.ConfigChanged; import net.runelite.api.events.GameObjectDespawned; import net.runelite.api.events.GameObjectSpawned; @@ -61,7 +63,7 @@ public class PohPlugin extends Plugin static final Set BURNER_LIT = Sets.newHashSet(INCENSE_BURNER_13209, INCENSE_BURNER_13211, INCENSE_BURNER_13213); @Getter(AccessLevel.PACKAGE) - private final Set pohObjects = new HashSet<>(); + private final Map pohObjects = new HashMap<>(); @Inject private PohOverlay overlay; @@ -105,7 +107,7 @@ public class PohPlugin extends Plugin GameObject gameObject = event.getGameObject(); if (BURNER_LIT.contains(gameObject.getId()) || BURNER_UNLIT.contains(gameObject.getId()) || PohIcons.getIcon(gameObject.getId()) != null) { - pohObjects.add(gameObject); + pohObjects.put(gameObject, event.getTile()); } }