From ad11bd6cea7b6c692150ecdec253a2f91eda2433 Mon Sep 17 00:00:00 2001 From: Hydrox6 Date: Tue, 6 Jul 2021 18:25:42 +0100 Subject: [PATCH] devtools: add roofs tool --- .../plugins/devtools/DevToolsOverlay.java | 41 +++++++++++++++++++ .../plugins/devtools/DevToolsPanel.java | 2 + .../plugins/devtools/DevToolsPlugin.java | 2 + 3 files changed, 45 insertions(+) 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 5a3f271578..d7c293d0e9 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 @@ -135,9 +135,50 @@ class DevToolsOverlay extends Overlay renderGraphicsObjects(graphics); } + if (plugin.getRoofs().isActive()) + { + renderRoofs(graphics); + } + return null; } + private void renderRoofs(Graphics2D graphics) + { + Scene scene = client.getScene(); + Tile[][][] tiles = scene.getTiles(); + byte[][][] settings = client.getTileSettings(); + int z = client.getPlane(); + String text = "R"; + + for (int x = 0; x < Constants.SCENE_SIZE; ++x) + { + for (int y = 0; y < Constants.SCENE_SIZE; ++y) + { + Tile tile = tiles[z][x][y]; + + if (tile == null) + { + continue; + } + + int flag = settings[z][x][y]; + if ((flag & Constants.TILE_FLAG_UNDER_ROOF) == 0) + { + continue; + } + + Point loc = Perspective.getCanvasTextLocation(client, graphics, tile.getLocalLocation(), text, z); + if (loc == null) + { + continue; + } + + OverlayUtil.renderTextLocation(graphics, loc, text, Color.RED); + } + } + } + private void renderPlayers(Graphics2D graphics) { List players = client.getPlayers(); 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 9ba1efd092..ed461a5af3 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 @@ -177,6 +177,8 @@ class DevToolsPanel extends PluginPanel disconnectBtn.addActionListener(e -> clientThread.invoke(() -> client.setGameState(GameState.CONNECTION_LOST))); container.add(disconnectBtn); + container.add(plugin.getRoofs()); + try { ShellFrame sf = plugin.getInjector().getInstance(ShellFrame.class); 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 a22887b53f..b9cc30c8dd 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 @@ -144,6 +144,7 @@ public class DevToolsPlugin extends Plugin private DevToolsButton soundEffects; private DevToolsButton scriptInspector; private DevToolsButton inventoryInspector; + private DevToolsButton roofs; private DevToolsButton shell; private NavigationButton navButton; @@ -189,6 +190,7 @@ public class DevToolsPlugin extends Plugin soundEffects = new DevToolsButton("Sound Effects"); scriptInspector = new DevToolsButton("Script Inspector"); inventoryInspector = new DevToolsButton("Inventory Inspector"); + roofs = new DevToolsButton("Roofs"); shell = new DevToolsButton("Shell"); overlayManager.add(overlay);