runelite-client: some work on widget overlays

can't figure out how to only render whats on screen and some positions are off, when others aren't
This commit is contained in:
Adam
2017-04-20 19:44:37 -04:00
parent 57d93b5801
commit 79bd48f2ce
6 changed files with 147 additions and 21 deletions

View File

@@ -56,6 +56,7 @@ public class DevTools extends Plugin
private boolean toggleWalls;
private boolean toggleDecor;
private boolean toggleInventory;
private boolean toggleWidgets;
private Font font;
@@ -145,6 +146,11 @@ public class DevTools extends Plugin
toggleInventory = !toggleInventory;
}
public void toggleWidgets()
{
toggleWidgets = !toggleWidgets;
}
public boolean isTogglePlayers()
{
return togglePlayers;
@@ -184,4 +190,9 @@ public class DevTools extends Plugin
{
return toggleInventory;
}
public boolean isToggleWidgets()
{
return toggleWidgets;
}
}

View File

@@ -107,6 +107,11 @@ public class DevToolsOverlay extends Overlay
renderInventory(graphics);
}
if (tools.isToggleWidgets())
{
renderWidgets(graphics);
}
return null;
}
@@ -389,4 +394,45 @@ public class DevToolsOverlay extends Overlay
}
}
private void renderWidgets(Graphics2D graphics)
{
Widget[][] widgets = client.getWidgets();
boolean[] validInterfaces = client.getValidInterfaces();
int idx = -1;
for (Widget[] children : widgets)
{
++idx;
if (!validInterfaces[idx])
{
continue;
}
if (children == null)
{
continue;
}
for (Widget child : children)
{
if (child == null)
{
continue;
}
if (child.getText() == null)
{
continue;
}
Rectangle rectangle = child.getBounds();
//graphics.draw(rectangle);
graphics.drawString(child.getText(), (int) rectangle.getX(), (int) rectangle.getY());
}
}
}
}

View File

@@ -41,6 +41,7 @@ public class DevToolsPanel extends PluginPanel
private JButton renderWallsBtn = new JButton();
private JButton renderDecorBtn = new JButton();
private JButton renderInventoryBtn = new JButton();
private JButton renderWidgetsBtn = new JButton();
public DevToolsPanel(DevTools tools)
{
@@ -50,64 +51,80 @@ public class DevToolsPanel extends PluginPanel
setVisible(true);
JPanel container = new JPanel();
container.setLayout(new GridLayout(4, 2, 3, 3));
container.setLayout(new GridLayout(5, 2, 3, 3));
add(container);
renderPlayersBtn = new JButton("Players");
renderPlayersBtn.addActionListener(e -> {
renderPlayersBtn.addActionListener(e ->
{
highlightButton(renderPlayersBtn);
tools.togglePlayers();
});
container.add(renderPlayersBtn);
renderNpcsBtn = new JButton("NPCs");
renderNpcsBtn.addActionListener(e -> {
renderNpcsBtn.addActionListener(e ->
{
highlightButton(renderNpcsBtn);
tools.toggleNpcs();
});
container.add(renderNpcsBtn);
renderGroundItemsBtn = new JButton("Ground Items");
renderGroundItemsBtn.addActionListener(e -> {
renderGroundItemsBtn.addActionListener(e ->
{
highlightButton(renderGroundItemsBtn);
tools.toggleGroundItems();
});
container.add(renderGroundItemsBtn);
renderGroundObjectsBtn = new JButton("Ground Objects");
renderGroundObjectsBtn.addActionListener(e -> {
renderGroundObjectsBtn.addActionListener(e ->
{
highlightButton(renderGroundObjectsBtn);
tools.toggleGroundObjects();
});
container.add(renderGroundObjectsBtn);
renderGameObjectsBtn = new JButton("Game Objects");
renderGameObjectsBtn.addActionListener(e -> {
renderGameObjectsBtn.addActionListener(e ->
{
highlightButton(renderGameObjectsBtn);
tools.toggleGameObjects();
});
container.add(renderGameObjectsBtn);
renderWallsBtn = new JButton("Walls");
renderWallsBtn.addActionListener(e -> {
renderWallsBtn.addActionListener(e ->
{
highlightButton(renderWallsBtn);
tools.toggleWalls();
});
container.add(renderWallsBtn);
renderDecorBtn = new JButton("Decorations");
renderDecorBtn.addActionListener(e -> {
renderDecorBtn.addActionListener(e ->
{
highlightButton(renderDecorBtn);
tools.toggleDecor();
});
container.add(renderDecorBtn);
renderInventoryBtn = new JButton("Inventory");
renderInventoryBtn.addActionListener(e -> {
renderInventoryBtn.addActionListener(e ->
{
highlightButton(renderInventoryBtn);
tools.toggleInventory();
});
container.add(renderInventoryBtn);
renderWidgetsBtn = new JButton("Widgets");
renderWidgetsBtn.addActionListener(e ->
{
highlightButton(renderWidgetsBtn);
tools.toggleWidgets();
});
container.add(renderWidgetsBtn);
}
private void highlightButton(JButton button)