diff --git a/runelite-api/src/main/java/net/runelite/api/SpriteID.java b/runelite-api/src/main/java/net/runelite/api/SpriteID.java index 962089c146..8e4373ba71 100644 --- a/runelite-api/src/main/java/net/runelite/api/SpriteID.java +++ b/runelite-api/src/main/java/net/runelite/api/SpriteID.java @@ -1589,4 +1589,6 @@ public final class SpriteID public static final int HEALTHBAR_DEFAULT_BACK_140PX = 2189; public static final int HEALTHBAR_DEFAULT_FRONT_160PX = 2190; public static final int HEALTHBAR_DEFAULT_BACK_160PX = 2191; + public static final int WIKI_DESELECTED = 2420; + public static final int WIKI_SELECTED = 2421; } 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 d155904e7b..a97f9b7124 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 @@ -306,6 +306,7 @@ public class WidgetID static final int RUN_ORB_TEXT = 23; static final int SPEC_ORB = 28; static final int WORLDMAP_ORB = 41; + static final int WIKI_BANNER = 43; } static class LoginClickToPlayScreen 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 a1354618f8..770895b1ed 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 @@ -155,6 +155,7 @@ public enum WidgetInfo MINIMAP_HEALTH_ORB(WidgetID.MINIMAP_GROUP_ID, WidgetID.Minimap.HEALTH_ORB), MINIMAP_SPEC_ORB(WidgetID.MINIMAP_GROUP_ID, WidgetID.Minimap.SPEC_ORB), MINIMAP_WORLDMAP_ORB(WidgetID.MINIMAP_GROUP_ID, WidgetID.Minimap.WORLDMAP_ORB), + MINIMAP_WIKI_BANNER(WidgetID.MINIMAP_GROUP_ID, WidgetID.Minimap.WIKI_BANNER), LOGIN_CLICK_TO_PLAY_SCREEN(WidgetID.LOGIN_CLICK_TO_PLAY_GROUP_ID, 0), LOGIN_CLICK_TO_PLAY_SCREEN_MESSAGE_OF_THE_DAY(WidgetID.LOGIN_CLICK_TO_PLAY_GROUP_ID, WidgetID.LoginClickToPlayScreen.MESSAGE_OF_THE_DAY), diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/wiki/WikiPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/wiki/WikiPlugin.java index e135b1eefa..9458d5077f 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/wiki/WikiPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/wiki/WikiPlugin.java @@ -35,9 +35,11 @@ import net.runelite.api.MenuEntry; import net.runelite.api.NPC; import net.runelite.api.NPCComposition; import net.runelite.api.ObjectComposition; +import net.runelite.api.SpriteID; import net.runelite.api.coords.WorldPoint; import net.runelite.api.events.MenuEntryAdded; import net.runelite.api.events.MenuOptionClicked; +import net.runelite.api.events.WidgetHiddenChanged; import net.runelite.api.events.WidgetLoaded; import net.runelite.api.widgets.JavaScriptCallback; import net.runelite.api.widgets.Widget; @@ -105,14 +107,12 @@ public class WikiPlugin extends Plugin @Override public void startUp() { - spriteManager.addSpriteOverrides(WikiSprite.values()); clientThread.invokeLater(this::addWidgets); } @Override public void shutDown() { - spriteManager.removeSpriteOverrides(WikiSprite.values()); clientThread.invokeLater(() -> { Widget minimapOrbs = client.getWidget(WidgetInfo.MINIMAP_ORBS); @@ -127,6 +127,12 @@ public class WikiPlugin extends Plugin } children[0] = null; + Widget vanilla = client.getWidget(WidgetInfo.MINIMAP_WIKI_BANNER); + if (vanilla != null) + { + vanilla.setHidden(false); + } + onDeselect(); client.setSpellSelected(false); }); @@ -149,14 +155,20 @@ public class WikiPlugin extends Plugin return; } + Widget vanilla = client.getWidget(WidgetInfo.MINIMAP_WIKI_BANNER); + if (vanilla != null) + { + vanilla.setHidden(true); + } + icon = minimapOrbs.createChild(0, WidgetType.GRAPHIC); - icon.setSpriteId(WikiSprite.WIKI_ICON.getSpriteId()); + icon.setSpriteId(SpriteID.WIKI_DESELECTED); icon.setOriginalX(0); - icon.setOriginalY(2); + icon.setOriginalY(0); icon.setXPositionMode(WidgetPositionMode.ABSOLUTE_RIGHT); icon.setYPositionMode(WidgetPositionMode.ABSOLUTE_BOTTOM); - icon.setOriginalWidth(42); - icon.setOriginalHeight(16); + icon.setOriginalWidth(40); + icon.setOriginalHeight(14); icon.setTargetVerb("Lookup"); icon.setName("Wiki"); icon.setClickMask(WidgetConfig.USE_GROUND_ITEM | WidgetConfig.USE_ITEM | WidgetConfig.USE_NPC @@ -165,7 +177,7 @@ public class WikiPlugin extends Plugin icon.setOnTargetEnterListener((JavaScriptCallback) ev -> { wikiSelected = true; - icon.setSpriteId(WikiSprite.WIKI_SELECTED_ICON.getSpriteId()); + icon.setSpriteId(SpriteID.WIKI_SELECTED); client.setAllWidgetsAreOpTargetable(true); }); icon.setAction(5, "Search"); // Start at option 5 so the target op is ontop @@ -183,6 +195,15 @@ public class WikiPlugin extends Plugin icon.revalidate(); } + @Subscribe + private void onWidgetHiddenChanged(WidgetHiddenChanged ev) + { + if (ev.getWidget().getId() == WidgetInfo.MINIMAP_WIKI_BANNER.getId()) + { + ev.getWidget().setHidden(true); + } + } + private void onDeselect() { client.setAllWidgetsAreOpTargetable(false); @@ -190,7 +211,7 @@ public class WikiPlugin extends Plugin wikiSelected = false; if (icon != null) { - icon.setSpriteId(WikiSprite.WIKI_ICON.getSpriteId()); + icon.setSpriteId(SpriteID.WIKI_DESELECTED); } } diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/wiki/WikiSprite.java b/runelite-client/src/main/java/net/runelite/client/plugins/wiki/WikiSprite.java deleted file mode 100644 index 188d54837b..0000000000 --- a/runelite-client/src/main/java/net/runelite/client/plugins/wiki/WikiSprite.java +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Copyright (c) 2018 Abex - * 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.plugins.wiki; - -import lombok.Getter; -import lombok.RequiredArgsConstructor; -import net.runelite.api.SpriteID; -import net.runelite.client.game.SpriteOverride; - -@RequiredArgsConstructor -public enum WikiSprite implements SpriteOverride -{ - WIKI_ICON(-300, "wiki.png"), - WIKI_SELECTED_ICON(-301, "wiki_selected.png"), - FIXED_MODE_MINIMAP_CLICKMASK(SpriteID.MINIMAP_CLICK_MASK, "fixed_mode_minimap_clickmask.png"); - - @Getter - private final int spriteId; - - @Getter - private final String fileName; -} diff --git a/runelite-client/src/main/resources/net/runelite/client/plugins/wiki/fixed_mode_minimap_clickmask.png b/runelite-client/src/main/resources/net/runelite/client/plugins/wiki/fixed_mode_minimap_clickmask.png deleted file mode 100644 index ba5a23c151..0000000000 Binary files a/runelite-client/src/main/resources/net/runelite/client/plugins/wiki/fixed_mode_minimap_clickmask.png and /dev/null differ diff --git a/runelite-client/src/main/resources/net/runelite/client/plugins/wiki/wiki.png b/runelite-client/src/main/resources/net/runelite/client/plugins/wiki/wiki.png deleted file mode 100644 index ef2ff20ff0..0000000000 Binary files a/runelite-client/src/main/resources/net/runelite/client/plugins/wiki/wiki.png and /dev/null differ diff --git a/runelite-client/src/main/resources/net/runelite/client/plugins/wiki/wiki_selected.png b/runelite-client/src/main/resources/net/runelite/client/plugins/wiki/wiki_selected.png deleted file mode 100644 index 80838fb5c4..0000000000 Binary files a/runelite-client/src/main/resources/net/runelite/client/plugins/wiki/wiki_selected.png and /dev/null differ