object indicator: add support for ground objects

This commit is contained in:
Adam
2019-10-02 21:10:57 -04:00
parent 5f745be26d
commit ad5514acde
2 changed files with 30 additions and 2 deletions

View File

@@ -31,6 +31,7 @@ import javax.inject.Inject;
import net.runelite.api.Client; import net.runelite.api.Client;
import net.runelite.api.DecorativeObject; import net.runelite.api.DecorativeObject;
import net.runelite.api.GameObject; import net.runelite.api.GameObject;
import net.runelite.api.GroundObject;
import net.runelite.api.TileObject; import net.runelite.api.TileObject;
import net.runelite.api.WallObject; import net.runelite.api.WallObject;
import net.runelite.client.ui.overlay.Overlay; import net.runelite.client.ui.overlay.Overlay;
@@ -83,6 +84,10 @@ class ObjectIndicatorsOverlay extends Overlay
polygon = ((DecorativeObject) object).getConvexHull(); polygon = ((DecorativeObject) object).getConvexHull();
polygon2 = ((DecorativeObject) object).getConvexHull2(); polygon2 = ((DecorativeObject) object).getConvexHull2();
} }
else if (object instanceof GroundObject)
{
polygon = ((GroundObject) object).getConvexHull();
}
else else
{ {
polygon = object.getCanvasTilePoly(); polygon = object.getCanvasTilePoly();

View File

@@ -47,6 +47,7 @@ import static net.runelite.api.Constants.REGION_SIZE;
import net.runelite.api.DecorativeObject; import net.runelite.api.DecorativeObject;
import net.runelite.api.GameObject; import net.runelite.api.GameObject;
import net.runelite.api.GameState; import net.runelite.api.GameState;
import net.runelite.api.GroundObject;
import net.runelite.api.MenuAction; import net.runelite.api.MenuAction;
import net.runelite.api.MenuEntry; import net.runelite.api.MenuEntry;
import net.runelite.api.ObjectComposition; import net.runelite.api.ObjectComposition;
@@ -55,14 +56,16 @@ import net.runelite.api.Tile;
import net.runelite.api.TileObject; import net.runelite.api.TileObject;
import net.runelite.api.WallObject; import net.runelite.api.WallObject;
import net.runelite.api.coords.WorldPoint; import net.runelite.api.coords.WorldPoint;
import net.runelite.api.events.DecorativeObjectDespawned;
import net.runelite.api.events.DecorativeObjectSpawned;
import net.runelite.api.events.FocusChanged; import net.runelite.api.events.FocusChanged;
import net.runelite.api.events.GameObjectDespawned; import net.runelite.api.events.GameObjectDespawned;
import net.runelite.api.events.GameObjectSpawned; import net.runelite.api.events.GameObjectSpawned;
import net.runelite.api.events.GameStateChanged; import net.runelite.api.events.GameStateChanged;
import net.runelite.api.events.GroundObjectDespawned;
import net.runelite.api.events.GroundObjectSpawned;
import net.runelite.api.events.MenuEntryAdded; import net.runelite.api.events.MenuEntryAdded;
import net.runelite.api.events.MenuOptionClicked; import net.runelite.api.events.MenuOptionClicked;
import net.runelite.api.events.DecorativeObjectSpawned;
import net.runelite.api.events.DecorativeObjectDespawned;
import net.runelite.api.events.WallObjectChanged; import net.runelite.api.events.WallObjectChanged;
import net.runelite.api.events.WallObjectDespawned; import net.runelite.api.events.WallObjectDespawned;
import net.runelite.api.events.WallObjectSpawned; import net.runelite.api.events.WallObjectSpawned;
@@ -212,6 +215,20 @@ public class ObjectIndicatorsPlugin extends Plugin implements KeyListener
objects.remove(event.getDecorativeObject()); objects.remove(event.getDecorativeObject());
} }
@Subscribe
public void onGroundObjectSpawned(GroundObjectSpawned groundObjectSpawned)
{
final GroundObject groundObject = groundObjectSpawned.getGroundObject();
checkObjectPoints(groundObject);
}
@Subscribe
public void onGroundObjectDespawned(GroundObjectDespawned groundObjectDespawned)
{
GroundObject groundObject = groundObjectDespawned.getGroundObject();
objects.remove(groundObject);
}
@Subscribe @Subscribe
public void onGameStateChanged(GameStateChanged gameStateChanged) public void onGameStateChanged(GameStateChanged gameStateChanged)
{ {
@@ -332,6 +349,7 @@ public class ObjectIndicatorsPlugin extends Plugin implements KeyListener
final GameObject[] tileGameObjects = tile.getGameObjects(); final GameObject[] tileGameObjects = tile.getGameObjects();
final DecorativeObject tileDecorativeObject = tile.getDecorativeObject(); final DecorativeObject tileDecorativeObject = tile.getDecorativeObject();
final WallObject tileWallObject = tile.getWallObject(); final WallObject tileWallObject = tile.getWallObject();
final GroundObject groundObject = tile.getGroundObject();
if (objectIdEquals(tileWallObject, id)) if (objectIdEquals(tileWallObject, id))
{ {
@@ -343,6 +361,11 @@ public class ObjectIndicatorsPlugin extends Plugin implements KeyListener
return tileDecorativeObject; return tileDecorativeObject;
} }
if (objectIdEquals(groundObject, id))
{
return groundObject;
}
for (GameObject object : tileGameObjects) for (GameObject object : tileGameObjects)
{ {
if (objectIdEquals(object, id)) if (objectIdEquals(object, id))