From d4d722674a350c205f704eea41534ebedf81fda1 Mon Sep 17 00:00:00 2001 From: ThatGamerBlue Date: Mon, 22 Jul 2019 17:29:23 +0100 Subject: [PATCH] prayeralert: Fix overlaying other infoboxes and widgets (#1081) --- .../plugins/prayeralert/PrayerAlertOverlay.java | 10 ++++++---- .../ui/overlay/components/ImageComponent.java | 13 +++++++++++++ 2 files changed, 19 insertions(+), 4 deletions(-) diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/prayeralert/PrayerAlertOverlay.java b/runelite-client/src/main/java/net/runelite/client/plugins/prayeralert/PrayerAlertOverlay.java index d96f1161e6..705d1dc458 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/prayeralert/PrayerAlertOverlay.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/prayeralert/PrayerAlertOverlay.java @@ -32,8 +32,8 @@ import net.runelite.client.plugins.itemstats.stats.Stat; import net.runelite.client.plugins.itemstats.stats.Stats; 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.client.ui.overlay.OverlayPriority; import net.runelite.client.ui.overlay.components.ImageComponent; import net.runelite.client.ui.overlay.components.PanelComponent; import net.runelite.client.ui.overlay.components.TitleComponent; @@ -52,7 +52,7 @@ class PrayerAlertOverlay extends Overlay private PrayerAlertOverlay(final Client client, final PrayerAlertPlugin plugin, final ItemManager itemManager) { setPosition(OverlayPosition.TOP_RIGHT); - setLayer(OverlayLayer.ABOVE_WIDGETS); + setPriority(OverlayPriority.LOW); this.client = client; this.plugin = plugin; this.itemManager = itemManager; @@ -163,13 +163,15 @@ class PrayerAlertOverlay extends Overlay private void prayerRestorePanel(PanelComponent panelComponent, Graphics2D graphics) { - panelComponent.getChildren().add(new ImageComponent(itemManager.getImage(ItemID.PRAYER_POTION4))); + ImageComponent component = new ImageComponent(itemManager.getImage(ItemID.PRAYER_POTION4)); + component.translate(2, 0); + panelComponent.getChildren().add(component); panelComponent.getChildren().add(TitleComponent.builder() .text("Drink") .color(Color.RED) .build()); panelComponent.setPreferredSize(new Dimension( - graphics.getFontMetrics().stringWidth("Drink") + 12, 0)); + graphics.getFontMetrics().stringWidth("Drink") + 14, 0)); } private void oldPrayerRestorePanel(Graphics2D graphics) diff --git a/runelite-client/src/main/java/net/runelite/client/ui/overlay/components/ImageComponent.java b/runelite-client/src/main/java/net/runelite/client/ui/overlay/components/ImageComponent.java index 39ec431697..22c423d5f9 100644 --- a/runelite-client/src/main/java/net/runelite/client/ui/overlay/components/ImageComponent.java +++ b/runelite-client/src/main/java/net/runelite/client/ui/overlay/components/ImageComponent.java @@ -1,5 +1,6 @@ /* * Copyright (c) 2018, Tomas Slusny + * Copyright (c) 2019, ThatGamerBlue * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -44,6 +45,9 @@ public class ImageComponent implements LayoutableRenderableEntity private Point preferredLocation = new Point(); + private int xOffset = 0; + private int yOffset = 0; + @Override public Dimension render(Graphics2D graphics) { @@ -52,6 +56,9 @@ public class ImageComponent implements LayoutableRenderableEntity return null; } + preferredLocation.x += xOffset; + preferredLocation.y += yOffset; + graphics.drawImage(image, preferredLocation.x, preferredLocation.y, null); final Dimension dimension = new Dimension(image.getWidth(), image.getHeight()); bounds.setLocation(preferredLocation); @@ -64,4 +71,10 @@ public class ImageComponent implements LayoutableRenderableEntity { // Just use image dimensions for now } + + public void translate(int x, int y) + { + xOffset = x; + yOffset = y; + } } \ No newline at end of file