diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/devtools/DevToolsOverlay.java b/runelite-client/src/main/java/net/runelite/client/plugins/devtools/DevToolsOverlay.java index b93d3f72d0..60d9635535 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/devtools/DevToolsOverlay.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/devtools/DevToolsOverlay.java @@ -28,9 +28,12 @@ package net.runelite.client.plugins.devtools; import java.awt.Color; import java.awt.Dimension; import java.awt.Font; +import java.awt.FontMetrics; import java.awt.Graphics2D; import java.awt.Polygon; +import java.awt.Rectangle; import java.awt.Shape; +import java.awt.geom.Rectangle2D; import java.util.List; import java.util.Set; import javax.inject.Inject; @@ -56,6 +59,9 @@ import net.runelite.api.TileItem; import net.runelite.api.TileObject; import net.runelite.api.coords.LocalPoint; import net.runelite.api.coords.WorldPoint; +import net.runelite.api.widgets.Widget; +import net.runelite.api.widgets.WidgetInfo; +import net.runelite.api.widgets.WidgetItem; import net.runelite.client.ui.FontManager; import net.runelite.client.ui.overlay.Overlay; import net.runelite.client.ui.overlay.OverlayLayer; @@ -116,6 +122,11 @@ class DevToolsOverlay extends Overlay renderTileObjects(graphics); } + if (plugin.getInventory().isActive()) + { + renderInventory(graphics); + } + if (plugin.getProjectiles().isActive()) { renderProjectiles(graphics); @@ -401,6 +412,35 @@ class DevToolsOverlay extends Overlay } } + private void renderInventory(Graphics2D graphics) + { + Widget inventoryWidget = client.getWidget(WidgetInfo.INVENTORY); + if (inventoryWidget == null || inventoryWidget.isHidden()) + { + return; + } + + for (WidgetItem item : inventoryWidget.getWidgetItems()) + { + Rectangle slotBounds = item.getCanvasBounds(); + + String idText = "" + item.getId(); + FontMetrics fm = graphics.getFontMetrics(); + Rectangle2D textBounds = fm.getStringBounds(idText, graphics); + + int textX = (int) (slotBounds.getX() + (slotBounds.getWidth() / 2) - (textBounds.getWidth() / 2)); + int textY = (int) (slotBounds.getY() + (slotBounds.getHeight() / 2) + (textBounds.getHeight() / 2)); + + graphics.setColor(new Color(255, 255, 255, 65)); + graphics.fill(slotBounds); + + graphics.setColor(Color.BLACK); + graphics.drawString(idText, textX + 1, textY + 1); + graphics.setColor(YELLOW); + graphics.drawString(idText, textX, textY); + } + } + private void renderProjectiles(Graphics2D graphics) { for (Projectile projectile : client.getProjectiles()) diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/devtools/DevToolsPanel.java b/runelite-client/src/main/java/net/runelite/client/plugins/devtools/DevToolsPanel.java index af9f866a83..34700e10cb 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/devtools/DevToolsPanel.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/devtools/DevToolsPanel.java @@ -107,6 +107,7 @@ class DevToolsPanel extends PluginPanel container.add(plugin.getWalls()); container.add(plugin.getDecorations()); + container.add(plugin.getInventory()); container.add(plugin.getProjectiles()); container.add(plugin.getLocation()); diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/devtools/DevToolsPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/devtools/DevToolsPlugin.java index b2ff427997..792e648f63 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/devtools/DevToolsPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/devtools/DevToolsPlugin.java @@ -125,6 +125,7 @@ public class DevToolsPlugin extends Plugin private DevToolsButton graphicsObjects; private DevToolsButton walls; private DevToolsButton decorations; + private DevToolsButton inventory; private DevToolsButton projectiles; private DevToolsButton location; private DevToolsButton chunkBorders; @@ -167,6 +168,7 @@ public class DevToolsPlugin extends Plugin walls = new DevToolsButton("Walls"); decorations = new DevToolsButton("Decorations"); + inventory = new DevToolsButton("Inventory"); projectiles = new DevToolsButton("Projectiles"); location = new DevToolsButton("Location");