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 391c04baf0..5d3069cec2 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 @@ -27,11 +27,13 @@ package net.runelite.client.ui.overlay; import java.awt.Dimension; import java.awt.Graphics2D; +import java.awt.Rectangle; 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 public Overlay(OverlayPosition position) { @@ -65,4 +67,14 @@ public abstract class Overlay } public abstract Dimension render(Graphics2D graphics); + + public Rectangle getBounds() + { + return bounds; + } + + public void storeBounds(Rectangle bounds) + { + this.bounds = bounds; + } } 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 ee5258b00c..2053b8cf4f 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 @@ -22,11 +22,11 @@ * (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; import java.awt.Dimension; import java.awt.Graphics2D; +import java.awt.Rectangle; import java.awt.image.BufferedImage; import java.util.ArrayList; import java.util.List; @@ -61,6 +61,9 @@ public class TopDownRendererLeft implements Renderer if (dimension == null) continue; + Rectangle bounds = new Rectangle(BORDER_LEFT, y, (int) dimension.getWidth(), (int) dimension.getHeight()); + overlay.storeBounds(bounds); + y += dimension.getHeight() + PADDING; } } 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 bdb1067abf..5f03d511e0 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 @@ -26,6 +26,7 @@ package net.runelite.client.ui.overlay; import java.awt.Dimension; import java.awt.Graphics2D; +import java.awt.Rectangle; import java.awt.image.BufferedImage; import java.util.ArrayList; import java.util.List; @@ -74,6 +75,9 @@ public class TopDownRendererRight implements Renderer graphics.drawImage(image, clientWidth - BORDER_RIGHT - (int) dimension.getWidth(), y, null); graphics.dispose(); + Rectangle bounds = new Rectangle(clientWidth - BORDER_RIGHT - (int) dimension.getWidth(), y, (int) dimension.getWidth(), (int) dimension.getHeight()); + overlay.storeBounds(bounds); + y += dimension.getHeight() + PADDING; } }