From 2de0dead0c807819d6b13566761577e1f0de446c Mon Sep 17 00:00:00 2001 From: Toocanzs Date: Fri, 1 Dec 2017 20:00:29 -0500 Subject: [PATCH] Move common game state and interface checks to overlay --- .../aoewarnings/AoeWarningOverlay.java | 3 +- .../AttackIndicatorOverlay.java | 3 +- .../client/plugins/boosts/BoostsOverlay.java | 3 +- .../cluescrolls/ClueScrollOverlay.java | 3 +- .../plugins/devtools/DevToolsOverlay.java | 6 --- .../plugins/fishing/FishingOverlay.java | 3 +- .../plugins/fishing/FishingSpotOverlay.java | 3 +- .../client/plugins/fpsinfo/FPSOverlay.java | 6 --- .../grounditems/GroundItemsOverlay.java | 14 ------ .../plugins/implings/ImplingsOverlay.java | 6 --- .../instancemap/InstanceMapOverlay.java | 3 +- .../jewellerycount/JewelleryCountOverlay.java | 6 +-- .../mousehighlight/MouseHighlightOverlay.java | 4 +- .../opponentinfo/OpponentInfoOverlay.java | 3 +- .../pestcontrol/PestControlOverlay.java | 6 --- .../plugins/prayflick/PrayerFlickOverlay.java | 3 +- .../plugins/runecraft/BindNeckOverlay.java | 6 +-- .../plugins/runecraft/RunecraftOverlay.java | 7 +-- .../plugins/runepouch/RunepouchOverlay.java | 7 +-- .../client/plugins/slayer/SlayerOverlay.java | 5 +-- .../plugins/specorb/SpecOrbOverlay.java | 3 +- .../volcanicmine/VolcanicMineOverlay.java | 3 +- .../woodcutting/WoodcuttingOverlay.java | 3 +- .../plugins/xpglobes/XpGlobesOverlay.java | 3 +- .../client/plugins/zulrah/ZulrahOverlay.java | 3 +- .../client/ui/overlay/DynamicRenderer.java | 3 ++ .../runelite/client/ui/overlay/Overlay.java | 45 +++++++++++++++++++ .../ui/overlay/TopDownRendererLeft.java | 3 ++ .../ui/overlay/TopDownRendererRight.java | 4 ++ .../ui/overlay/infobox/InfoBoxOverlay.java | 6 --- 30 files changed, 80 insertions(+), 96 deletions(-) diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/aoewarnings/AoeWarningOverlay.java b/runelite-client/src/main/java/net/runelite/client/plugins/aoewarnings/AoeWarningOverlay.java index 608579380e..544b2613d6 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/aoewarnings/AoeWarningOverlay.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/aoewarnings/AoeWarningOverlay.java @@ -34,7 +34,6 @@ import java.util.Map; import javax.annotation.Nullable; import javax.inject.Inject; import net.runelite.api.Client; -import net.runelite.api.GameState; import net.runelite.api.Perspective; import net.runelite.api.Projectile; import net.runelite.client.ui.overlay.Overlay; @@ -61,7 +60,7 @@ public class AoeWarningOverlay extends Overlay @Override public Dimension render(Graphics2D graphics) { - if (client.getGameState() != GameState.LOGGED_IN || !config.enabled()) + if (!config.enabled()) { return null; } diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/attackindicator/AttackIndicatorOverlay.java b/runelite-client/src/main/java/net/runelite/client/plugins/attackindicator/AttackIndicatorOverlay.java index f002746dab..e063ba99e1 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/attackindicator/AttackIndicatorOverlay.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/attackindicator/AttackIndicatorOverlay.java @@ -33,7 +33,6 @@ import java.awt.Rectangle; import javax.annotation.Nullable; import javax.inject.Inject; import net.runelite.api.Client; -import net.runelite.api.GameState; import net.runelite.api.widgets.Widget; import net.runelite.api.widgets.WidgetInfo; import net.runelite.client.ui.FontManager; @@ -67,7 +66,7 @@ public class AttackIndicatorOverlay extends Overlay @Override public Dimension render(Graphics2D graphics) { - if (!config.enabled() || client.getGameState() != GameState.LOGGED_IN) + if (!config.enabled()) { return null; } diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/boosts/BoostsOverlay.java b/runelite-client/src/main/java/net/runelite/client/plugins/boosts/BoostsOverlay.java index 11a6474a10..fc0e5e275a 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/boosts/BoostsOverlay.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/boosts/BoostsOverlay.java @@ -32,7 +32,6 @@ import java.awt.Graphics2D; import javax.annotation.Nullable; import javax.inject.Inject; import net.runelite.api.Client; -import net.runelite.api.GameState; import net.runelite.api.Skill; import net.runelite.client.ui.overlay.Overlay; import net.runelite.client.ui.overlay.OverlayPosition; @@ -76,7 +75,7 @@ class BoostsOverlay extends Overlay @Override public Dimension render(Graphics2D graphics) { - if (client.getGameState() != GameState.LOGGED_IN || !config.enabled()) + if (!config.enabled()) { return null; } diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/cluescrolls/ClueScrollOverlay.java b/runelite-client/src/main/java/net/runelite/client/plugins/cluescrolls/ClueScrollOverlay.java index 649b8d7a5b..2b79b54141 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/cluescrolls/ClueScrollOverlay.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/cluescrolls/ClueScrollOverlay.java @@ -35,7 +35,6 @@ import java.time.Instant; import javax.annotation.Nullable; import javax.inject.Inject; import net.runelite.api.Client; -import net.runelite.api.GameState; import net.runelite.api.ItemComposition; import net.runelite.client.ui.overlay.Overlay; import net.runelite.client.ui.overlay.OverlayPosition; @@ -70,7 +69,7 @@ public class ClueScrollOverlay extends Overlay @Override public Dimension render(Graphics2D graphics) { - if (client.getGameState() != GameState.LOGGED_IN || !config.enabled()) + if (!config.enabled()) { return null; } diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/devtools/DevToolsOverlay.java b/runelite-client/src/main/java/net/runelite/client/plugins/devtools/DevToolsOverlay.java index 1af8b40314..b4d62a25b5 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/devtools/DevToolsOverlay.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/devtools/DevToolsOverlay.java @@ -39,7 +39,6 @@ import javax.inject.Inject; import net.runelite.api.Client; import net.runelite.api.DecorativeObject; import net.runelite.api.GameObject; -import net.runelite.api.GameState; import net.runelite.api.GroundObject; import net.runelite.api.Item; import net.runelite.api.ItemLayer; @@ -88,11 +87,6 @@ public class DevToolsOverlay extends Overlay @Override public Dimension render(Graphics2D graphics) { - if (client.getGameState() != GameState.LOGGED_IN) - { - return null; - } - Font font = plugin.getFont(); if (font != null) { diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/fishing/FishingOverlay.java b/runelite-client/src/main/java/net/runelite/client/plugins/fishing/FishingOverlay.java index 635ef6ff19..72ec2e4f51 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/fishing/FishingOverlay.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/fishing/FishingOverlay.java @@ -33,7 +33,6 @@ import java.time.Instant; import javax.annotation.Nullable; import javax.inject.Inject; import net.runelite.api.Client; -import net.runelite.api.GameState; import net.runelite.client.ui.overlay.Overlay; import net.runelite.client.ui.overlay.OverlayPosition; import net.runelite.client.ui.overlay.OverlayPriority; @@ -67,7 +66,7 @@ class FishingOverlay extends Overlay @Override public Dimension render(Graphics2D graphics) { - if (client.getGameState() != GameState.LOGGED_IN || !config.enabled()) + if (!config.enabled()) { return null; } diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/fishing/FishingSpotOverlay.java b/runelite-client/src/main/java/net/runelite/client/plugins/fishing/FishingSpotOverlay.java index 41008249a8..6001bad77e 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/fishing/FishingSpotOverlay.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/fishing/FishingSpotOverlay.java @@ -34,7 +34,6 @@ import java.util.List; import javax.annotation.Nullable; import javax.inject.Inject; import net.runelite.api.Client; -import net.runelite.api.GameState; import net.runelite.api.NPC; import net.runelite.api.queries.NPCQuery; import net.runelite.client.RuneLite; @@ -66,7 +65,7 @@ class FishingSpotOverlay extends Overlay @Override public Dimension render(Graphics2D graphics) { - if (client.getGameState() != GameState.LOGGED_IN || !config.enabled()) + if (!config.enabled()) { return null; } diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/fpsinfo/FPSOverlay.java b/runelite-client/src/main/java/net/runelite/client/plugins/fpsinfo/FPSOverlay.java index 9caaec8afb..01dbbce22d 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/fpsinfo/FPSOverlay.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/fpsinfo/FPSOverlay.java @@ -33,7 +33,6 @@ import java.awt.geom.Rectangle2D; import javax.annotation.Nullable; import javax.inject.Inject; import net.runelite.api.Client; -import net.runelite.api.GameState; import net.runelite.api.widgets.Widget; import net.runelite.api.widgets.WidgetInfo; import net.runelite.client.ui.overlay.Overlay; @@ -56,11 +55,6 @@ public class FPSOverlay extends Overlay @Override public Dimension render(Graphics2D graphics) { - if (client.getGameState() != GameState.LOGGED_IN) - { - return null; - } - Font font = plugin.getFont(); if (font != null) { diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/grounditems/GroundItemsOverlay.java b/runelite-client/src/main/java/net/runelite/client/plugins/grounditems/GroundItemsOverlay.java index 600ade55a9..2274044560 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/grounditems/GroundItemsOverlay.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/grounditems/GroundItemsOverlay.java @@ -42,7 +42,6 @@ import java.util.concurrent.TimeUnit; import javax.annotation.Nullable; import javax.inject.Inject; import net.runelite.api.Client; -import net.runelite.api.GameState; import net.runelite.api.Item; import net.runelite.api.ItemComposition; import net.runelite.api.ItemLayer; @@ -52,7 +51,6 @@ import net.runelite.api.Point; import net.runelite.api.Region; import net.runelite.api.Tile; import net.runelite.api.widgets.Widget; -import net.runelite.api.widgets.WidgetInfo; import net.runelite.client.game.ItemManager; import net.runelite.client.ui.overlay.Overlay; import net.runelite.client.ui.overlay.OverlayPosition; @@ -116,18 +114,6 @@ public class GroundItemsOverlay extends Overlay @Override public Dimension render(Graphics2D graphics) { - // won't draw if not logged in - if (client.getGameState() != GameState.LOGGED_IN || !config.enabled()) - { - return null; - } - - //if the player is logged in but viewing the click to play screen exit - if (client.getWidget(WidgetInfo.LOGIN_CLICK_TO_PLAY_SCREEN) != null) - { - return null; - } - Widget viewport = client.getViewportWidget(); if (viewport != null) diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/implings/ImplingsOverlay.java b/runelite-client/src/main/java/net/runelite/client/plugins/implings/ImplingsOverlay.java index e02241552b..89dc0beff3 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/implings/ImplingsOverlay.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/implings/ImplingsOverlay.java @@ -36,7 +36,6 @@ import javax.annotation.Nullable; import javax.inject.Inject; import net.runelite.api.Actor; import net.runelite.api.Client; -import net.runelite.api.GameState; import net.runelite.api.NPC; import net.runelite.api.NpcID; import net.runelite.api.Point; @@ -73,11 +72,6 @@ public class ImplingsOverlay extends Overlay @Override public Dimension render(Graphics2D graphics) { - if (client.getGameState() != GameState.LOGGED_IN) - { - return null; - } - NPCQuery implingQuery = new NPCQuery().idEquals(Ints.toArray(ids)); NPC[] implings = runelite.runQuery(implingQuery); for (NPC imp : implings) diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/instancemap/InstanceMapOverlay.java b/runelite-client/src/main/java/net/runelite/client/plugins/instancemap/InstanceMapOverlay.java index 100a82db8c..c9cdf3a4dd 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/instancemap/InstanceMapOverlay.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/instancemap/InstanceMapOverlay.java @@ -32,7 +32,6 @@ import javax.annotation.Nullable; import javax.inject.Inject; import net.runelite.api.Client; import net.runelite.api.GameObject; -import net.runelite.api.GameState; import net.runelite.api.GroundObject; import net.runelite.api.IndexedSprite; import net.runelite.api.ObjectComposition; @@ -172,7 +171,7 @@ class InstanceMapOverlay extends Overlay @Override public Dimension render(Graphics2D graphics) { - if (client.getGameState() != GameState.LOGGED_IN || !config.enabled() || !showMap) + if (!config.enabled() || !showMap) { return null; } diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/jewellerycount/JewelleryCountOverlay.java b/runelite-client/src/main/java/net/runelite/client/plugins/jewellerycount/JewelleryCountOverlay.java index e7c32b6453..183155b087 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/jewellerycount/JewelleryCountOverlay.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/jewellerycount/JewelleryCountOverlay.java @@ -35,7 +35,6 @@ import java.util.Arrays; import java.util.Collection; import javax.inject.Inject; import net.runelite.api.Client; -import net.runelite.api.GameState; import net.runelite.api.Query; import net.runelite.api.queries.EquipmentItemQuery; import net.runelite.api.queries.InventoryItemQuery; @@ -60,14 +59,13 @@ class JewelleryCountOverlay extends Overlay this.runelite = runelite; this.client = runelite.getClient(); this.config = config; + this.setDrawOverBankScreen(true); } @Override public Dimension render(Graphics2D graphics) { - if (client.getGameState() != GameState.LOGGED_IN - || !config.enabled() - || client.getWidget(WidgetInfo.LOGIN_CLICK_TO_PLAY_SCREEN) != null) + if (!config.enabled()) { return null; } diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/mousehighlight/MouseHighlightOverlay.java b/runelite-client/src/main/java/net/runelite/client/plugins/mousehighlight/MouseHighlightOverlay.java index 598113fa1c..657e839e55 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/mousehighlight/MouseHighlightOverlay.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/mousehighlight/MouseHighlightOverlay.java @@ -29,7 +29,6 @@ import java.awt.Graphics2D; import javax.annotation.Nullable; import javax.inject.Inject; import net.runelite.api.Client; -import net.runelite.api.GameState; import net.runelite.api.MenuEntry; import net.runelite.client.ui.overlay.Overlay; import net.runelite.client.ui.overlay.OverlayPosition; @@ -53,12 +52,13 @@ class MouseHighlightOverlay extends Overlay this.client = client; this.config = config; this.tooltipRenderer = overlayRenderer.getTooltipRenderer(); + this.setDrawOverBankScreen(true); } @Override public Dimension render(Graphics2D graphics) { - if (client.getGameState() != GameState.LOGGED_IN || !config.enabled()) + if (!config.enabled()) { return null; } diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/opponentinfo/OpponentInfoOverlay.java b/runelite-client/src/main/java/net/runelite/client/plugins/opponentinfo/OpponentInfoOverlay.java index 1431e7f5f5..76d759c53b 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/opponentinfo/OpponentInfoOverlay.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/opponentinfo/OpponentInfoOverlay.java @@ -30,7 +30,6 @@ import java.awt.FontMetrics; import java.awt.Graphics2D; import net.runelite.api.Actor; import net.runelite.api.Client; -import net.runelite.api.GameState; import net.runelite.api.Player; import net.runelite.client.ui.overlay.Overlay; import net.runelite.client.ui.overlay.OverlayPosition; @@ -89,7 +88,7 @@ class OpponentInfoOverlay extends Overlay @Override public Dimension render(Graphics2D graphics) { - if (client.getGameState() != GameState.LOGGED_IN || config.enabled() == false) + if (config.enabled() == false) { return null; } diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/pestcontrol/PestControlOverlay.java b/runelite-client/src/main/java/net/runelite/client/plugins/pestcontrol/PestControlOverlay.java index 43de8cbc8a..41e9d4a05f 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/pestcontrol/PestControlOverlay.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/pestcontrol/PestControlOverlay.java @@ -35,7 +35,6 @@ import java.util.Arrays; import javax.inject.Inject; import lombok.extern.slf4j.Slf4j; import net.runelite.api.Client; -import net.runelite.api.GameState; import net.runelite.api.NPC; import net.runelite.api.Query; import net.runelite.api.queries.NPCQuery; @@ -73,11 +72,6 @@ public class PestControlOverlay extends Overlay @Override public Dimension render(Graphics2D graphics) { - if (client.getGameState() != GameState.LOGGED_IN) - { - return null; - } - // See if we are in a game or not if (client.getWidget(WidgetInfo.PESTCONTROL_BLUE_SHIELD) == null) { diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/prayflick/PrayerFlickOverlay.java b/runelite-client/src/main/java/net/runelite/client/plugins/prayflick/PrayerFlickOverlay.java index b676ea237f..e2a40c8ba5 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/prayflick/PrayerFlickOverlay.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/prayflick/PrayerFlickOverlay.java @@ -33,7 +33,6 @@ import java.time.Instant; import javax.annotation.Nullable; import javax.inject.Inject; import net.runelite.api.Client; -import net.runelite.api.GameState; import net.runelite.api.Prayer; import net.runelite.api.widgets.Widget; import net.runelite.api.widgets.WidgetInfo; @@ -64,7 +63,7 @@ public class PrayerFlickOverlay extends Overlay @Override public Dimension render(Graphics2D graphics) { - if (client.getGameState() != GameState.LOGGED_IN || !config.enabled() || !prayersActive)//If there are no prayers active we don't need to be flicking + if (!config.enabled() || !prayersActive)//If there are no prayers active we don't need to be flicking { return null; } diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/runecraft/BindNeckOverlay.java b/runelite-client/src/main/java/net/runelite/client/plugins/runecraft/BindNeckOverlay.java index ed0377ffa8..8d502677b0 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/runecraft/BindNeckOverlay.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/runecraft/BindNeckOverlay.java @@ -36,7 +36,6 @@ import java.util.Arrays; import java.util.Collection; import javax.inject.Inject; import net.runelite.api.Client; -import net.runelite.api.GameState; import static net.runelite.api.ItemID.BINDING_NECKLACE; import net.runelite.api.Query; import net.runelite.api.queries.EquipmentItemQuery; @@ -63,14 +62,13 @@ public class BindNeckOverlay extends Overlay this.runelite = runelite; this.client = runelite.getClient(); this.config = config; + this.setDrawOverBankScreen(true); } @Override public Dimension render(Graphics2D graphics) { - if (client.getGameState() != GameState.LOGGED_IN - || !config.showBindNeck() - || client.getWidget(WidgetInfo.LOGIN_CLICK_TO_PLAY_SCREEN) != null) + if (!config.showBindNeck()) { return null; } diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/runecraft/RunecraftOverlay.java b/runelite-client/src/main/java/net/runelite/client/plugins/runecraft/RunecraftOverlay.java index 41e3f7c227..f571a7836f 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/runecraft/RunecraftOverlay.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/runecraft/RunecraftOverlay.java @@ -32,12 +32,10 @@ import java.awt.Graphics2D; import java.awt.Rectangle; import javax.inject.Inject; import net.runelite.api.Client; -import net.runelite.api.GameState; import net.runelite.api.ItemID; import net.runelite.api.Query; import net.runelite.api.Varbits; import net.runelite.api.queries.InventoryItemQuery; -import net.runelite.api.widgets.WidgetInfo; import net.runelite.api.widgets.WidgetItem; import net.runelite.client.RuneLite; import net.runelite.client.ui.FontManager; @@ -63,14 +61,13 @@ public class RunecraftOverlay extends Overlay this.runelite = runelite; this.client = runelite.getClient(); this.config = config; + this.setDrawOverBankScreen(true); } @Override public Dimension render(Graphics2D graphics) { - if (client.getGameState() != GameState.LOGGED_IN - || !config.showPouch() - || client.getWidget(WidgetInfo.LOGIN_CLICK_TO_PLAY_SCREEN) != null) + if (!config.showPouch()) { return null; } diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/runepouch/RunepouchOverlay.java b/runelite-client/src/main/java/net/runelite/client/plugins/runepouch/RunepouchOverlay.java index e39918f30f..e8558a093c 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/runepouch/RunepouchOverlay.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/runepouch/RunepouchOverlay.java @@ -30,13 +30,11 @@ import java.awt.Graphics2D; import java.awt.image.BufferedImage; import javax.inject.Inject; import net.runelite.api.Client; -import net.runelite.api.GameState; import net.runelite.api.ItemID; import net.runelite.api.Point; import net.runelite.api.Query; import net.runelite.api.Varbits; import net.runelite.api.queries.InventoryItemQuery; -import net.runelite.api.widgets.WidgetInfo; import net.runelite.api.widgets.WidgetItem; import net.runelite.client.RuneLite; import net.runelite.client.ui.FontManager; @@ -74,14 +72,13 @@ public class RunepouchOverlay extends Overlay this.client = runelite.getClient(); this.config = config; this.tooltipRenderer = overlayRenderer.getTooltipRenderer(); + this.setDrawOverBankScreen(true); } @Override public Dimension render(Graphics2D graphics) { - if (!config.enabled() - || client.getGameState() != GameState.LOGGED_IN - || client.getWidget(WidgetInfo.LOGIN_CLICK_TO_PLAY_SCREEN) != null) + if (!config.enabled()) { return null; } diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/slayer/SlayerOverlay.java b/runelite-client/src/main/java/net/runelite/client/plugins/slayer/SlayerOverlay.java index 2e577d6df0..d11a31b326 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/slayer/SlayerOverlay.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/slayer/SlayerOverlay.java @@ -37,7 +37,6 @@ import java.util.Collection; import java.util.Set; import javax.inject.Inject; import net.runelite.api.Client; -import net.runelite.api.GameState; import net.runelite.api.ItemID; import net.runelite.api.Query; import net.runelite.api.queries.EquipmentItemQuery; @@ -97,9 +96,7 @@ class SlayerOverlay extends Overlay @Override public Dimension render(Graphics2D graphics) { - if (client.getGameState() != GameState.LOGGED_IN - || !config.enabled() - || client.getWidget(WidgetInfo.LOGIN_CLICK_TO_PLAY_SCREEN) != null) + if (!config.enabled()) { return null; } diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/specorb/SpecOrbOverlay.java b/runelite-client/src/main/java/net/runelite/client/plugins/specorb/SpecOrbOverlay.java index 0ac2c28597..521bcff10d 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/specorb/SpecOrbOverlay.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/specorb/SpecOrbOverlay.java @@ -30,7 +30,6 @@ import java.awt.Graphics2D; import javax.annotation.Nullable; import javax.inject.Inject; import net.runelite.api.Client; -import net.runelite.api.GameState; import net.runelite.api.Point; import net.runelite.api.Varbits; import net.runelite.api.widgets.Widget; @@ -68,7 +67,7 @@ public class SpecOrbOverlay extends Overlay @Override public Dimension render(Graphics2D graphics) { - if (client.getGameState() != GameState.LOGGED_IN || !config.enabled()) + if (!config.enabled()) { return null; } diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/volcanicmine/VolcanicMineOverlay.java b/runelite-client/src/main/java/net/runelite/client/plugins/volcanicmine/VolcanicMineOverlay.java index 88523fe070..0d98e5ef02 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/volcanicmine/VolcanicMineOverlay.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/volcanicmine/VolcanicMineOverlay.java @@ -42,7 +42,6 @@ import javax.inject.Inject; import lombok.extern.slf4j.Slf4j; import net.runelite.api.Client; import net.runelite.api.GameObject; -import net.runelite.api.GameState; import net.runelite.api.Perspective; import net.runelite.api.Point; import net.runelite.api.Prayer; @@ -82,7 +81,7 @@ public class VolcanicMineOverlay extends Overlay @Override public Dimension render(Graphics2D graphics) { - if (client == null || client.getGameState() != GameState.LOGGED_IN || !plugin.getInside() || !config.enabled()) + if (client == null || !plugin.getInside() || !config.enabled()) { return null; } diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/woodcutting/WoodcuttingOverlay.java b/runelite-client/src/main/java/net/runelite/client/plugins/woodcutting/WoodcuttingOverlay.java index a5cc4f0c32..db2903d47c 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/woodcutting/WoodcuttingOverlay.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/woodcutting/WoodcuttingOverlay.java @@ -35,7 +35,6 @@ import javax.annotation.Nullable; import javax.inject.Inject; import static net.runelite.api.AnimationID.*; import net.runelite.api.Client; -import net.runelite.api.GameState; import net.runelite.client.ui.overlay.Overlay; import net.runelite.client.ui.overlay.OverlayPosition; import net.runelite.client.ui.overlay.OverlayPriority; @@ -75,7 +74,7 @@ class WoodcuttingOverlay extends Overlay @Override public Dimension render(Graphics2D graphics) { - if (client.getGameState() != GameState.LOGGED_IN || !config.enabled()) + if (!config.enabled()) { return null; } diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/xpglobes/XpGlobesOverlay.java b/runelite-client/src/main/java/net/runelite/client/plugins/xpglobes/XpGlobesOverlay.java index 3c7be6e90c..3c54a95208 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/xpglobes/XpGlobesOverlay.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/xpglobes/XpGlobesOverlay.java @@ -41,7 +41,6 @@ import javax.inject.Inject; import lombok.extern.slf4j.Slf4j; import net.runelite.api.Client; import net.runelite.api.Experience; -import net.runelite.api.GameState; import net.runelite.api.Point; import net.runelite.api.Skill; import net.runelite.client.ui.overlay.Overlay; @@ -87,7 +86,7 @@ public class XpGlobesOverlay extends Overlay { // won't draw if not logged in or not enabled - if (client.getGameState() != GameState.LOGGED_IN || !config.enabled()) + if (!config.enabled()) { return null; } diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/zulrah/ZulrahOverlay.java b/runelite-client/src/main/java/net/runelite/client/plugins/zulrah/ZulrahOverlay.java index 44018fd49b..c704c15f11 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/zulrah/ZulrahOverlay.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/zulrah/ZulrahOverlay.java @@ -41,7 +41,6 @@ import javax.imageio.ImageIO; import javax.inject.Inject; import lombok.extern.slf4j.Slf4j; import net.runelite.api.Client; -import net.runelite.api.GameState; import net.runelite.api.Perspective; import net.runelite.api.Point; import net.runelite.api.Prayer; @@ -85,7 +84,7 @@ public class ZulrahOverlay extends Overlay { ZulrahInstance instance = plugin.getInstance(); - if (instance == null || client.getGameState() != GameState.LOGGED_IN) + if (instance == null) { return null; } diff --git a/runelite-client/src/main/java/net/runelite/client/ui/overlay/DynamicRenderer.java b/runelite-client/src/main/java/net/runelite/client/ui/overlay/DynamicRenderer.java index fb6d1ba91a..01c20f3391 100644 --- a/runelite-client/src/main/java/net/runelite/client/ui/overlay/DynamicRenderer.java +++ b/runelite-client/src/main/java/net/runelite/client/ui/overlay/DynamicRenderer.java @@ -43,6 +43,9 @@ public class DynamicRenderer implements Renderer { for (Overlay overlay : overlays) { + if (!overlay.isDrawn()) + continue; + Graphics2D graphics = clientBuffer.createGraphics(); Renderer.setAntiAliasing(graphics); overlay.render(graphics); diff --git a/runelite-client/src/main/java/net/runelite/client/ui/overlay/Overlay.java b/runelite-client/src/main/java/net/runelite/client/ui/overlay/Overlay.java index 5d3069cec2..e1687cffd7 100644 --- a/runelite-client/src/main/java/net/runelite/client/ui/overlay/Overlay.java +++ b/runelite-client/src/main/java/net/runelite/client/ui/overlay/Overlay.java @@ -25,6 +25,11 @@ package net.runelite.client.ui.overlay; +import net.runelite.api.Client; +import net.runelite.api.GameState; +import net.runelite.api.widgets.WidgetInfo; + +import javax.inject.Inject; import java.awt.Dimension; import java.awt.Graphics2D; import java.awt.Rectangle; @@ -34,6 +39,12 @@ public abstract class Overlay private OverlayPosition position; // where to draw it private OverlayPriority priority; // if multiple overlays exist in the same position, who wins private Rectangle bounds; //screen bounds of overlay after OverlayRenderer decides location + private boolean drawOverLoginScreen = false; + private boolean drawOverBankScreen = false; + private boolean drawOverClickToPlayScreen = false; + + @Inject + Client client; public Overlay(OverlayPosition position) { @@ -77,4 +88,38 @@ public abstract class Overlay { this.bounds = bounds; } + + public boolean isDrawn() + { + if (client == null) + return false; + if (!drawOverLoginScreen && client.getGameState() != GameState.LOGGED_IN) + { + return false; + } + if (!drawOverClickToPlayScreen && client.getWidget(WidgetInfo.LOGIN_CLICK_TO_PLAY_SCREEN) != null) + { + return false; + } + if (!drawOverBankScreen && client.getWidget(WidgetInfo.BANK_INVENTORY_ITEMS_CONTAINER) != null) + { + return false; + } + return true; + } + + public void setDrawOverLoginScreen(boolean drawOverLoginScreen) + { + this.drawOverLoginScreen = drawOverLoginScreen; + } + + public void setDrawOverBankScreen(boolean drawOverBankScreen) + { + this.drawOverBankScreen = drawOverBankScreen; + } + + public void setDrawOverClickToPlayScreen(boolean drawOverClickToPlayScreen) + { + this.drawOverClickToPlayScreen = drawOverClickToPlayScreen; + } } diff --git a/runelite-client/src/main/java/net/runelite/client/ui/overlay/TopDownRendererLeft.java b/runelite-client/src/main/java/net/runelite/client/ui/overlay/TopDownRendererLeft.java index 2053b8cf4f..a5bee64e64 100644 --- a/runelite-client/src/main/java/net/runelite/client/ui/overlay/TopDownRendererLeft.java +++ b/runelite-client/src/main/java/net/runelite/client/ui/overlay/TopDownRendererLeft.java @@ -52,6 +52,9 @@ public class TopDownRendererLeft implements Renderer for (Overlay overlay : overlays) { + if (!overlay.isDrawn()) + continue; + BufferedImage image = clientBuffer.getSubimage(BORDER_LEFT, y, clientBuffer.getWidth() - BORDER_LEFT, clientBuffer.getHeight() - y); Graphics2D graphics = image.createGraphics(); Renderer.setAntiAliasing(graphics); diff --git a/runelite-client/src/main/java/net/runelite/client/ui/overlay/TopDownRendererRight.java b/runelite-client/src/main/java/net/runelite/client/ui/overlay/TopDownRendererRight.java index 13b9c0ec4d..67942c47c4 100644 --- a/runelite-client/src/main/java/net/runelite/client/ui/overlay/TopDownRendererRight.java +++ b/runelite-client/src/main/java/net/runelite/client/ui/overlay/TopDownRendererRight.java @@ -30,6 +30,7 @@ import java.awt.Rectangle; import java.awt.image.BufferedImage; import java.util.ArrayList; import java.util.List; + import net.runelite.api.Client; public class TopDownRendererRight implements Renderer @@ -62,6 +63,9 @@ public class TopDownRendererRight implements Renderer for (Overlay overlay : overlays) { + if (!overlay.isDrawn()) + continue; + BufferedImage image = new BufferedImage(clientWidth, clientHeight, BufferedImage.TYPE_INT_ARGB); Graphics2D graphics = image.createGraphics(); Renderer.setAntiAliasing(graphics); diff --git a/runelite-client/src/main/java/net/runelite/client/ui/overlay/infobox/InfoBoxOverlay.java b/runelite-client/src/main/java/net/runelite/client/ui/overlay/infobox/InfoBoxOverlay.java index cb065e869d..36c7d2a32d 100644 --- a/runelite-client/src/main/java/net/runelite/client/ui/overlay/infobox/InfoBoxOverlay.java +++ b/runelite-client/src/main/java/net/runelite/client/ui/overlay/infobox/InfoBoxOverlay.java @@ -33,7 +33,6 @@ import java.awt.Rectangle; import java.awt.image.BufferedImage; import java.util.List; import net.runelite.api.Client; -import net.runelite.api.GameState; import net.runelite.api.Point; import net.runelite.client.ui.overlay.Overlay; import net.runelite.client.ui.overlay.OverlayPosition; @@ -63,11 +62,6 @@ public class InfoBoxOverlay extends Overlay @Override public Dimension render(Graphics2D graphics) { - if (client.getGameState() != GameState.LOGGED_IN) - { - return null; - } - List infoBoxes = infoboxManager.getInfoBoxes(); if (infoBoxes.isEmpty())