cannon plugin: move spot scene check to game state change event
This commit is contained in:
@@ -28,7 +28,7 @@ import java.awt.Color;
|
|||||||
import java.awt.image.BufferedImage;
|
import java.awt.image.BufferedImage;
|
||||||
import net.runelite.client.ui.overlay.infobox.InfoBox;
|
import net.runelite.client.ui.overlay.infobox.InfoBox;
|
||||||
|
|
||||||
public class CannonCounter extends InfoBox
|
class CannonCounter extends InfoBox
|
||||||
{
|
{
|
||||||
private final CannonPlugin plugin;
|
private final CannonPlugin plugin;
|
||||||
|
|
||||||
|
|||||||
@@ -26,7 +26,6 @@ package net.runelite.client.plugins.cannon;
|
|||||||
|
|
||||||
import com.google.inject.Provides;
|
import com.google.inject.Provides;
|
||||||
import java.awt.Color;
|
import java.awt.Color;
|
||||||
import java.time.temporal.ChronoUnit;
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.regex.Matcher;
|
import java.util.regex.Matcher;
|
||||||
@@ -37,6 +36,7 @@ import net.runelite.api.AnimationID;
|
|||||||
import net.runelite.api.ChatMessageType;
|
import net.runelite.api.ChatMessageType;
|
||||||
import net.runelite.api.Client;
|
import net.runelite.api.Client;
|
||||||
import net.runelite.api.GameObject;
|
import net.runelite.api.GameObject;
|
||||||
|
import net.runelite.api.GameState;
|
||||||
import net.runelite.api.InventoryID;
|
import net.runelite.api.InventoryID;
|
||||||
import net.runelite.api.Item;
|
import net.runelite.api.Item;
|
||||||
import net.runelite.api.ItemID;
|
import net.runelite.api.ItemID;
|
||||||
@@ -47,8 +47,8 @@ import static net.runelite.api.ProjectileID.CANNONBALL;
|
|||||||
import static net.runelite.api.ProjectileID.GRANITE_CANNONBALL;
|
import static net.runelite.api.ProjectileID.GRANITE_CANNONBALL;
|
||||||
import net.runelite.api.coords.WorldPoint;
|
import net.runelite.api.coords.WorldPoint;
|
||||||
import net.runelite.api.events.ChatMessage;
|
import net.runelite.api.events.ChatMessage;
|
||||||
import net.runelite.client.events.ConfigChanged;
|
|
||||||
import net.runelite.api.events.GameObjectSpawned;
|
import net.runelite.api.events.GameObjectSpawned;
|
||||||
|
import net.runelite.api.events.GameStateChanged;
|
||||||
import net.runelite.api.events.GameTick;
|
import net.runelite.api.events.GameTick;
|
||||||
import net.runelite.api.events.ItemContainerChanged;
|
import net.runelite.api.events.ItemContainerChanged;
|
||||||
import net.runelite.api.events.ProjectileMoved;
|
import net.runelite.api.events.ProjectileMoved;
|
||||||
@@ -56,10 +56,10 @@ import net.runelite.client.Notifier;
|
|||||||
import net.runelite.client.callback.ClientThread;
|
import net.runelite.client.callback.ClientThread;
|
||||||
import net.runelite.client.config.ConfigManager;
|
import net.runelite.client.config.ConfigManager;
|
||||||
import net.runelite.client.eventbus.Subscribe;
|
import net.runelite.client.eventbus.Subscribe;
|
||||||
|
import net.runelite.client.events.ConfigChanged;
|
||||||
import net.runelite.client.game.ItemManager;
|
import net.runelite.client.game.ItemManager;
|
||||||
import net.runelite.client.plugins.Plugin;
|
import net.runelite.client.plugins.Plugin;
|
||||||
import net.runelite.client.plugins.PluginDescriptor;
|
import net.runelite.client.plugins.PluginDescriptor;
|
||||||
import net.runelite.client.task.Schedule;
|
|
||||||
import net.runelite.client.ui.overlay.OverlayManager;
|
import net.runelite.client.ui.overlay.OverlayManager;
|
||||||
import net.runelite.client.ui.overlay.infobox.InfoBoxManager;
|
import net.runelite.client.ui.overlay.infobox.InfoBoxManager;
|
||||||
|
|
||||||
@@ -217,13 +217,10 @@ public class CannonPlugin extends Plugin
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Schedule(
|
@Subscribe
|
||||||
period = 1,
|
public void onGameStateChanged(GameStateChanged gameStateChanged)
|
||||||
unit = ChronoUnit.SECONDS
|
|
||||||
)
|
|
||||||
public void checkSpots()
|
|
||||||
{
|
{
|
||||||
if (!config.showCannonSpots())
|
if (gameStateChanged.getGameState() != GameState.LOGGED_IN)
|
||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -231,12 +228,10 @@ public class CannonPlugin extends Plugin
|
|||||||
spotPoints.clear();
|
spotPoints.clear();
|
||||||
for (WorldPoint spot : CannonSpots.getCannonSpots())
|
for (WorldPoint spot : CannonSpots.getCannonSpots())
|
||||||
{
|
{
|
||||||
if (spot.getPlane() != client.getPlane() || !spot.isInScene(client))
|
if (WorldPoint.isInScene(client, spot.getX(), spot.getY()))
|
||||||
{
|
{
|
||||||
continue;
|
spotPoints.add(spot);
|
||||||
}
|
}
|
||||||
|
|
||||||
spotPoints.add(spot);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -29,6 +29,7 @@ import java.awt.Dimension;
|
|||||||
import java.awt.Graphics2D;
|
import java.awt.Graphics2D;
|
||||||
import java.awt.Polygon;
|
import java.awt.Polygon;
|
||||||
import java.awt.image.BufferedImage;
|
import java.awt.image.BufferedImage;
|
||||||
|
import java.util.List;
|
||||||
import javax.inject.Inject;
|
import javax.inject.Inject;
|
||||||
import lombok.AccessLevel;
|
import lombok.AccessLevel;
|
||||||
import lombok.Setter;
|
import lombok.Setter;
|
||||||
@@ -43,7 +44,7 @@ import net.runelite.client.ui.overlay.Overlay;
|
|||||||
import net.runelite.client.ui.overlay.OverlayPosition;
|
import net.runelite.client.ui.overlay.OverlayPosition;
|
||||||
import net.runelite.client.ui.overlay.OverlayUtil;
|
import net.runelite.client.ui.overlay.OverlayUtil;
|
||||||
|
|
||||||
public class CannonSpotOverlay extends Overlay
|
class CannonSpotOverlay extends Overlay
|
||||||
{
|
{
|
||||||
private static final int MAX_DISTANCE = 2350;
|
private static final int MAX_DISTANCE = 2350;
|
||||||
|
|
||||||
@@ -69,12 +70,14 @@ public class CannonSpotOverlay extends Overlay
|
|||||||
@Override
|
@Override
|
||||||
public Dimension render(Graphics2D graphics)
|
public Dimension render(Graphics2D graphics)
|
||||||
{
|
{
|
||||||
if (hidden || !config.showCannonSpots() || plugin.isCannonPlaced())
|
List<WorldPoint> spotPoints = plugin.getSpotPoints();
|
||||||
|
|
||||||
|
if (hidden || spotPoints.isEmpty() || !config.showCannonSpots() || plugin.isCannonPlaced())
|
||||||
{
|
{
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
for (WorldPoint spot : plugin.getSpotPoints())
|
for (WorldPoint spot : spotPoints)
|
||||||
{
|
{
|
||||||
if (spot.getPlane() != client.getPlane())
|
if (spot.getPlane() != client.getPlane())
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -30,7 +30,7 @@ import java.util.List;
|
|||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
import net.runelite.api.coords.WorldPoint;
|
import net.runelite.api.coords.WorldPoint;
|
||||||
|
|
||||||
public enum CannonSpots
|
enum CannonSpots
|
||||||
{
|
{
|
||||||
|
|
||||||
BLOODVELDS(new WorldPoint(2439, 9821, 0), new WorldPoint(2448, 9821, 0), new WorldPoint(2472, 9832, 0), new WorldPoint(2453, 9817, 0)),
|
BLOODVELDS(new WorldPoint(2439, 9821, 0), new WorldPoint(2448, 9821, 0), new WorldPoint(2472, 9832, 0), new WorldPoint(2453, 9817, 0)),
|
||||||
|
|||||||
Reference in New Issue
Block a user