From 6aec578aa9f5fa50e8bbdb113d1ffb2b1c0484b6 Mon Sep 17 00:00:00 2001 From: Tomas Slusny Date: Mon, 26 Nov 2018 10:25:51 +0000 Subject: [PATCH 1/5] Change dev tools fonts to constant Signed-off-by: Tomas Slusny --- .../client/plugins/devtools/DevToolsOverlay.java | 14 ++++++-------- .../client/plugins/devtools/DevToolsPlugin.java | 10 ---------- 2 files changed, 6 insertions(+), 18 deletions(-) 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 07eaec5f68..d0132fea4c 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 @@ -58,6 +58,7 @@ import net.runelite.api.coords.LocalPoint; 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; import net.runelite.client.ui.overlay.OverlayPosition; @@ -67,9 +68,10 @@ import net.runelite.client.ui.overlay.tooltip.TooltipManager; public class DevToolsOverlay extends Overlay { - public static final int ITEM_EMPTY = 6512; - public static final int ITEM_FILLED = 20594; + private static final int ITEM_EMPTY = 6512; + private static final int ITEM_FILLED = 20594; + private static final Font FONT = FontManager.getRunescapeFont().deriveFont(Font.BOLD, 16); private static final Color RED = new Color(221, 44, 0); private static final Color GREEN = new Color(0, 200, 83); private static final Color ORANGE = new Color(255, 109, 0); @@ -87,7 +89,7 @@ public class DevToolsOverlay extends Overlay private final TooltipManager toolTipManager; @Inject - public DevToolsOverlay(Client client, DevToolsPlugin plugin, TooltipManager toolTipManager) + private DevToolsOverlay(Client client, DevToolsPlugin plugin, TooltipManager toolTipManager) { setPosition(OverlayPosition.DYNAMIC); setLayer(OverlayLayer.ALWAYS_ON_TOP); @@ -99,11 +101,7 @@ public class DevToolsOverlay extends Overlay @Override public Dimension render(Graphics2D graphics) { - Font font = plugin.getFont(); - if (font != null) - { - graphics.setFont(font); - } + graphics.setFont(FONT); if (plugin.isTogglePlayers()) { 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 ba4c396090..8ad4bb8f56 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 @@ -54,7 +54,6 @@ import net.runelite.client.config.ConfigManager; import net.runelite.client.plugins.Plugin; import net.runelite.client.plugins.PluginDescriptor; import net.runelite.client.ui.ClientToolbar; -import net.runelite.client.ui.FontManager; import net.runelite.client.ui.JagexColors; import net.runelite.client.ui.NavigationButton; import net.runelite.client.ui.overlay.OverlayManager; @@ -123,7 +122,6 @@ public class DevToolsPlugin extends Plugin Widget currentWidget; int itemIndex = -1; - private Font font; private NavigationButton navButton; @Provides @@ -153,9 +151,6 @@ public class DevToolsPlugin extends Plugin .build(); clientToolbar.addNavigation(navButton); - - font = FontManager.getRunescapeFont() - .deriveFont(Font.BOLD, 16); } @Override @@ -322,11 +317,6 @@ public class DevToolsPlugin extends Plugin } } - Font getFont() - { - return font; - } - void togglePlayers() { togglePlayers = !togglePlayers; From cd34fa36cf0b5f5d6268f10193f2daa9e4f1e9db Mon Sep 17 00:00:00 2001 From: Tomas Slusny Date: Mon, 26 Nov 2018 11:13:54 +0000 Subject: [PATCH 2/5] Unify dev tools toggles to 1 button type - Create custom button type with isActive property - Query this new property instead of bunch of stored boolans and toggle methods in dev tools overlays and panels Signed-off-by: Tomas Slusny --- .../plugins/devtools/CameraOverlay.java | 2 +- .../plugins/devtools/DevToolsButton.java | 55 ++++ .../plugins/devtools/DevToolsOverlay.java | 24 +- .../plugins/devtools/DevToolsPanel.java | 231 +++------------ .../plugins/devtools/DevToolsPlugin.java | 273 ++++-------------- .../plugins/devtools/LocationOverlay.java | 2 +- .../client/plugins/devtools/SceneOverlay.java | 10 +- .../plugins/devtools/WidgetInspector.java | 14 +- .../devtools/WorldMapLocationOverlay.java | 2 +- 9 files changed, 189 insertions(+), 424 deletions(-) create mode 100644 runelite-client/src/main/java/net/runelite/client/plugins/devtools/DevToolsButton.java diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/devtools/CameraOverlay.java b/runelite-client/src/main/java/net/runelite/client/plugins/devtools/CameraOverlay.java index 8a17cbb64e..882fe4201c 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/devtools/CameraOverlay.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/devtools/CameraOverlay.java @@ -52,7 +52,7 @@ public class CameraOverlay extends Overlay @Override public Dimension render(Graphics2D graphics) { - if (!plugin.isToggleCamera()) + if (!plugin.getCameraPosition().isActive()) { return null; } diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/devtools/DevToolsButton.java b/runelite-client/src/main/java/net/runelite/client/plugins/devtools/DevToolsButton.java new file mode 100644 index 0000000000..52de0309a9 --- /dev/null +++ b/runelite-client/src/main/java/net/runelite/client/plugins/devtools/DevToolsButton.java @@ -0,0 +1,55 @@ +/* + * Copyright (c) 2018, Tomas Slusny + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR + * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ +package net.runelite.client.plugins.devtools; + +import java.awt.Color; +import javax.swing.JButton; +import lombok.Getter; + +class DevToolsButton extends JButton +{ + @Getter + private boolean active; + + DevToolsButton(String title) + { + super(title); + addActionListener((ev) -> setActive(!active)); + } + + void setActive(boolean active) + { + this.active = active; + + if (active) + { + setBackground(Color.GREEN); + } + else + { + setBackground(null); + } + } +} 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 d0132fea4c..ffbce9e515 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 @@ -103,32 +103,32 @@ public class DevToolsOverlay extends Overlay { graphics.setFont(FONT); - if (plugin.isTogglePlayers()) + if (plugin.getPlayers().isActive()) { renderPlayers(graphics); } - if (plugin.isToggleNpcs()) + if (plugin.getNpcs().isActive()) { renderNpcs(graphics); } - if (plugin.isToggleGroundItems() || plugin.isToggleGroundObjects() || plugin.isToggleGameObjects() || plugin.isToggleWalls() || plugin.isToggleDecor() || plugin.isToggleTileLocation()) + if (plugin.getGroundItems().isActive() || plugin.getGroundObjects().isActive() || plugin.getGameObjects().isActive() || plugin.getWalls().isActive() || plugin.getDecorations().isActive() || plugin.getTileLocation().isActive()) { renderTileObjects(graphics); } - if (plugin.isToggleInventory()) + if (plugin.getInventory().isActive()) { renderInventory(graphics); } - if (plugin.isToggleProjectiles()) + if (plugin.getProjectiles().isActive()) { renderProjectiles(graphics); } - if (plugin.isToggleGraphicsObjects()) + if (plugin.getGraphicsObjects().isActive()) { renderGraphicsObjects(graphics); } @@ -211,32 +211,32 @@ public class DevToolsOverlay extends Overlay continue; } - if (plugin.isToggleGroundItems()) + if (plugin.getGroundItems().isActive()) { renderGroundItems(graphics, tile, player); } - if (plugin.isToggleGroundObjects()) + if (plugin.getGroundObjects().isActive()) { renderGroundObject(graphics, tile, player); } - if (plugin.isToggleGameObjects()) + if (plugin.getGameObjects().isActive()) { renderGameObjects(graphics, tile, player); } - if (plugin.isToggleWalls()) + if (plugin.getWalls().isActive()) { renderWallObject(graphics, tile, player); } - if (plugin.isToggleDecor()) + if (plugin.getDecorations().isActive()) { renderDecorObject(graphics, tile, player); } - if (plugin.isToggleTileLocation()) + if (plugin.getTileLocation().isActive()) { renderTileTooltip(graphics, tile); } 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 e68577a501..d386d92566 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 @@ -25,10 +25,8 @@ */ package net.runelite.client.plugins.devtools; -import java.awt.Color; import java.awt.GridLayout; import javax.inject.Inject; -import javax.swing.JButton; import javax.swing.JPanel; import net.runelite.api.Client; import net.runelite.client.ui.ColorScheme; @@ -43,7 +41,7 @@ public class DevToolsPanel extends PluginPanel private final VarInspector varInspector; @Inject - public DevToolsPanel(Client client, DevToolsPlugin plugin, WidgetInspector widgetInspector, VarInspector varInspector) + private DevToolsPanel(Client client, DevToolsPlugin plugin, WidgetInspector widgetInspector, VarInspector varInspector) { super(); this.client = client; @@ -62,204 +60,65 @@ public class DevToolsPanel extends PluginPanel container.setBackground(ColorScheme.DARK_GRAY_COLOR); container.setLayout(new GridLayout(0, 2, 3, 3)); - final JButton renderPlayersBtn = new JButton("Players"); - renderPlayersBtn.addActionListener(e -> - { - highlightButton(renderPlayersBtn); - plugin.togglePlayers(); - }); - container.add(renderPlayersBtn); + container.add(plugin.getPlayers()); + container.add(plugin.getNpcs()); - final JButton renderNpcsBtn = new JButton("NPCs"); - renderNpcsBtn.addActionListener(e -> - { - highlightButton(renderNpcsBtn); - plugin.toggleNpcs(); - }); - container.add(renderNpcsBtn); + container.add(plugin.getGroundItems()); + container.add(plugin.getGroundObjects()); + container.add(plugin.getGameObjects()); + container.add(plugin.getGraphicsObjects()); + container.add(plugin.getWalls()); + container.add(plugin.getDecorations()); - final JButton renderGroundItemsBtn = new JButton("Ground Items"); - renderGroundItemsBtn.addActionListener(e -> - { - highlightButton(renderGroundItemsBtn); - plugin.toggleGroundItems(); - }); - container.add(renderGroundItemsBtn); + container.add(plugin.getInventory()); + container.add(plugin.getProjectiles()); - final JButton renderGroundObjectsBtn = new JButton("Ground Objects"); - renderGroundObjectsBtn.addActionListener(e -> - { - highlightButton(renderGroundObjectsBtn); - plugin.toggleGroundObjects(); - }); - container.add(renderGroundObjectsBtn); + container.add(plugin.getLocation()); + container.add(plugin.getWorldMapLocation()); + container.add(plugin.getTileLocation()); + container.add(plugin.getCameraPosition()); - final JButton renderGameObjectsBtn = new JButton("Game Objects"); - renderGameObjectsBtn.addActionListener(e -> - { - highlightButton(renderGameObjectsBtn); - plugin.toggleGameObjects(); - }); - container.add(renderGameObjectsBtn); + container.add(plugin.getChunkBorders()); + container.add(plugin.getMapSquares()); - final JButton renderWallsBtn = new JButton("Walls"); - renderWallsBtn.addActionListener(e -> - { - highlightButton(renderWallsBtn); - plugin.toggleWalls(); - }); - container.add(renderWallsBtn); + container.add(plugin.getLineOfSight()); + container.add(plugin.getValidMovement()); + container.add(plugin.getInteracting()); + container.add(plugin.getExamine()); - final JButton renderDecorBtn = new JButton("Decorations"); - renderDecorBtn.addActionListener(e -> + container.add(plugin.getDetachedCamera()); + plugin.getDetachedCamera().addActionListener((ev) -> { - highlightButton(renderDecorBtn); - plugin.toggleDecor(); + client.setOculusOrbState(!plugin.getDetachedCamera().isActive() ? 1 : 0); + client.setOculusOrbNormalSpeed(!plugin.getDetachedCamera().isActive() ? 36 : 12); }); - container.add(renderDecorBtn); - final JButton renderInventoryBtn = new JButton("Inventory"); - renderInventoryBtn.addActionListener(e -> + container.add(plugin.getWidgetInspector()); + plugin.getWidgetInspector().addActionListener((ev) -> { - highlightButton(renderInventoryBtn); - plugin.toggleInventory(); + if (plugin.getWidgetInspector().isActive()) + { + widgetInspector.close(); + } + else + { + widgetInspector.open(); + } }); - container.add(renderInventoryBtn); - final JButton renderProjectilesBtn = new JButton("Projectiles"); - renderProjectilesBtn.addActionListener(e -> + container.add(plugin.getVarInspector()); + plugin.getVarInspector().addActionListener((ev) -> { - highlightButton(renderProjectilesBtn); - plugin.toggleProjectiles(); + if (plugin.getVarInspector().isActive()) + { + varInspector.close(); + } + else + { + varInspector.open(); + } }); - container.add(renderProjectilesBtn); - - final JButton renderLocationBtn = new JButton("Location"); - renderLocationBtn.addActionListener(e -> - { - highlightButton(renderLocationBtn); - plugin.toggleLocation(); - }); - container.add(renderLocationBtn); - - final JButton widgetInspectorBtn = new JButton("Widget Tools"); - widgetInspectorBtn.addActionListener(e -> - { - widgetInspector.setVisible(true); - widgetInspector.toFront(); - widgetInspector.repaint(); - }); - container.add(widgetInspectorBtn); - - final JButton varInspectorBtn = new JButton("Var Tools"); - varInspectorBtn.addActionListener(e -> - { - varInspector.open(); - }); - container.add(varInspectorBtn); - - final JButton chunkBordersBtn = new JButton("Chunk borders"); - chunkBordersBtn.addActionListener(e -> - { - highlightButton(chunkBordersBtn); - plugin.toggleChunkBorders(); - }); - container.add(chunkBordersBtn); - - final JButton mapSquaresBtn = new JButton("Map squares"); - mapSquaresBtn.addActionListener(e -> - { - highlightButton(mapSquaresBtn); - plugin.toggleMapSquares(); - }); - container.add(mapSquaresBtn); - - final JButton validMovementBtn = new JButton("Valid Moves"); - validMovementBtn.addActionListener(e -> - { - highlightButton(validMovementBtn); - plugin.toggleValidMovement(); - }); - container.add(validMovementBtn); - - final JButton lineOfSightBtn = new JButton("Line of Sight"); - lineOfSightBtn.addActionListener(e -> - { - highlightButton(lineOfSightBtn); - plugin.toggleLineOfSight(); - }); - container.add(lineOfSightBtn); - - final JButton graphicsObjectsBtn = new JButton("Graphics objects"); - graphicsObjectsBtn.addActionListener(e -> - { - highlightButton(graphicsObjectsBtn); - plugin.toggleGraphicsObjects(); - }); - container.add(graphicsObjectsBtn); - - final JButton cameraPositionBtn = new JButton("Camera Position"); - cameraPositionBtn.addActionListener(e -> - { - highlightButton(cameraPositionBtn); - plugin.toggleCamera(); - }); - container.add(cameraPositionBtn); - - final JButton worldMapBtn = new JButton("World Map Location"); - worldMapBtn.addActionListener(e -> - { - highlightButton(worldMapBtn); - plugin.toggleWorldMapLocation(); - }); - container.add(worldMapBtn); - - final JButton tileLocationBtn = new JButton("Tile Location Tooltip"); - tileLocationBtn.addActionListener(e -> - { - highlightButton(tileLocationBtn); - plugin.toggleTileLocation(); - }); - container.add(tileLocationBtn); - - final JButton oculusOrbBtn = new JButton("Detached camera"); - oculusOrbBtn.addActionListener(e -> - { - highlightButton(oculusOrbBtn); - boolean enabled = oculusOrbBtn.getBackground().equals(Color.GREEN); - client.setOculusOrbState(enabled ? 1 : 0); - client.setOculusOrbNormalSpeed(enabled ? 36 : 12); - }); - container.add(oculusOrbBtn); - - final JButton interactingBtn = new JButton("Interacting"); - interactingBtn.addActionListener(e -> - { - highlightButton(interactingBtn); - plugin.toggleInteracting(); - }); - container.add(interactingBtn); - - final JButton examineInfoBtn = new JButton("Examine Info"); - examineInfoBtn.addActionListener(e -> - { - highlightButton(examineInfoBtn); - plugin.toggleExamineInfo(); - }); - container.add(examineInfoBtn); return container; } - - private void highlightButton(JButton button) - { - if (button.getBackground().equals(Color.GREEN)) - { - button.setBackground(null); - } - else - { - button.setBackground(Color.GREEN); - } - } } 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 8ad4bb8f56..289c2fe9c1 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 @@ -30,11 +30,11 @@ import com.google.common.collect.ImmutableList; import com.google.common.eventbus.EventBus; import com.google.common.eventbus.Subscribe; import com.google.inject.Provides; -import java.awt.Font; import java.awt.image.BufferedImage; import static java.lang.Math.min; import java.util.List; import javax.inject.Inject; +import lombok.Getter; import net.runelite.api.ChatMessageType; import net.runelite.api.Client; import net.runelite.api.Experience; @@ -66,6 +66,7 @@ import org.slf4j.LoggerFactory; tags = {"panel"}, developerPlugin = true ) +@Getter public class DevToolsPlugin extends Plugin { private static final List EXAMINE_MENU_ACTIONS = ImmutableList.of(MenuAction.EXAMINE_ITEM, @@ -98,26 +99,29 @@ public class DevToolsPlugin extends Plugin @Inject private EventBus eventBus; - private boolean togglePlayers; - private boolean toggleNpcs; - private boolean toggleGroundItems; - private boolean toggleGroundObjects; - private boolean toggleGameObjects; - private boolean toggleWalls; - private boolean toggleDecor; - private boolean toggleInventory; - private boolean toggleProjectiles; - private boolean toggleLocation; - private boolean toggleChunkBorders; - private boolean toggleMapSquares; - private boolean toggleValidMovement; - private boolean toggleLineOfSight; - private boolean toggleGraphicsObjects; - private boolean toggleCamera; - private boolean toggleWorldMapLocation; - private boolean toggleTileLocation; - private boolean toggleInteracting; - private boolean toggleExamineInfo; + private DevToolsButton players; + private DevToolsButton npcs; + private DevToolsButton groundItems; + private DevToolsButton groundObjects; + private DevToolsButton gameObjects; + private DevToolsButton graphicsObjects; + private DevToolsButton walls; + private DevToolsButton decorations; + private DevToolsButton inventory; + private DevToolsButton projectiles; + private DevToolsButton location; + private DevToolsButton chunkBorders; + private DevToolsButton mapSquares; + private DevToolsButton validMovement; + private DevToolsButton lineOfSight; + private DevToolsButton cameraPosition; + private DevToolsButton worldMapLocation ; + private DevToolsButton tileLocation; + private DevToolsButton interacting; + private DevToolsButton examine; + private DevToolsButton detachedCamera; + private DevToolsButton widgetInspector; + private DevToolsButton varInspector; Widget currentWidget; int itemIndex = -1; @@ -133,6 +137,36 @@ public class DevToolsPlugin extends Plugin @Override protected void startUp() throws Exception { + players = new DevToolsButton("Players"); + npcs = new DevToolsButton("NPCs"); + + groundItems = new DevToolsButton("Ground Items"); + groundObjects = new DevToolsButton("Ground Objects"); + gameObjects = new DevToolsButton("Game Objects"); + graphicsObjects = new DevToolsButton("Graphics Objects"); + walls = new DevToolsButton("Walls"); + decorations = new DevToolsButton("Decorations"); + + inventory = new DevToolsButton("Inventory"); + projectiles = new DevToolsButton("Projectiles"); + + location = new DevToolsButton("Location"); + worldMapLocation = new DevToolsButton("World Map Location"); + tileLocation = new DevToolsButton("Tile Location"); + cameraPosition = new DevToolsButton("Camera Position"); + + chunkBorders = new DevToolsButton("Chunk Borders"); + mapSquares = new DevToolsButton("Map Squares"); + + lineOfSight = new DevToolsButton("Line Of Sight"); + validMovement = new DevToolsButton("Valid Movement"); + interacting = new DevToolsButton("Interacting"); + examine = new DevToolsButton("Examine"); + + detachedCamera = new DevToolsButton("Detached Camera"); + widgetInspector = new DevToolsButton("Widget Inspector"); + varInspector = new DevToolsButton("Var Inspector"); + overlayManager.add(overlay); overlayManager.add(locationOverlay); overlayManager.add(sceneOverlay); @@ -281,7 +315,7 @@ public class DevToolsPlugin extends Plugin @Subscribe public void onMenuEntryAdded(MenuEntryAdded event) { - if (!toggleExamineInfo) + if (!examine.isActive()) { return; } @@ -316,199 +350,4 @@ public class DevToolsPlugin extends Plugin client.setMenuEntries(entries); } } - - void togglePlayers() - { - togglePlayers = !togglePlayers; - } - - void toggleNpcs() - { - toggleNpcs = !toggleNpcs; - } - - void toggleGroundItems() - { - toggleGroundItems = !toggleGroundItems; - } - - void toggleGroundObjects() - { - toggleGroundObjects = !toggleGroundObjects; - } - - void toggleGameObjects() - { - toggleGameObjects = !toggleGameObjects; - } - - void toggleWalls() - { - toggleWalls = !toggleWalls; - } - - void toggleDecor() - { - toggleDecor = !toggleDecor; - } - - void toggleInventory() - { - toggleInventory = !toggleInventory; - } - - void toggleProjectiles() - { - toggleProjectiles = !toggleProjectiles; - } - - void toggleLocation() - { - toggleLocation = !toggleLocation; - } - - void toggleChunkBorders() - { - toggleChunkBorders = !toggleChunkBorders; - } - - void toggleMapSquares() - { - toggleMapSquares = !toggleMapSquares; - } - - void toggleValidMovement() - { - toggleValidMovement = !toggleValidMovement; - } - - void toggleLineOfSight() - { - toggleLineOfSight = !toggleLineOfSight; - } - - void toggleGraphicsObjects() - { - toggleGraphicsObjects = !toggleGraphicsObjects; - } - - void toggleCamera() - { - toggleCamera = !toggleCamera; - } - - void toggleWorldMapLocation() - { - toggleWorldMapLocation = !toggleWorldMapLocation; - } - - void toggleTileLocation() - { - toggleTileLocation = !toggleTileLocation; - } - - void toggleInteracting() - { - toggleInteracting = !toggleInteracting; - } - - void toggleExamineInfo() - { - toggleExamineInfo = !toggleExamineInfo; - } - - boolean isTogglePlayers() - { - return togglePlayers; - } - - boolean isToggleNpcs() - { - return toggleNpcs; - } - - boolean isToggleGroundItems() - { - return toggleGroundItems; - } - - boolean isToggleGroundObjects() - { - return toggleGroundObjects; - } - - boolean isToggleGameObjects() - { - return toggleGameObjects; - } - - boolean isToggleWalls() - { - return toggleWalls; - } - - boolean isToggleDecor() - { - return toggleDecor; - } - - boolean isToggleInventory() - { - return toggleInventory; - } - - boolean isToggleProjectiles() - { - return toggleProjectiles; - } - - boolean isToggleLocation() - { - return toggleLocation; - } - - boolean isToggleChunkBorders() - { - return toggleChunkBorders; - } - - boolean isToggleMapSquares() - { - return toggleMapSquares; - } - - boolean isToggleValidMovement() - { - return toggleValidMovement; - } - - boolean isToggleLineOfSight() - { - return toggleLineOfSight; - } - - boolean isToggleGraphicsObjects() - { - return toggleGraphicsObjects; - } - - boolean isToggleCamera() - { - return toggleCamera; - } - - boolean isToggleWorldMapLocation() - { - return toggleWorldMapLocation; - } - - boolean isToggleTileLocation() - { - return toggleTileLocation; - } - - boolean isToggleInteracting() - { - return toggleInteracting; - } } diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/devtools/LocationOverlay.java b/runelite-client/src/main/java/net/runelite/client/plugins/devtools/LocationOverlay.java index 32c42bb455..e9f9d2b608 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/devtools/LocationOverlay.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/devtools/LocationOverlay.java @@ -55,7 +55,7 @@ public class LocationOverlay extends Overlay @Override public Dimension render(Graphics2D graphics) { - if (!plugin.isToggleLocation()) + if (!plugin.getLocation().isActive()) { return null; } diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/devtools/SceneOverlay.java b/runelite-client/src/main/java/net/runelite/client/plugins/devtools/SceneOverlay.java index c7d5d2769b..9ee625e615 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/devtools/SceneOverlay.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/devtools/SceneOverlay.java @@ -87,27 +87,27 @@ public class SceneOverlay extends Overlay @Override public Dimension render(Graphics2D graphics) { - if (plugin.isToggleChunkBorders()) + if (plugin.getChunkBorders().isActive()) { renderChunkBorders(graphics); } - if (plugin.isToggleMapSquares()) + if (plugin.getMapSquares().isActive()) { renderMapSquares(graphics); } - if (plugin.isToggleLineOfSight()) + if (plugin.getLineOfSight().isActive()) { renderLineOfSight(graphics); } - if (plugin.isToggleValidMovement()) + if (plugin.getValidMovement().isActive()) { renderValidMovement(graphics); } - if (plugin.isToggleInteracting()) + if (plugin.getInteracting().isActive()) { renderInteracting(graphics); } diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/devtools/WidgetInspector.java b/runelite-client/src/main/java/net/runelite/client/plugins/devtools/WidgetInspector.java index 0992bdec06..452fa00202 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/devtools/WidgetInspector.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/devtools/WidgetInspector.java @@ -267,7 +267,7 @@ class WidgetInspector extends JFrame infoTableModel.setWidget(plugin.currentWidget); } - public static WidgetInfo getWidgetInfo(int packedId) + static WidgetInfo getWidgetInfo(int packedId) { if (widgetIdMap.size() == 0) { @@ -282,4 +282,16 @@ class WidgetInspector extends JFrame return widgetIdMap.get(packedId); } + + public void open() + { + setVisible(true); + toFront(); + repaint(); + } + + public void close() + { + setVisible(false); + } } diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/devtools/WorldMapLocationOverlay.java b/runelite-client/src/main/java/net/runelite/client/plugins/devtools/WorldMapLocationOverlay.java index 714ebc5d0e..461f3ee082 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/devtools/WorldMapLocationOverlay.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/devtools/WorldMapLocationOverlay.java @@ -62,7 +62,7 @@ public class WorldMapLocationOverlay extends Overlay @Override public Dimension render(Graphics2D graphics) { - if (!plugin.isToggleWorldMapLocation()) + if (!plugin.getWorldMapLocation().isActive()) { return null; } From 9db5dc7e77861e7117f140a1cc15ef42f54ff39b Mon Sep 17 00:00:00 2001 From: Tomas Slusny Date: Mon, 26 Nov 2018 11:54:16 +0000 Subject: [PATCH 3/5] Move widget and itemIndex to DevToolsOverlay There is no reason for widget and itemIndex to exist in plugin, so move it to where it is actually used. Signed-off-by: Tomas Slusny --- .../plugins/devtools/DevToolsOverlay.java | 16 ++++++-- .../plugins/devtools/DevToolsPlugin.java | 5 --- .../plugins/devtools/WidgetInspector.java | 38 +++++++++++-------- 3 files changed, 34 insertions(+), 25 deletions(-) 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 ffbce9e515..2992c9acd5 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 @@ -35,6 +35,9 @@ import java.awt.Rectangle; import java.awt.geom.Rectangle2D; import java.util.List; import javax.inject.Inject; +import javax.inject.Singleton; +import lombok.Getter; +import lombok.Setter; import net.runelite.api.Actor; import net.runelite.api.Client; import net.runelite.api.Constants; @@ -66,7 +69,8 @@ import net.runelite.client.ui.overlay.OverlayUtil; import net.runelite.client.ui.overlay.tooltip.Tooltip; import net.runelite.client.ui.overlay.tooltip.TooltipManager; -public class DevToolsOverlay extends Overlay +@Singleton +class DevToolsOverlay extends Overlay { private static final int ITEM_EMPTY = 6512; private static final int ITEM_FILLED = 20594; @@ -88,6 +92,13 @@ public class DevToolsOverlay extends Overlay private final DevToolsPlugin plugin; private final TooltipManager toolTipManager; + @Setter + @Getter + private Widget widget; + + @Setter + private int itemIndex = -1; + @Inject private DevToolsOverlay(Client client, DevToolsPlugin plugin, TooltipManager toolTipManager) { @@ -435,9 +446,6 @@ public class DevToolsOverlay extends Overlay public void renderWidgets(Graphics2D graphics) { - Widget widget = plugin.currentWidget; - int itemIndex = plugin.itemIndex; - if (widget == null || widget.isHidden()) { return; 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 289c2fe9c1..0994745b42 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 @@ -49,7 +49,6 @@ import net.runelite.api.events.ExperienceChanged; import net.runelite.api.events.MenuEntryAdded; import net.runelite.api.events.VarbitChanged; import net.runelite.api.kit.KitType; -import net.runelite.api.widgets.Widget; import net.runelite.client.config.ConfigManager; import net.runelite.client.plugins.Plugin; import net.runelite.client.plugins.PluginDescriptor; @@ -122,10 +121,6 @@ public class DevToolsPlugin extends Plugin private DevToolsButton detachedCamera; private DevToolsButton widgetInspector; private DevToolsButton varInspector; - - Widget currentWidget; - int itemIndex = -1; - private NavigationButton navButton; @Provides diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/devtools/WidgetInspector.java b/runelite-client/src/main/java/net/runelite/client/plugins/devtools/WidgetInspector.java index 452fa00202..bf11a797cf 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/devtools/WidgetInspector.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/devtools/WidgetInspector.java @@ -61,8 +61,8 @@ class WidgetInspector extends JFrame { private final Client client; private final ClientThread clientThread; - private final DevToolsPlugin plugin; private final DevToolsConfig config; + private final DevToolsOverlay overlay; private final JTree widgetTree; private final WidgetInfoTableModel infoTableModel; @@ -71,13 +71,19 @@ class WidgetInspector extends JFrame private static final Map widgetIdMap = new HashMap<>(); @Inject - WidgetInspector(DevToolsPlugin plugin, Client client, ClientThread clientThread, WidgetInfoTableModel infoTableModel, DevToolsConfig config, EventBus eventBus) + private WidgetInspector( + Client client, + ClientThread clientThread, + WidgetInfoTableModel infoTableModel, + DevToolsConfig config, + EventBus eventBus, + DevToolsOverlay overlay) { - this.plugin = plugin; this.client = client; this.clientThread = clientThread; this.infoTableModel = infoTableModel; this.config = config; + this.overlay = overlay; eventBus.register(this); @@ -90,8 +96,8 @@ class WidgetInspector extends JFrame @Override public void windowClosing(WindowEvent e) { - plugin.currentWidget = null; - plugin.itemIndex = -1; + overlay.setWidget(null); + overlay.setItemIndex(-1); } }); @@ -107,16 +113,16 @@ class WidgetInspector extends JFrame { WidgetTreeNode node = (WidgetTreeNode) selected; Widget widget = node.getWidget(); - plugin.currentWidget = widget; - plugin.itemIndex = widget.getItemId(); + overlay.setWidget(widget); + overlay.setItemIndex(widget.getItemId()); refreshInfo(); log.debug("Set widget to {} and item index to {}", widget, widget.getItemId()); } else if (selected instanceof WidgetItemNode) { WidgetItemNode node = (WidgetItemNode) selected; - plugin.itemIndex = node.getWidgetItem().getIndex(); - log.debug("Set item index to {}", plugin.itemIndex); + overlay.setItemIndex(node.getWidgetItem().getIndex()); + log.debug("Set item index to {}", node.getWidgetItem().getIndex()); } }); @@ -145,12 +151,12 @@ class WidgetInspector extends JFrame final JButton revalidateWidget = new JButton("Revalidate"); revalidateWidget.addActionListener(ev -> clientThread.invokeLater(() -> { - if (plugin.currentWidget == null) + if (overlay.getWidget() == null) { return; } - plugin.currentWidget.revalidate(); + overlay.getWidget().revalidate(); })); bottomPanel.add(revalidateWidget); @@ -175,8 +181,8 @@ class WidgetInspector extends JFrame Widget[] rootWidgets = client.getWidgetRoots(); DefaultMutableTreeNode root = new DefaultMutableTreeNode(); - plugin.currentWidget = null; - plugin.itemIndex = -1; + overlay.setWidget(null); + overlay.setItemIndex(-1); for (Widget widget : rootWidgets) { @@ -189,8 +195,8 @@ class WidgetInspector extends JFrame SwingUtilities.invokeLater(() -> { - plugin.currentWidget = null; - plugin.itemIndex = -1; + overlay.setWidget(null); + overlay.setItemIndex(-1); refreshInfo(); widgetTree.setModel(new DefaultTreeModel(root)); }); @@ -264,7 +270,7 @@ class WidgetInspector extends JFrame private void refreshInfo() { - infoTableModel.setWidget(plugin.currentWidget); + infoTableModel.setWidget(overlay.getWidget()); } static WidgetInfo getWidgetInfo(int packedId) From 9b1e55de93992ad728497324d636598109461d98 Mon Sep 17 00:00:00 2001 From: Tomas Slusny Date: Tue, 27 Nov 2018 08:59:30 +0000 Subject: [PATCH 4/5] Fix access levels in dev tools plugin Signed-off-by: Tomas Slusny --- .../net/runelite/client/plugins/devtools/DevToolsOverlay.java | 2 +- .../net/runelite/client/plugins/devtools/DevToolsPanel.java | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) 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 2992c9acd5..83e430fc08 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 @@ -444,7 +444,7 @@ class DevToolsOverlay extends Overlay } } - public void renderWidgets(Graphics2D graphics) + private void renderWidgets(Graphics2D graphics) { if (widget == null || widget.isHidden()) { 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 d386d92566..6798d4056b 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 @@ -32,7 +32,7 @@ import net.runelite.api.Client; import net.runelite.client.ui.ColorScheme; import net.runelite.client.ui.PluginPanel; -public class DevToolsPanel extends PluginPanel +class DevToolsPanel extends PluginPanel { private final Client client; private final DevToolsPlugin plugin; From 1c0fffd865934c1fea39655ceeb8826748bb0021 Mon Sep 17 00:00:00 2001 From: Tomas Slusny Date: Tue, 27 Nov 2018 09:19:57 +0000 Subject: [PATCH 5/5] Disable inspector buttons on close in dev tools Signed-off-by: Tomas Slusny --- .../client/plugins/devtools/VarInspector.java | 5 ++++- .../client/plugins/devtools/WidgetInspector.java | 11 ++++++++--- 2 files changed, 12 insertions(+), 4 deletions(-) diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/devtools/VarInspector.java b/runelite-client/src/main/java/net/runelite/client/plugins/devtools/VarInspector.java index 382bd6a7e0..4295012d54 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/devtools/VarInspector.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/devtools/VarInspector.java @@ -84,6 +84,7 @@ class VarInspector extends JFrame private final static int MAX_LOG_ENTRIES = 10_000; private final Client client; + private final DevToolsPlugin plugin; private final EventBus eventBus; private final JPanel tracker = new JPanel(); @@ -98,10 +99,11 @@ class VarInspector extends JFrame private String[] oldStrVarcs = null; @Inject - VarInspector(Client client, EventBus eventBus) + VarInspector(Client client, EventBus eventBus, DevToolsPlugin plugin) { this.eventBus = eventBus; this.client = client; + this.plugin = plugin; setTitle("RuneLite Var Inspector"); setIconImage(ClientUI.ICON); @@ -115,6 +117,7 @@ class VarInspector extends JFrame public void windowClosing(WindowEvent e) { close(); + plugin.getVarInspector().setActive(false); } }); diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/devtools/WidgetInspector.java b/runelite-client/src/main/java/net/runelite/client/plugins/devtools/WidgetInspector.java index bf11a797cf..e4f1f79632 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/devtools/WidgetInspector.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/devtools/WidgetInspector.java @@ -63,6 +63,7 @@ class WidgetInspector extends JFrame private final ClientThread clientThread; private final DevToolsConfig config; private final DevToolsOverlay overlay; + private final DevToolsPlugin plugin; private final JTree widgetTree; private final WidgetInfoTableModel infoTableModel; @@ -77,13 +78,15 @@ class WidgetInspector extends JFrame WidgetInfoTableModel infoTableModel, DevToolsConfig config, EventBus eventBus, - DevToolsOverlay overlay) + DevToolsOverlay overlay, + DevToolsPlugin plugin) { this.client = client; this.clientThread = clientThread; this.infoTableModel = infoTableModel; this.config = config; this.overlay = overlay; + this.plugin = plugin; eventBus.register(this); @@ -96,8 +99,8 @@ class WidgetInspector extends JFrame @Override public void windowClosing(WindowEvent e) { - overlay.setWidget(null); - overlay.setItemIndex(-1); + close(); + plugin.getWidgetInspector().setActive(false); } }); @@ -298,6 +301,8 @@ class WidgetInspector extends JFrame public void close() { + overlay.setWidget(null); + overlay.setItemIndex(-1); setVisible(false); } }