devtools: fix drawing game object overlays multiple times

This also removes the player mesh overlay and the gameobject convex hull overlay since they are unnecessary
This commit is contained in:
Adam
2021-02-06 14:07:32 -05:00
parent daf0d1c48b
commit 089756189f

View File

@@ -43,8 +43,6 @@ import net.runelite.api.Constants;
import net.runelite.api.DecorativeObject; import net.runelite.api.DecorativeObject;
import net.runelite.api.GameObject; import net.runelite.api.GameObject;
import net.runelite.api.GraphicsObject; import net.runelite.api.GraphicsObject;
import net.runelite.api.TileItem;
import net.runelite.api.GroundObject;
import net.runelite.api.ItemLayer; import net.runelite.api.ItemLayer;
import net.runelite.api.NPC; import net.runelite.api.NPC;
import net.runelite.api.NPCComposition; import net.runelite.api.NPCComposition;
@@ -55,7 +53,8 @@ import net.runelite.api.Point;
import net.runelite.api.Projectile; import net.runelite.api.Projectile;
import net.runelite.api.Scene; import net.runelite.api.Scene;
import net.runelite.api.Tile; import net.runelite.api.Tile;
import net.runelite.api.WallObject; import net.runelite.api.TileItem;
import net.runelite.api.TileObject;
import net.runelite.api.coords.LocalPoint; import net.runelite.api.coords.LocalPoint;
import net.runelite.api.widgets.Widget; import net.runelite.api.widgets.Widget;
import net.runelite.api.widgets.WidgetInfo; import net.runelite.api.widgets.WidgetInfo;
@@ -154,7 +153,6 @@ class DevToolsOverlay extends Overlay
String text = local.getName() + " (A: " + local.getAnimation() + ") (P: " + local.getPoseAnimation() + ") (G: " + local.getGraphic() + ")"; String text = local.getName() + " (A: " + local.getAnimation() + ") (P: " + local.getPoseAnimation() + ") (G: " + local.getGraphic() + ")";
OverlayUtil.renderActorOverlay(graphics, local, text, CYAN); OverlayUtil.renderActorOverlay(graphics, local, text, CYAN);
renderPlayerWireframe(graphics, local, CYAN);
} }
private void renderNpcs(Graphics2D graphics) private void renderNpcs(Graphics2D graphics)
@@ -214,7 +212,7 @@ class DevToolsOverlay extends Overlay
if (plugin.getGroundObjects().isActive()) if (plugin.getGroundObjects().isActive())
{ {
renderGroundObject(graphics, tile, player); renderTileObject(graphics, tile.getGroundObject(), player, PURPLE);
} }
if (plugin.getGameObjects().isActive()) if (plugin.getGameObjects().isActive())
@@ -224,7 +222,7 @@ class DevToolsOverlay extends Overlay
if (plugin.getWalls().isActive()) if (plugin.getWalls().isActive())
{ {
renderWallObject(graphics, tile, player); renderTileObject(graphics, tile.getWallObject(), player, GRAY);
} }
if (plugin.getDecorations().isActive()) if (plugin.getDecorations().isActive())
@@ -309,45 +307,21 @@ class DevToolsOverlay extends Overlay
{ {
for (GameObject gameObject : gameObjects) for (GameObject gameObject : gameObjects)
{ {
if (gameObject != null) if (gameObject != null && gameObject.getSceneMinLocation().equals(tile.getSceneLocation()))
{ {
if (player.getLocalLocation().distanceTo(gameObject.getLocalLocation()) <= MAX_DISTANCE) renderTileObject(graphics, gameObject, player, GREEN);
{
OverlayUtil.renderTileOverlay(graphics, gameObject, "ID: " + gameObject.getId(), GREEN);
}
// Draw a polygon around the convex hull
// of the model vertices
Shape p = gameObject.getConvexHull();
if (p != null)
{
graphics.draw(p);
}
} }
} }
} }
} }
private void renderGroundObject(Graphics2D graphics, Tile tile, Player player) private void renderTileObject(Graphics2D graphics, TileObject tileObject, Player player, Color color)
{ {
GroundObject groundObject = tile.getGroundObject(); if (tileObject != null)
if (groundObject != null)
{ {
if (player.getLocalLocation().distanceTo(groundObject.getLocalLocation()) <= MAX_DISTANCE) if (player.getLocalLocation().distanceTo(tileObject.getLocalLocation()) <= MAX_DISTANCE)
{ {
OverlayUtil.renderTileOverlay(graphics, groundObject, "ID: " + groundObject.getId(), PURPLE); OverlayUtil.renderTileOverlay(graphics, tileObject, "ID: " + tileObject.getId(), color);
}
}
}
private void renderWallObject(Graphics2D graphics, Tile tile, Player player)
{
WallObject wallObject = tile.getWallObject();
if (wallObject != null)
{
if (player.getLocalLocation().distanceTo(wallObject.getLocalLocation()) <= MAX_DISTANCE)
{
OverlayUtil.renderTileOverlay(graphics, wallObject, "ID: " + wallObject.getId(), GRAY);
} }
} }
} }
@@ -447,22 +421,4 @@ class DevToolsOverlay extends Overlay
} }
} }
} }
private void renderPlayerWireframe(Graphics2D graphics, Player player, Color color)
{
Polygon[] polys = player.getPolygons();
if (polys == null)
{
return;
}
graphics.setColor(color);
for (Polygon p : polys)
{
graphics.drawPolygon(p);
}
}
} }