From 4218459617d764dab7a71de84db0a58161f8d29b Mon Sep 17 00:00:00 2001 From: Tomas Slusny Date: Fri, 15 Jun 2018 19:14:36 +0200 Subject: [PATCH 1/4] Add new WidgetIDs for minimap Signed-off-by: Tomas Slusny --- .../java/net/runelite/api/widgets/WidgetID.java | 6 +++++- .../net/runelite/api/widgets/WidgetInfo.java | 17 ++++++++++++++--- .../plugins/prayer/PrayerDoseOverlay.java | 2 +- .../plugins/prayer/PrayerFlickOverlay.java | 2 +- 4 files changed, 21 insertions(+), 6 deletions(-) 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 6549bf397c..121d28b6e0 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 @@ -241,7 +241,11 @@ public class WidgetID static class Viewport { - static final int MINIMAP_WIDGET = 17; + static final int MINIMAP_RESIZABLE_WIDGET = 17; + static final int MINIMAP_RESIZABLE_CLICKBOX = 18; + static final int MINIMAP_RESIZABLE_DRAW_AREA = 25; + static final int MINIMAP_RESIZABLE_DECORATIONS = 27; + static final int MINIMAP_RESIZABLE_ORB_HOLDER = 28; static final int FIXED_VIEWPORT = 17; static final int RESIZABLE_VIEWPORT_OLD_SCHOOL_BOX = 12; static final int RESIZABLE_VIEWPORT_BOTTOM_LINE = 12; 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 da31af9b92..143a6e116e 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 @@ -53,8 +53,6 @@ public enum WidgetInfo CLUE_SCROLL_TEXT(WidgetID.CLUE_SCROLL_GROUP_ID, WidgetID.Cluescroll.CLUE_TEXT), - QUICK_PRAYER_ORB(WidgetID.MINIMAP_GROUP_ID, WidgetID.Minimap.QUICK_PRAYER_ORB), - EQUIPMENT(WidgetID.EQUIPMENT_GROUP_ID, 0), EQUIPMENT_INVENTORY_ITEMS_CONTAINER(WidgetID.EQUIPMENT_INVENTORY_GROUP_ID, WidgetID.Equipment.INVENTORY_ITEM_CONTAINER), @@ -129,8 +127,10 @@ public enum WidgetInfo RUNE_POUCH_ITEM_CONTAINER(WidgetID.RUNE_POUCH_GROUP_ID, 0), + MINIMAP_ORBS(WidgetID.MINIMAP_GROUP_ID, 0), MINIMAP_XP_ORB(WidgetID.MINIMAP_GROUP_ID, WidgetID.Minimap.XP_ORB), MINIMAP_PRAYER_ORB(WidgetID.MINIMAP_GROUP_ID, WidgetID.Minimap.PRAYER_ORB), + MINIMAP_QUICK_PRAYER_ORB(WidgetID.MINIMAP_GROUP_ID, WidgetID.Minimap.QUICK_PRAYER_ORB), MINIMAP_RUN_ORB(WidgetID.MINIMAP_GROUP_ID, WidgetID.Minimap.RUN_ORB), MINIMAP_HEALTH_ORB(WidgetID.MINIMAP_GROUP_ID, WidgetID.Minimap.HEALTH_ORB), MINIMAP_SPEC_ORB(WidgetID.MINIMAP_GROUP_ID, WidgetID.Minimap.SPEC_ORB), @@ -170,7 +170,18 @@ public enum WidgetInfo FIXED_VIEWPORT_EMOTES_ICON(WidgetID.FIXED_VIEWPORT_GROUP_ID, WidgetID.FixedViewport.EMOTES_ICON), FIXED_VIEWPORT_MUSIC_ICON(WidgetID.FIXED_VIEWPORT_GROUP_ID, WidgetID.FixedViewport.MUSIC_ICON), - MINIMAP_WIDGET(WidgetID.RESIZABLE_VIEWPORT_OLD_SCHOOL_BOX_GROUP_ID, WidgetID.Viewport.MINIMAP_WIDGET), + RESIZABLE_MINIMAP_WIDGET(WidgetID.RESIZABLE_VIEWPORT_BOTTOM_LINE_GROUP_ID, WidgetID.Viewport.MINIMAP_RESIZABLE_WIDGET), + RESIZABLE_MINIMAP_CLICKBOX(WidgetID.RESIZABLE_VIEWPORT_BOTTOM_LINE_GROUP_ID, WidgetID.Viewport.MINIMAP_RESIZABLE_CLICKBOX), + RESIZABLE_MINIMAP_DRAW_AREA(WidgetID.RESIZABLE_VIEWPORT_BOTTOM_LINE_GROUP_ID, WidgetID.Viewport.MINIMAP_RESIZABLE_DRAW_AREA), + RESIZABLE_MINIMAP_DECORATIONS(WidgetID.RESIZABLE_VIEWPORT_BOTTOM_LINE_GROUP_ID, WidgetID.Viewport.MINIMAP_RESIZABLE_DECORATIONS), + RESIZABLE_MINIMAP_ORB_HOLDER(WidgetID.RESIZABLE_VIEWPORT_BOTTOM_LINE_GROUP_ID, WidgetID.Viewport.MINIMAP_RESIZABLE_ORB_HOLDER), + + RESIZABLE_MINIMAP_STONES_WIDGET(WidgetID.RESIZABLE_VIEWPORT_OLD_SCHOOL_BOX_GROUP_ID, WidgetID.Viewport.MINIMAP_RESIZABLE_WIDGET), + RESIZABLE_MINIMAP_STONES_CLICKBOX(WidgetID.RESIZABLE_VIEWPORT_OLD_SCHOOL_BOX_GROUP_ID, WidgetID.Viewport.MINIMAP_RESIZABLE_CLICKBOX), + RESIZABLE_MINIMAP_STONES_DRAW_AREA(WidgetID.RESIZABLE_VIEWPORT_OLD_SCHOOL_BOX_GROUP_ID, WidgetID.Viewport.MINIMAP_RESIZABLE_DRAW_AREA), + RESIZABLE_MINIMAP_STONES_DECORATIONS(WidgetID.RESIZABLE_VIEWPORT_OLD_SCHOOL_BOX_GROUP_ID, WidgetID.Viewport.MINIMAP_RESIZABLE_DECORATIONS), + RESIZABLE_MINIMAP_STONES_ORB_HOLDER(WidgetID.RESIZABLE_VIEWPORT_OLD_SCHOOL_BOX_GROUP_ID, WidgetID.Viewport.MINIMAP_RESIZABLE_ORB_HOLDER), + RESIZABLE_VIEWPORT_OLD_SCHOOL_BOX(WidgetID.RESIZABLE_VIEWPORT_OLD_SCHOOL_BOX_GROUP_ID, WidgetID.Viewport.RESIZABLE_VIEWPORT_OLD_SCHOOL_BOX), RESIZABLE_VIEWPORT_COMBAT_TAB(WidgetID.RESIZABLE_VIEWPORT_OLD_SCHOOL_BOX_GROUP_ID, WidgetID.ResizableViewport.COMBAT_TAB), RESIZABLE_VIEWPORT_STATS_TAB(WidgetID.RESIZABLE_VIEWPORT_OLD_SCHOOL_BOX_GROUP_ID, WidgetID.ResizableViewport.STATS_TAB), diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/prayer/PrayerDoseOverlay.java b/runelite-client/src/main/java/net/runelite/client/plugins/prayer/PrayerDoseOverlay.java index b2cbdc0492..fd97daf0ce 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/prayer/PrayerDoseOverlay.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/prayer/PrayerDoseOverlay.java @@ -97,7 +97,7 @@ class PrayerDoseOverlay extends Overlay @Override public Dimension render(Graphics2D graphics) { - final Widget xpOrb = client.getWidget(WidgetInfo.QUICK_PRAYER_ORB); + final Widget xpOrb = client.getWidget(WidgetInfo.MINIMAP_QUICK_PRAYER_ORB); if (xpOrb == null) { return null; diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/prayer/PrayerFlickOverlay.java b/runelite-client/src/main/java/net/runelite/client/plugins/prayer/PrayerFlickOverlay.java index 0c89794974..929daa66c9 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/prayer/PrayerFlickOverlay.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/prayer/PrayerFlickOverlay.java @@ -67,7 +67,7 @@ class PrayerFlickOverlay extends Overlay return null; } - Widget xpOrb = client.getWidget(WidgetInfo.QUICK_PRAYER_ORB); + Widget xpOrb = client.getWidget(WidgetInfo.MINIMAP_QUICK_PRAYER_ORB); if (xpOrb == null) { return null; From 26daee6a2e00c6dc57d5ff9359725f943ee54264 Mon Sep 17 00:00:00 2001 From: Tomas Slusny Date: Fri, 15 Jun 2018 19:25:44 +0200 Subject: [PATCH 2/4] Use correct widget when hiding minimap When hiding minimap, there are 2 different widget IDs for respective resizable mode configurations. Find proper one and hide it. Fixes #976 Signed-off-by: Tomas Slusny --- .../client/plugins/minimap/MinimapPlugin.java | 44 ++++++++----------- 1 file changed, 19 insertions(+), 25 deletions(-) diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/minimap/MinimapPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/minimap/MinimapPlugin.java index 7c017ab713..3578c0b427 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/minimap/MinimapPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/minimap/MinimapPlugin.java @@ -67,13 +67,7 @@ public class MinimapPlugin extends Plugin @Override protected void startUp() throws Exception { - Widget minimapWidget = client.getWidget(WidgetInfo.MINIMAP_WIDGET); - - if (minimapWidget != null) - { - minimapWidget.setHidden(config.hideMinimap()); - } - + updateMinimapWidgetVisibility(config.hideMinimap()); storeOriginalDots(); replaceMapDots(); } @@ -81,13 +75,7 @@ public class MinimapPlugin extends Plugin @Override protected void shutDown() throws Exception { - Widget minimapWidget = client.getWidget(WidgetInfo.MINIMAP_WIDGET); - - if (minimapWidget != null) - { - minimapWidget.setHidden(false); - } - + updateMinimapWidgetVisibility(false); restoreOriginalDots(); } @@ -147,12 +135,7 @@ public class MinimapPlugin extends Plugin if (event.getKey().equals("hideMinimap")) { - Widget minimapWidget = client.getWidget(WidgetInfo.MINIMAP_WIDGET); - - if (minimapWidget != null) - { - minimapWidget.setHidden(config.hideMinimap()); - } + updateMinimapWidgetVisibility(config.hideMinimap()); return; } @@ -162,11 +145,23 @@ public class MinimapPlugin extends Plugin @Subscribe public void onWidgetHiddenChange(WidgetHiddenChanged event) { - Widget minimapWidget = client.getWidget(WidgetInfo.MINIMAP_WIDGET); + updateMinimapWidgetVisibility(config.hideMinimap()); + } - if (event.getWidget() == minimapWidget) + private void updateMinimapWidgetVisibility(boolean enable) + { + final Widget resizableStonesWidget = client.getWidget(WidgetInfo.RESIZABLE_MINIMAP_STONES_WIDGET); + + if (resizableStonesWidget != null) { - minimapWidget.setHidden(config.hideMinimap()); + resizableStonesWidget.setHidden(enable); + } + + final Widget resizableNormalWidget = client.getWidget(WidgetInfo.RESIZABLE_MINIMAP_WIDGET); + + if (resizableNormalWidget != null && !resizableNormalWidget.isSelfHidden()) + { + resizableNormalWidget.setHidden(enable); } } @@ -185,5 +180,4 @@ public class MinimapPlugin extends Plugin mapDots[i] = MinimapDot.create(this.client, minimapDotColors[i]); } } - -} +} \ No newline at end of file From 0002a25d28e697f7e7a5b017e36f7bc37e3b9480 Mon Sep 17 00:00:00 2001 From: Tomas Slusny Date: Fri, 15 Jun 2018 19:27:14 +0200 Subject: [PATCH 3/4] Move private methods to bottom of minimap plugin Move private methods to bottom, after subscribe methods for better readability. Signed-off-by: Tomas Slusny --- .../client/plugins/minimap/MinimapPlugin.java | 72 +++++++++---------- 1 file changed, 36 insertions(+), 36 deletions(-) diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/minimap/MinimapPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/minimap/MinimapPlugin.java index 3578c0b427..106ba178ba 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/minimap/MinimapPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/minimap/MinimapPlugin.java @@ -89,42 +89,6 @@ public class MinimapPlugin extends Plugin } } - private Color[] getColors() - { - Color[] colors = new Color[NUM_MAPDOTS]; - colors[0] = config.itemColor(); - colors[1] = config.npcColor(); - colors[2] = config.playerColor(); - colors[3] = config.friendColor(); - colors[4] = config.teamColor(); - colors[5] = config.clanColor(); - return colors; - } - - private void storeOriginalDots() - { - SpritePixels[] originalDots = client.getMapDots(); - - if (originalDots == null) - { - return; - } - - originalDotSprites = Arrays.copyOf(originalDots, originalDots.length); - } - - private void restoreOriginalDots() - { - SpritePixels[] mapDots = client.getMapDots(); - - if (originalDotSprites == null || mapDots == null) - { - return; - } - - System.arraycopy(originalDotSprites, 0, mapDots, 0, mapDots.length); - } - @Subscribe public void configChanged(ConfigChanged event) { @@ -180,4 +144,40 @@ public class MinimapPlugin extends Plugin mapDots[i] = MinimapDot.create(this.client, minimapDotColors[i]); } } + + private Color[] getColors() + { + Color[] colors = new Color[NUM_MAPDOTS]; + colors[0] = config.itemColor(); + colors[1] = config.npcColor(); + colors[2] = config.playerColor(); + colors[3] = config.friendColor(); + colors[4] = config.teamColor(); + colors[5] = config.clanColor(); + return colors; + } + + private void storeOriginalDots() + { + SpritePixels[] originalDots = client.getMapDots(); + + if (originalDots == null) + { + return; + } + + originalDotSprites = Arrays.copyOf(originalDots, originalDots.length); + } + + private void restoreOriginalDots() + { + SpritePixels[] mapDots = client.getMapDots(); + + if (originalDotSprites == null || mapDots == null) + { + return; + } + + System.arraycopy(originalDotSprites, 0, mapDots, 0, mapDots.length); + } } \ No newline at end of file From d1ba793849307ffee87c146099ff0f46c47e20ae Mon Sep 17 00:00:00 2001 From: Tomas Slusny Date: Fri, 20 Jul 2018 22:33:44 +0200 Subject: [PATCH 4/4] Hide only inside of minimap but not logout In normal resizable mode hide only insides of minimap but not logout button when hiding minimap. Signed-off-by: Tomas Slusny --- .../src/main/java/net/runelite/api/widgets/WidgetID.java | 1 + .../main/java/net/runelite/api/widgets/WidgetInfo.java | 1 + .../runelite/client/plugins/minimap/MinimapPlugin.java | 9 ++++++++- 3 files changed, 10 insertions(+), 1 deletion(-) 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 121d28b6e0..81ae00f5c5 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 @@ -246,6 +246,7 @@ public class WidgetID static final int MINIMAP_RESIZABLE_DRAW_AREA = 25; static final int MINIMAP_RESIZABLE_DECORATIONS = 27; static final int MINIMAP_RESIZABLE_ORB_HOLDER = 28; + static final int MINIMAP_RESIZABLE_LOGOUT_BUTTON = 30; static final int FIXED_VIEWPORT = 17; static final int RESIZABLE_VIEWPORT_OLD_SCHOOL_BOX = 12; static final int RESIZABLE_VIEWPORT_BOTTOM_LINE = 12; 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 143a6e116e..41169393eb 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 @@ -175,6 +175,7 @@ public enum WidgetInfo RESIZABLE_MINIMAP_DRAW_AREA(WidgetID.RESIZABLE_VIEWPORT_BOTTOM_LINE_GROUP_ID, WidgetID.Viewport.MINIMAP_RESIZABLE_DRAW_AREA), RESIZABLE_MINIMAP_DECORATIONS(WidgetID.RESIZABLE_VIEWPORT_BOTTOM_LINE_GROUP_ID, WidgetID.Viewport.MINIMAP_RESIZABLE_DECORATIONS), RESIZABLE_MINIMAP_ORB_HOLDER(WidgetID.RESIZABLE_VIEWPORT_BOTTOM_LINE_GROUP_ID, WidgetID.Viewport.MINIMAP_RESIZABLE_ORB_HOLDER), + RESIZABLE_MINIMAP_LOGOUT_BUTTON(WidgetID.RESIZABLE_VIEWPORT_BOTTOM_LINE_GROUP_ID, WidgetID.Viewport.MINIMAP_RESIZABLE_LOGOUT_BUTTON), RESIZABLE_MINIMAP_STONES_WIDGET(WidgetID.RESIZABLE_VIEWPORT_OLD_SCHOOL_BOX_GROUP_ID, WidgetID.Viewport.MINIMAP_RESIZABLE_WIDGET), RESIZABLE_MINIMAP_STONES_CLICKBOX(WidgetID.RESIZABLE_VIEWPORT_OLD_SCHOOL_BOX_GROUP_ID, WidgetID.Viewport.MINIMAP_RESIZABLE_CLICKBOX), diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/minimap/MinimapPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/minimap/MinimapPlugin.java index 106ba178ba..3c9cd0fced 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/minimap/MinimapPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/minimap/MinimapPlugin.java @@ -125,7 +125,14 @@ public class MinimapPlugin extends Plugin if (resizableNormalWidget != null && !resizableNormalWidget.isSelfHidden()) { - resizableNormalWidget.setHidden(enable); + for (Widget widget : resizableNormalWidget.getStaticChildren()) + { + if (widget.getId() != WidgetInfo.RESIZABLE_VIEWPORT_BOTTOM_LINE_LOGOUT_BUTTON.getId() && + widget.getId() != WidgetInfo.RESIZABLE_MINIMAP_LOGOUT_BUTTON.getId()) + { + widget.setHidden(enable); + } + } } }