From 2e336cd5d193e2a790cd892e01589c1fe9fcc4a5 Mon Sep 17 00:00:00 2001 From: Jeremy Plsek Date: Sun, 24 Jun 2018 17:24:05 -0400 Subject: [PATCH] inventory tags: use item manager for outlines --- .../inventorytags/InventoryTagsOverlay.java | 39 +++---------------- .../inventorytags/InventoryTagsPlugin.java | 12 ------ 2 files changed, 5 insertions(+), 46 deletions(-) diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/inventorytags/InventoryTagsOverlay.java b/runelite-client/src/main/java/net/runelite/client/plugins/inventorytags/InventoryTagsOverlay.java index d9e5c0301d..a759520dea 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/inventorytags/InventoryTagsOverlay.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/inventorytags/InventoryTagsOverlay.java @@ -28,14 +28,11 @@ import java.awt.Color; import java.awt.Dimension; import java.awt.Graphics2D; import java.awt.image.BufferedImage; -import java.util.HashMap; -import java.util.Map; import javax.inject.Inject; -import net.runelite.api.Client; import net.runelite.api.Query; -import net.runelite.api.SpritePixels; import net.runelite.api.queries.InventoryWidgetItemQuery; import net.runelite.api.widgets.WidgetItem; +import net.runelite.client.game.ItemManager; import net.runelite.client.ui.overlay.Overlay; import net.runelite.client.ui.overlay.OverlayLayer; import net.runelite.client.ui.overlay.OverlayPosition; @@ -44,19 +41,18 @@ import net.runelite.client.util.QueryRunner; public class InventoryTagsOverlay extends Overlay { - private final Map storedOutlines = new HashMap<>(); private final QueryRunner queryRunner; - private final Client client; + private final ItemManager itemManager; private final InventoryTagsPlugin plugin; @Inject - private InventoryTagsOverlay(QueryRunner queryRunner, Client client, InventoryTagsPlugin plugin) + private InventoryTagsOverlay(QueryRunner queryRunner, ItemManager itemManager, InventoryTagsPlugin plugin) { setPosition(OverlayPosition.DYNAMIC); setPriority(OverlayPriority.LOW); setLayer(OverlayLayer.ABOVE_WIDGETS); this.queryRunner = queryRunner; - this.client = client; + this.itemManager = itemManager; this.plugin = plugin; } @@ -82,7 +78,7 @@ public class InventoryTagsOverlay extends Overlay final Color color = plugin.getGroupNameColor(group); if (color != null) { - final BufferedImage outline = getOutline(item.getId(), color); + final BufferedImage outline = itemManager.getItemOutline(item.getId(), item.getQuantity(), color); graphics.drawImage(outline, item.getCanvasLocation().getX() + 1, item.getCanvasLocation().getY() + 1, null); } } @@ -90,29 +86,4 @@ public class InventoryTagsOverlay extends Overlay return null; } - - void clearStoredOutlines() - { - storedOutlines.clear(); - } - - private BufferedImage getOutline(final int id, final Color color) - { - final String key = getStringGeneratedId(id, color); - BufferedImage stored = storedOutlines.get(key); - if (stored != null) - { - return stored; - } - - final SpritePixels itemSprite = client.createItemSprite(id, 1, 1, 0, 0, true, 710); - final BufferedImage generatedPicture = itemSprite.toBufferedOutline(color); - storedOutlines.put(key, generatedPicture); - return generatedPicture; - } - - private String getStringGeneratedId(final int id, final Color color) - { - return id + "." + color.getRGB(); - } } diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/inventorytags/InventoryTagsPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/inventorytags/InventoryTagsPlugin.java index 0a50ec633c..cf89ff6129 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/inventorytags/InventoryTagsPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/inventorytags/InventoryTagsPlugin.java @@ -39,7 +39,6 @@ import net.runelite.api.Item; import net.runelite.api.ItemContainer; import net.runelite.api.MenuAction; import net.runelite.api.MenuEntry; -import net.runelite.api.events.ConfigChanged; import net.runelite.api.events.ItemContainerChanged; import net.runelite.api.events.MenuOpened; import net.runelite.api.events.MenuOptionClicked; @@ -132,17 +131,6 @@ public class InventoryTagsPlugin extends Plugin hasTaggedItems = editorMode = false; } - @Subscribe - public void onConfigChanged(ConfigChanged configChanged) - { - if (!configChanged.getGroup().equals("inventorytags")) - { - return; - } - - overlay.clearStoredOutlines(); - } - @Subscribe public void onClickMenu(final MenuOptionClicked event) {