cannon plugin: move spot scene check to game state change event

This commit is contained in:
Adam
2020-06-15 21:44:09 -04:00
parent 93c1e36bea
commit 2dd9bbbf5e
4 changed files with 16 additions and 18 deletions

View File

@@ -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;

View File

@@ -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);
} }
} }

View File

@@ -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())
{ {

View File

@@ -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)),