From bcb579344b88466ee6cc915d9c6ec146276af01c Mon Sep 17 00:00:00 2001 From: Kamiel Date: Wed, 7 Mar 2018 22:58:20 +0100 Subject: [PATCH] Raids plugin: Reposition the points box to prevent it from overlapping overlays --- .../main/java/net/runelite/api/Varbits.java | 7 ++++++ .../net/runelite/api/widgets/WidgetID.java | 7 ++++++ .../net/runelite/api/widgets/WidgetInfo.java | 5 +++- .../client/plugins/raids/RaidsOverlay.java | 5 ++++ .../client/plugins/raids/RaidsPlugin.java | 25 +++++++++++++++++++ 5 files changed, 48 insertions(+), 1 deletion(-) diff --git a/runelite-api/src/main/java/net/runelite/api/Varbits.java b/runelite-api/src/main/java/net/runelite/api/Varbits.java index 84dd4cf55e..0a46001397 100644 --- a/runelite-api/src/main/java/net/runelite/api/Varbits.java +++ b/runelite-api/src/main/java/net/runelite/api/Varbits.java @@ -170,6 +170,13 @@ public enum Varbits */ SACK_NUMBER(5558), + /** + * Experience tracker + */ + EXPERIENCE_TRACKER_POSITION(4692), + EXPERIENCE_TRACKER_COUNTER(4697), + EXPERIENCE_TRACKER_PROGRESS_BAR(4698), + /** * Experience drop color */ diff --git a/runelite-api/src/main/java/net/runelite/api/widgets/WidgetID.java b/runelite-api/src/main/java/net/runelite/api/widgets/WidgetID.java index 05d7a00e34..50163bc6a8 100644 --- a/runelite-api/src/main/java/net/runelite/api/widgets/WidgetID.java +++ b/runelite-api/src/main/java/net/runelite/api/widgets/WidgetID.java @@ -74,6 +74,7 @@ public class WidgetID public static final int WORLD_MAP = 595; public static final int PYRAMID_PLUNDER_GROUP_ID = 428; public static final int RAIDS_REWARD_GROUP_ID = 539; + public static final int EXPERIENCE_TRACKER_GROUP_ID = 122; static class WorldMap { @@ -318,4 +319,10 @@ public class WidgetID static final int SPRITE = 0; static final int TEXT = 1; } + + static class ExperienceTracker + { + static final int WIDGET = 1; + static final int BOTTOM_BAR = 14; + } } diff --git a/runelite-api/src/main/java/net/runelite/api/widgets/WidgetInfo.java b/runelite-api/src/main/java/net/runelite/api/widgets/WidgetInfo.java index b6a0296260..ab05fdd6b5 100644 --- a/runelite-api/src/main/java/net/runelite/api/widgets/WidgetInfo.java +++ b/runelite-api/src/main/java/net/runelite/api/widgets/WidgetInfo.java @@ -186,7 +186,10 @@ public enum WidgetInfo BLAST_FURNACE_COFFER(WidgetID.BLAST_FURNACE_GROUP_ID, 0), - PYRAMID_PLUNDER_DATA(WidgetID.PYRAMID_PLUNDER_GROUP_ID, 0); + PYRAMID_PLUNDER_DATA(WidgetID.PYRAMID_PLUNDER_GROUP_ID, 0), + + EXPERIENCE_TRACKER(WidgetID.EXPERIENCE_TRACKER_GROUP_ID, WidgetID.ExperienceTracker.WIDGET), + EXPERIENCE_TRACKER_BOTTOM_BAR(WidgetID.EXPERIENCE_TRACKER_GROUP_ID, WidgetID.ExperienceTracker.BOTTOM_BAR); private final int groupId; private final int childId; diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/raids/RaidsOverlay.java b/runelite-client/src/main/java/net/runelite/client/plugins/raids/RaidsOverlay.java index 802b4dd19e..8dee771f3e 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/raids/RaidsOverlay.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/raids/RaidsOverlay.java @@ -57,6 +57,11 @@ public class RaidsOverlay extends Overlay @Override public Dimension render(Graphics2D graphics, Point parent) { + if (plugin.isInRaidChambers()) + { + plugin.repositionPointsBox(); + } + if (!config.scoutOverlay() || !scoutOverlayShown) { return null; diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/raids/RaidsPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/raids/RaidsPlugin.java index 4258e6377b..50004f8d1e 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/raids/RaidsPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/raids/RaidsPlugin.java @@ -54,6 +54,8 @@ import static net.runelite.api.Perspective.SCENE_SIZE; import net.runelite.api.events.ChatMessage; import net.runelite.api.events.ConfigChanged; import net.runelite.api.events.VarbitChanged; +import net.runelite.api.widgets.Widget; +import net.runelite.api.widgets.WidgetInfo; import net.runelite.client.chat.ChatColor; import net.runelite.client.chat.ChatColorType; import net.runelite.client.chat.ChatMessageBuilder; @@ -85,6 +87,8 @@ public class RaidsPlugin extends Plugin private BufferedImage raidsIcon; private RaidsTimer timer; + + @Getter private boolean inRaidChambers; @Inject @@ -303,6 +307,27 @@ public class RaidsPlugin extends Plugin } } + public void repositionPointsBox() + { + Widget widget = client.getWidget(WidgetInfo.RAIDS_POINTS_INFOBOX); + int x = widget.getParent().getWidth() - widget.getWidth() - 2; + int y = widget.getOriginalY(); + + if (client.getSetting(Varbits.EXPERIENCE_TRACKER_POSITION) == 0) + { + Widget area = client.getWidget(WidgetInfo.EXPERIENCE_TRACKER_BOTTOM_BAR); + + if (area != null) + { + y = area.getOriginalY() + 2; + area.setRelativeY(y + widget.getHeight()); + } + } + + widget.setRelativeX(x); + widget.setRelativeY(y); + } + private void updateInfoBoxState() { if (timer != null)