Remove deprecated WallObjectQuery class

This commit is contained in:
Jordan Atwood
2018-10-11 15:49:06 -07:00
committed by Adam
parent 764cac7a09
commit 35b7de7dd8
3 changed files with 39 additions and 73 deletions

View File

@@ -101,6 +101,8 @@ public class MTAPlugin extends Plugin
{
eventBus.unregister(room);
}
telekineticRoom.resetRoom();
}
}

View File

@@ -28,9 +28,11 @@ import java.awt.Color;
import java.awt.Graphics2D;
import java.awt.Polygon;
import java.awt.Rectangle;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.HashSet;
import java.util.LinkedList;
import java.util.List;
import java.util.Map;
import java.util.Queue;
import java.util.Set;
@@ -52,11 +54,12 @@ import net.runelite.api.coords.Direction;
import net.runelite.api.coords.LocalPoint;
import net.runelite.api.coords.WorldArea;
import net.runelite.api.coords.WorldPoint;
import net.runelite.api.events.GameStateChanged;
import net.runelite.api.events.GameTick;
import net.runelite.api.events.NpcDespawned;
import net.runelite.api.events.NpcSpawned;
import net.runelite.api.events.WallObjectSpawned;
import net.runelite.api.queries.GroundObjectQuery;
import net.runelite.api.queries.WallObjectQuery;
import net.runelite.api.widgets.WidgetID;
import net.runelite.client.eventbus.Subscribe;
import net.runelite.client.plugins.mta.MTAConfig;
@@ -71,6 +74,8 @@ public class TelekineticRoom extends MTARoom
private final Client client;
private final List<WallObject> telekineticWalls = new ArrayList<>();
private Stack<Direction> moves = new Stack<>();
private LocalPoint destination;
private WorldPoint location;
@@ -85,6 +90,34 @@ public class TelekineticRoom extends MTARoom
this.client = client;
}
public void resetRoom()
{
telekineticWalls.clear();
}
@Subscribe
public void onWallObjectSpawned(WallObjectSpawned event)
{
final WallObject wall = event.getWallObject();
if (wall.getId() != TELEKINETIC_WALL)
{
return;
}
telekineticWalls.add(wall);
}
@Subscribe
public void onGameStateChanged(GameStateChanged event)
{
if (event.getGameState() == GameState.LOADING)
{
// Game objects are nulled when loading new scenes, thus never trigger their respective
// ObjectDespawned events.
resetRoom();
}
}
@Subscribe
public void onGameTick(GameTick event)
{
@@ -97,15 +130,10 @@ public class TelekineticRoom extends MTARoom
return;
}
WallObjectQuery qry = new WallObjectQuery()
.idEquals(TELEKINETIC_WALL);
WallObject[] result = qry.result(client);
int length = result.length;
if (maze == null || length != maze.getWalls())
if (maze == null || telekineticWalls.size() != maze.getWalls())
{
bounds = getBounds(result);
maze = Maze.fromWalls(length);
bounds = getBounds(telekineticWalls.toArray(new WallObject[0]));
maze = Maze.fromWalls(telekineticWalls.size());
client.clearHintArrow();
}
else if (guardian != null)