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:
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user