From db69f55b9ca506fd3d20bae7082b918b4c8b06ea Mon Sep 17 00:00:00 2001 From: Adam Date: Tue, 12 Apr 2022 22:00:10 -0400 Subject: [PATCH] mta: use widget item overlay --- ...entoryOverlay.java => MTAItemOverlay.java} | 21 ++++++------------ .../client/plugins/mta/MTAPlugin.java | 6 ++--- .../runelite/client/plugins/mta/MTARoom.java | 3 ++- .../plugins/mta/alchemy/AlchemyRoom.java | 22 ++++--------------- 4 files changed, 16 insertions(+), 36 deletions(-) rename runelite-client/src/main/java/net/runelite/client/plugins/mta/{MTAInventoryOverlay.java => MTAItemOverlay.java} (75%) diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/mta/MTAInventoryOverlay.java b/runelite-client/src/main/java/net/runelite/client/plugins/mta/MTAItemOverlay.java similarity index 75% rename from runelite-client/src/main/java/net/runelite/client/plugins/mta/MTAInventoryOverlay.java rename to runelite-client/src/main/java/net/runelite/client/plugins/mta/MTAItemOverlay.java index 590b0ff65e..f20bf8ad64 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/mta/MTAInventoryOverlay.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/mta/MTAItemOverlay.java @@ -24,38 +24,31 @@ */ package net.runelite.client.plugins.mta; -import java.awt.Dimension; import java.awt.Graphics2D; import javax.inject.Inject; -import net.runelite.client.ui.FontManager; -import net.runelite.client.ui.overlay.Overlay; -import net.runelite.client.ui.overlay.OverlayLayer; -import net.runelite.client.ui.overlay.OverlayPosition; +import net.runelite.api.widgets.WidgetItem; +import net.runelite.client.ui.overlay.WidgetItemOverlay; -public class MTAInventoryOverlay extends Overlay +class MTAItemOverlay extends WidgetItemOverlay { private final MTAPlugin plugin; @Inject - public MTAInventoryOverlay(MTAPlugin plugin) + public MTAItemOverlay(MTAPlugin plugin) { this.plugin = plugin; - setPosition(OverlayPosition.DYNAMIC); - setLayer(OverlayLayer.ABOVE_WIDGETS); + showOnInventory(); } @Override - public Dimension render(Graphics2D graphics) + public void renderItemOverlay(Graphics2D graphics, int itemId, WidgetItem widgetItem) { for (MTARoom room : plugin.getRooms()) { if (room.inside()) { - graphics.setFont(FontManager.getRunescapeBoldFont()); - room.over(graphics); + room.renderItemOverlay(graphics, itemId, widgetItem); } } - - return null; } } diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/mta/MTAPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/mta/MTAPlugin.java index 3ed1da90dc..a35b405827 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/mta/MTAPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/mta/MTAPlugin.java @@ -62,7 +62,7 @@ public class MTAPlugin extends Plugin @Inject private MTASceneOverlay sceneOverlay; @Inject - private MTAInventoryOverlay inventoryOverlay; + private MTAItemOverlay itemOverlay; @Getter(AccessLevel.PROTECTED) private MTARoom[] rooms; @@ -77,7 +77,7 @@ public class MTAPlugin extends Plugin public void startUp() { overlayManager.add(sceneOverlay); - overlayManager.add(inventoryOverlay); + overlayManager.add(itemOverlay); this.rooms = new MTARoom[]{alchemyRoom, graveyardRoom, telekineticRoom, enchantmentRoom}; @@ -91,7 +91,7 @@ public class MTAPlugin extends Plugin public void shutDown() { overlayManager.remove(sceneOverlay); - overlayManager.remove(inventoryOverlay); + overlayManager.remove(itemOverlay); for (MTARoom room : rooms) { diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/mta/MTARoom.java b/runelite-client/src/main/java/net/runelite/client/plugins/mta/MTARoom.java index a77f8170d8..a4433cf397 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/mta/MTARoom.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/mta/MTARoom.java @@ -28,6 +28,7 @@ import java.awt.Graphics2D; import javax.inject.Inject; import lombok.AccessLevel; import lombok.Getter; +import net.runelite.api.widgets.WidgetItem; public abstract class MTARoom { @@ -46,7 +47,7 @@ public abstract class MTARoom { } - public void over(Graphics2D graphics2D) + public void renderItemOverlay(Graphics2D graphics, int itemId, WidgetItem widgetItem) { } } diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/mta/alchemy/AlchemyRoom.java b/runelite-client/src/main/java/net/runelite/client/plugins/mta/alchemy/AlchemyRoom.java index 0e7c3235d1..5266a55279 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/mta/alchemy/AlchemyRoom.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/mta/alchemy/AlchemyRoom.java @@ -63,7 +63,6 @@ import net.runelite.api.events.GameStateChanged; import net.runelite.api.events.GameTick; import net.runelite.api.widgets.Widget; import net.runelite.api.widgets.WidgetID; -import net.runelite.api.widgets.WidgetInfo; import net.runelite.api.widgets.WidgetItem; import net.runelite.client.eventbus.Subscribe; import net.runelite.client.game.ItemManager; @@ -448,28 +447,15 @@ public class AlchemyRoom extends MTARoom @Override - public void over(Graphics2D graphics) + public void renderItemOverlay(Graphics2D graphics, int itemId, WidgetItem widgetItem) { - if (!inside() || !config.alchemy() || best == null) + assert inside(); + if (best == null || best.getId() != itemId || !config.alchemy()) { return; } - Widget inventory = client.getWidget(WidgetInfo.INVENTORY); - if (inventory.isHidden()) - { - return; - } - - for (WidgetItem item : inventory.getWidgetItems()) - { - if (item.getId() != best.getId()) - { - continue; - } - - drawItem(graphics, item, Color.GREEN); - } + drawItem(graphics, widgetItem, Color.GREEN); } private void drawItem(Graphics2D graphics, WidgetItem item, Color border)