From 95bc310bc1d57dde0855fc1b7f743c8e95059c54 Mon Sep 17 00:00:00 2001 From: UniquePassive Date: Sun, 14 Jan 2018 21:41:51 -0500 Subject: [PATCH 1/3] Add API for getting the client BufferProvider --- .../java/net/runelite/api/BufferProvider.java | 29 +++++++++++++++++ .../main/java/net/runelite/api/Client.java | 2 ++ .../net/runelite/rs/api/RSBufferProvider.java | 31 +++++++++++++++++++ .../java/net/runelite/rs/api/RSClient.java | 5 +++ .../runelite/rs/api/RSMainBufferProvider.java | 2 +- 5 files changed, 68 insertions(+), 1 deletion(-) create mode 100644 runelite-api/src/main/java/net/runelite/api/BufferProvider.java create mode 100644 runescape-api/src/main/java/net/runelite/rs/api/RSBufferProvider.java diff --git a/runelite-api/src/main/java/net/runelite/api/BufferProvider.java b/runelite-api/src/main/java/net/runelite/api/BufferProvider.java new file mode 100644 index 0000000000..eeb63cb40b --- /dev/null +++ b/runelite-api/src/main/java/net/runelite/api/BufferProvider.java @@ -0,0 +1,29 @@ +/* + * Copyright (c) 2016-2017, Adam + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR + * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ +package net.runelite.api; + +public interface BufferProvider +{ +} diff --git a/runelite-api/src/main/java/net/runelite/api/Client.java b/runelite-api/src/main/java/net/runelite/api/Client.java index d45f55f89d..9a08b0ee66 100644 --- a/runelite-api/src/main/java/net/runelite/api/Client.java +++ b/runelite-api/src/main/java/net/runelite/api/Client.java @@ -174,4 +174,6 @@ public interface Client List getProjectiles(); + + BufferProvider getBufferProvider(); } diff --git a/runescape-api/src/main/java/net/runelite/rs/api/RSBufferProvider.java b/runescape-api/src/main/java/net/runelite/rs/api/RSBufferProvider.java new file mode 100644 index 0000000000..e33115af6a --- /dev/null +++ b/runescape-api/src/main/java/net/runelite/rs/api/RSBufferProvider.java @@ -0,0 +1,31 @@ +/* + * Copyright (c) 2017, Adam + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR + * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ +package net.runelite.rs.api; + +import net.runelite.api.BufferProvider; + +public interface RSBufferProvider extends BufferProvider +{ +} diff --git a/runescape-api/src/main/java/net/runelite/rs/api/RSClient.java b/runescape-api/src/main/java/net/runelite/rs/api/RSClient.java index 8ba50a7812..4d6865e185 100644 --- a/runescape-api/src/main/java/net/runelite/rs/api/RSClient.java +++ b/runescape-api/src/main/java/net/runelite/rs/api/RSClient.java @@ -25,6 +25,7 @@ package net.runelite.rs.api; import java.util.Map; +import net.runelite.api.BufferProvider; import net.runelite.api.Client; import net.runelite.mapping.Construct; import net.runelite.mapping.Import; @@ -350,4 +351,8 @@ public interface RSClient extends RSGameEngine, Client @Import("isIgnored") @Override boolean isIgnored(String name); + + @Import("rasterProvider") + @Override + BufferProvider getBufferProvider(); } diff --git a/runescape-api/src/main/java/net/runelite/rs/api/RSMainBufferProvider.java b/runescape-api/src/main/java/net/runelite/rs/api/RSMainBufferProvider.java index aa2e893f5f..b7e7e733ef 100644 --- a/runescape-api/src/main/java/net/runelite/rs/api/RSMainBufferProvider.java +++ b/runescape-api/src/main/java/net/runelite/rs/api/RSMainBufferProvider.java @@ -28,7 +28,7 @@ import java.awt.Image; import net.runelite.api.MainBufferProvider; import net.runelite.mapping.Import; -public interface RSMainBufferProvider extends MainBufferProvider +public interface RSMainBufferProvider extends RSBufferProvider, MainBufferProvider { @Import("image") @Override From b9eb86edf2c361bda613f6579ca20ceddf12733a Mon Sep 17 00:00:00 2001 From: UniquePassive Date: Sun, 14 Jan 2018 21:44:46 -0500 Subject: [PATCH 2/3] runelite-client: add OverlayLayer and rendering logic for multiple overlay layers --- .../net/runelite/client/callback/Hooks.java | 36 +++++++++++++++- .../runelite/client/ui/overlay/Overlay.java | 4 +- .../client/ui/overlay/OverlayLayer.java | 43 +++++++++++++++++++ .../client/ui/overlay/OverlayRenderer.java | 22 +++++----- 4 files changed, 91 insertions(+), 14 deletions(-) create mode 100644 runelite-client/src/main/java/net/runelite/client/ui/overlay/OverlayLayer.java diff --git a/runelite-client/src/main/java/net/runelite/client/callback/Hooks.java b/runelite-client/src/main/java/net/runelite/client/callback/Hooks.java index a80419d931..81819b8cfe 100644 --- a/runelite-client/src/main/java/net/runelite/client/callback/Hooks.java +++ b/runelite-client/src/main/java/net/runelite/client/callback/Hooks.java @@ -44,10 +44,12 @@ import net.runelite.api.MessageNode; import net.runelite.api.PacketBuffer; import net.runelite.api.Point; import net.runelite.api.Projectile; +import net.runelite.api.Region; import net.runelite.client.RuneLite; import net.runelite.client.chat.ChatMessageManager; import net.runelite.client.game.DeathChecker; import net.runelite.client.task.Scheduler; +import net.runelite.client.ui.overlay.OverlayLayer; import net.runelite.client.ui.overlay.OverlayRenderer; import net.runelite.client.ui.overlay.infobox.InfoBoxManager; @@ -104,7 +106,39 @@ public class Hooks try { - renderer.render(graphics2d); + renderer.render(graphics2d, OverlayLayer.ALWAYS_ON_TOP); + } + catch (Exception ex) + { + log.warn("Error during overlay rendering", ex); + } + } + + public static void drawRegion(Region region, int var1, int var2, int var3, int var4, int var5, int var6) + { + MainBufferProvider bufferProvider = (MainBufferProvider) client.getBufferProvider(); + BufferedImage image = (BufferedImage) bufferProvider.getImage(); + Graphics2D graphics2d = (Graphics2D) image.getGraphics(); + + try + { + renderer.render(graphics2d, OverlayLayer.UNDER_WIDGETS); + } + catch (Exception ex) + { + log.warn("Error during overlay rendering", ex); + } + } + + public static void drawAfterWidgets() + { + MainBufferProvider bufferProvider = (MainBufferProvider) client.getBufferProvider(); + BufferedImage image = (BufferedImage) bufferProvider.getImage(); + Graphics2D graphics2d = (Graphics2D) image.getGraphics(); + + try + { + renderer.render(graphics2d, OverlayLayer.ABOVE_WIDGETS); } catch (Exception ex) { 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 fb6e454cbc..7b18a495fd 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 @@ -31,7 +31,5 @@ public abstract class Overlay implements RenderableEntity { private OverlayPosition position = OverlayPosition.TOP_LEFT; private OverlayPriority priority = OverlayPriority.NONE; - private boolean drawOverLoginScreen = false; - private boolean drawOverBankScreen = false; - private boolean drawOverClickToPlayScreen = false; + private OverlayLayer layer = OverlayLayer.ABOVE_WIDGETS; } diff --git a/runelite-client/src/main/java/net/runelite/client/ui/overlay/OverlayLayer.java b/runelite-client/src/main/java/net/runelite/client/ui/overlay/OverlayLayer.java new file mode 100644 index 0000000000..4d109ec793 --- /dev/null +++ b/runelite-client/src/main/java/net/runelite/client/ui/overlay/OverlayLayer.java @@ -0,0 +1,43 @@ +/* + * Copyright (c) 2018, UniquePassive + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR + * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ +package net.runelite.client.ui.overlay; + +public enum OverlayLayer +{ + /** + * Render overlay above all game elements + */ + ALWAYS_ON_TOP, + + /** + * Render under all interfaces + */ + UNDER_WIDGETS, + + /** + * Render under the right-click menu + */ + ABOVE_WIDGETS +} diff --git a/runelite-client/src/main/java/net/runelite/client/ui/overlay/OverlayRenderer.java b/runelite-client/src/main/java/net/runelite/client/ui/overlay/OverlayRenderer.java index b3db2ff6c9..2db624af79 100644 --- a/runelite-client/src/main/java/net/runelite/client/ui/overlay/OverlayRenderer.java +++ b/runelite-client/src/main/java/net/runelite/client/ui/overlay/OverlayRenderer.java @@ -173,7 +173,7 @@ public class OverlayRenderer surfaceGraphics = subGraphics; } - public void render(Graphics2D graphics) + public void render(Graphics2D graphics, OverlayLayer layer) { final Client client = clientProvider.get(); @@ -182,6 +182,16 @@ public class OverlayRenderer return; } + if (client.getGameState() != GameState.LOGGED_IN) + { + return; + } + + if (client.getWidget(WidgetInfo.LOGIN_CLICK_TO_PLAY_SCREEN) != null) + { + return; + } + final Widget viewport = client.getViewportWidget(); final Rectangle bounds = viewport != null ? new Rectangle(viewport.getBounds()) @@ -204,7 +214,7 @@ public class OverlayRenderer rightChatboxPoint.move(bounds.x + chatboxBounds.width - BORDER_RIGHT,bounds.y + bounds.height - BORDER_BOTTOM); overlays.stream() - .filter(overlay -> shouldDrawOverlay(client, overlay)) + .filter(overlay -> overlay.getLayer() == layer) .forEach(overlay -> { OverlayPosition overlayPosition = overlay.getPosition(); @@ -282,12 +292,4 @@ public class OverlayRenderer subGraphics.dispose(); return dimension; } - - private boolean shouldDrawOverlay(Client client, Overlay overlay) - { - return client != null - && (overlay.isDrawOverLoginScreen() || client.getGameState() == GameState.LOGGED_IN) - && (overlay.isDrawOverClickToPlayScreen() || client.getWidget(WidgetInfo.LOGIN_CLICK_TO_PLAY_SCREEN) == null) - && (overlay.isDrawOverBankScreen() || client.getWidget(WidgetInfo.BANK_INVENTORY_ITEMS_CONTAINER) == null); - } } From f1821015dba5fab9f3726446c6d445584c8d1ce5 Mon Sep 17 00:00:00 2001 From: UniquePassive Date: Sun, 14 Jan 2018 21:45:01 -0500 Subject: [PATCH 3/3] runelite-client: update plugins for new overlay layer --- .../client/plugins/aoewarnings/AoeWarningOverlay.java | 2 ++ .../runelite/client/plugins/devtools/DevToolsOverlay.java | 5 ++--- .../runelite/client/plugins/fishing/FishingSpotOverlay.java | 2 ++ .../client/plugins/grounditems/GroundItemsOverlay.java | 2 ++ .../java/net/runelite/client/plugins/hunter/TrapOverlay.java | 2 ++ .../runelite/client/plugins/implings/ImplingsOverlay.java | 2 ++ .../client/plugins/instancemap/InstanceMapOverlay.java | 2 ++ .../client/plugins/jewellerycount/JewelleryCountOverlay.java | 1 - .../client/plugins/mousehighlight/MouseHighlightOverlay.java | 1 - .../plugins/playerindicators/PlayerIndicatorsOverlay.java | 2 ++ .../runelite/client/plugins/runecraft/BindNeckOverlay.java | 1 - .../runelite/client/plugins/runecraft/RunecraftOverlay.java | 1 - .../runelite/client/plugins/runepouch/RunepouchOverlay.java | 1 - .../client/plugins/tileindicators/TileIndicatorsOverlay.java | 2 ++ .../client/plugins/volcanicmine/VolcanicMineOverlay.java | 2 ++ 15 files changed, 20 insertions(+), 8 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 254a272966..9102df9c91 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 @@ -38,6 +38,7 @@ import net.runelite.api.Client; import net.runelite.api.Perspective; import net.runelite.api.Projectile; import net.runelite.client.ui.overlay.Overlay; +import net.runelite.client.ui.overlay.OverlayLayer; import net.runelite.client.ui.overlay.OverlayPosition; public class AoeWarningOverlay extends Overlay @@ -53,6 +54,7 @@ public class AoeWarningOverlay extends Overlay public AoeWarningOverlay(@Nullable Client client, AoeWarningPlugin plugin, AoeWarningConfig config) { setPosition(OverlayPosition.DYNAMIC); + setLayer(OverlayLayer.UNDER_WIDGETS); this.client = client; this.plugin = plugin; this.config = config; 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 56ba1f7c97..1d0df5fe23 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 @@ -57,6 +57,7 @@ import net.runelite.api.widgets.Widget; import net.runelite.api.widgets.WidgetInfo; import net.runelite.api.widgets.WidgetItem; import net.runelite.client.ui.overlay.Overlay; +import net.runelite.client.ui.overlay.OverlayLayer; import net.runelite.client.ui.overlay.OverlayPosition; import net.runelite.client.ui.overlay.OverlayUtil; @@ -85,9 +86,7 @@ public class DevToolsOverlay extends Overlay public DevToolsOverlay(@Nullable Client client, DevToolsPlugin plugin) { setPosition(OverlayPosition.DYNAMIC); - setDrawOverBankScreen(true); - setDrawOverClickToPlayScreen(true); - setDrawOverLoginScreen(true); + setLayer(OverlayLayer.ALWAYS_ON_TOP); this.client = client; this.plugin = plugin; } 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 9b02837917..22e78d7da2 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 @@ -37,6 +37,7 @@ import net.runelite.api.NPC; import net.runelite.api.queries.NPCQuery; import net.runelite.client.game.ItemManager; import net.runelite.client.ui.overlay.Overlay; +import net.runelite.client.ui.overlay.OverlayLayer; import net.runelite.client.ui.overlay.OverlayPosition; import net.runelite.client.ui.overlay.OverlayUtil; import net.runelite.client.util.QueryRunner; @@ -55,6 +56,7 @@ class FishingSpotOverlay extends Overlay public FishingSpotOverlay(QueryRunner queryRunner, FishingConfig config) { setPosition(OverlayPosition.DYNAMIC); + setLayer(OverlayLayer.UNDER_WIDGETS); this.queryRunner = queryRunner; this.config = config; } 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 538411cec8..eba45a4c2d 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 @@ -50,6 +50,7 @@ import net.runelite.api.widgets.Widget; import net.runelite.client.game.ItemManager; import net.runelite.client.ui.FontManager; import net.runelite.client.ui.overlay.Overlay; +import net.runelite.client.ui.overlay.OverlayLayer; import net.runelite.client.ui.overlay.OverlayPosition; import net.runelite.http.api.item.ItemPrice; @@ -95,6 +96,7 @@ public class GroundItemsOverlay extends Overlay public GroundItemsOverlay(@Nullable Client client, GroundItemsConfig config) { setPosition(OverlayPosition.DYNAMIC); + setLayer(OverlayLayer.UNDER_WIDGETS); this.client = client; this.config = config; } diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/hunter/TrapOverlay.java b/runelite-client/src/main/java/net/runelite/client/plugins/hunter/TrapOverlay.java index c776dd631a..a26f45cb8b 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/hunter/TrapOverlay.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/hunter/TrapOverlay.java @@ -35,6 +35,7 @@ import javax.inject.Inject; import net.runelite.api.Client; import net.runelite.api.widgets.Widget; import net.runelite.client.ui.overlay.Overlay; +import net.runelite.client.ui.overlay.OverlayLayer; import net.runelite.client.ui.overlay.OverlayPosition; /** @@ -71,6 +72,7 @@ public class TrapOverlay extends Overlay TrapOverlay(@Nullable Client client, HunterPlugin plugin, HunterConfig config) { setPosition(OverlayPosition.DYNAMIC); + setLayer(OverlayLayer.UNDER_WIDGETS); this.plugin = plugin; this.config = config; this.client = client; 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 159a6dea1c..31bab1311a 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 @@ -40,6 +40,7 @@ import net.runelite.api.NpcID; import net.runelite.api.Point; import net.runelite.api.queries.NPCQuery; import net.runelite.client.ui.overlay.Overlay; +import net.runelite.client.ui.overlay.OverlayLayer; import net.runelite.client.ui.overlay.OverlayPosition; import net.runelite.client.util.QueryRunner; @@ -64,6 +65,7 @@ public class ImplingsOverlay extends Overlay public ImplingsOverlay(QueryRunner queryRunner, ImplingsConfig config) { setPosition(OverlayPosition.DYNAMIC); + setLayer(OverlayLayer.UNDER_WIDGETS); this.queryRunner = queryRunner; this.config = config; } 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 1f671aeff1..2f388620b4 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 @@ -66,6 +66,7 @@ import static net.runelite.client.plugins.instancemap.WallOffset.NONE; import static net.runelite.client.plugins.instancemap.WallOffset.TOP_LEFT; import static net.runelite.client.plugins.instancemap.WallOffset.TOP_RIGHT; import net.runelite.client.ui.overlay.Overlay; +import net.runelite.client.ui.overlay.OverlayLayer; import net.runelite.client.ui.overlay.OverlayPosition; class InstanceMapOverlay extends Overlay @@ -114,6 +115,7 @@ class InstanceMapOverlay extends Overlay InstanceMapOverlay(@Nullable Client client, InstanceMapConfig config, InstanceMapPlugin plugin) { setPosition(OverlayPosition.DYNAMIC); + setLayer(OverlayLayer.ALWAYS_ON_TOP); this.client = client; this.config = config; this.plugin = plugin; 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 19ba8b1114..706a5adbe0 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 @@ -54,7 +54,6 @@ class JewelleryCountOverlay extends Overlay setPosition(OverlayPosition.DYNAMIC); this.queryRunner = queryRunner; this.config = config; - this.setDrawOverBankScreen(true); } @Override 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 6a16e0fd2d..c1f6e58c2a 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 @@ -49,7 +49,6 @@ class MouseHighlightOverlay extends Overlay this.client = client; this.config = config; this.tooltipManager = tooltipManager; - this.setDrawOverBankScreen(true); } @Override diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/playerindicators/PlayerIndicatorsOverlay.java b/runelite-client/src/main/java/net/runelite/client/plugins/playerindicators/PlayerIndicatorsOverlay.java index 17623c2fac..99c05a2cf9 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/playerindicators/PlayerIndicatorsOverlay.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/playerindicators/PlayerIndicatorsOverlay.java @@ -33,6 +33,7 @@ import lombok.extern.slf4j.Slf4j; import net.runelite.api.Client; import net.runelite.api.Player; import net.runelite.client.ui.overlay.Overlay; +import net.runelite.client.ui.overlay.OverlayLayer; import net.runelite.client.ui.overlay.OverlayPosition; import net.runelite.client.ui.overlay.OverlayUtil; @@ -50,6 +51,7 @@ public class PlayerIndicatorsOverlay extends Overlay this.config = config; this.client = client; setPosition(OverlayPosition.DYNAMIC); + setLayer(OverlayLayer.UNDER_WIDGETS); } @Override 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 b568e7cc4e..4227b5bb43 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 @@ -58,7 +58,6 @@ public class BindNeckOverlay extends Overlay setPosition(OverlayPosition.DYNAMIC); this.queryRunner = queryRunner; this.config = config; - this.setDrawOverBankScreen(true); } @Override 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 8db6417ef0..2c53687663 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 @@ -59,7 +59,6 @@ public class RunecraftOverlay extends Overlay this.queryRunner = queryRunner; this.client = client; this.config = config; - this.setDrawOverBankScreen(true); } @Override 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 b01aa2cb3d..d257dbea77 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 @@ -70,7 +70,6 @@ public class RunepouchOverlay extends Overlay this.queryRunner = queryRunner; this.client = client; this.config = config; - this.setDrawOverBankScreen(true); } @Override diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/tileindicators/TileIndicatorsOverlay.java b/runelite-client/src/main/java/net/runelite/client/plugins/tileindicators/TileIndicatorsOverlay.java index 0a0b407070..7b5edb5fd4 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/tileindicators/TileIndicatorsOverlay.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/tileindicators/TileIndicatorsOverlay.java @@ -32,6 +32,7 @@ import net.runelite.api.Client; import net.runelite.api.Perspective; import net.runelite.api.Point; import net.runelite.client.ui.overlay.Overlay; +import net.runelite.client.ui.overlay.OverlayLayer; import net.runelite.client.ui.overlay.OverlayPosition; import net.runelite.client.ui.overlay.OverlayPriority; import net.runelite.client.ui.overlay.OverlayUtil; @@ -47,6 +48,7 @@ public class TileIndicatorsOverlay extends Overlay this.config = config; setPosition(OverlayPosition.DYNAMIC); setPriority(OverlayPriority.LOW); + setLayer(OverlayLayer.UNDER_WIDGETS); } @Override 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 e84c6e1dda..b72f8411ec 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 @@ -47,6 +47,7 @@ import net.runelite.api.Prayer; import net.runelite.api.Region; import net.runelite.api.Tile; import net.runelite.client.ui.overlay.Overlay; +import net.runelite.client.ui.overlay.OverlayLayer; import net.runelite.client.ui.overlay.OverlayPosition; import net.runelite.client.ui.overlay.OverlayUtil; @@ -71,6 +72,7 @@ public class VolcanicMineOverlay extends Overlay VolcanicMineOverlay(@Nullable Client client, VolcanicMinePlugin plugin, VolcanicMineConfig config) { setPosition(OverlayPosition.DYNAMIC); + setLayer(OverlayLayer.UNDER_WIDGETS); this.client = client; this.plugin = plugin; this.config = config;