From 412482951f84b38206dd6dff81addc577801788d Mon Sep 17 00:00:00 2001 From: Adam Date: Sun, 27 May 2018 14:54:01 -0400 Subject: [PATCH 1/2] world map plugin: merge jewellery teleports and magic teleports --- .../JewelleryTeleportLocationData.java | 84 ------------------- .../worldmap/JewelleryTeleportPoint.java | 54 ------------ ...ionData.java => TeleportLocationData.java} | 57 +++++++++++-- ...cTeleportPoint.java => TeleportPoint.java} | 6 +- .../client/plugins/worldmap/TeleportType.java | 3 +- .../plugins/worldmap/WorldMapPlugin.java | 34 ++------ 6 files changed, 66 insertions(+), 172 deletions(-) delete mode 100644 runelite-client/src/main/java/net/runelite/client/plugins/worldmap/JewelleryTeleportLocationData.java delete mode 100644 runelite-client/src/main/java/net/runelite/client/plugins/worldmap/JewelleryTeleportPoint.java rename runelite-client/src/main/java/net/runelite/client/plugins/worldmap/{MagicTeleportLocationData.java => TeleportLocationData.java} (51%) rename runelite-client/src/main/java/net/runelite/client/plugins/worldmap/{MagicTeleportPoint.java => TeleportPoint.java} (92%) diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/worldmap/JewelleryTeleportLocationData.java b/runelite-client/src/main/java/net/runelite/client/plugins/worldmap/JewelleryTeleportLocationData.java deleted file mode 100644 index 574ff3a44c..0000000000 --- a/runelite-client/src/main/java/net/runelite/client/plugins/worldmap/JewelleryTeleportLocationData.java +++ /dev/null @@ -1,84 +0,0 @@ -/* - * Copyright (c) 2018, Morgan Lewis - * 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 HOLDER 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.worldmap; - -import lombok.Getter; -import net.runelite.api.coords.WorldPoint; - -@Getter -enum JewelleryTeleportLocationData -{ - BARBARIAN_ASSAULT("Games Necklace" , "Barbarian Assault", new WorldPoint(2520, 3571, 0), "games_necklace_teleport_icon.png"), - BURTHORPE_GAMES_ROOM("Games Necklace" , "Burthorpe Games Room", new WorldPoint(2898, 3554, 0), "games_necklace_teleport_icon.png"), - TEARS_OF_GUTHIX("Games Necklace" , "Tears of Guthix", new WorldPoint(3245, 9500, 0), "games_necklace_teleport_icon.png"), - CORPOREAL_BEAST("Games Necklace" , "Corporeal Beast", new WorldPoint(2967, 4384, 0), "games_necklace_teleport_icon.png"), - WINTERTODT_CAMP("Games Necklace" , "Wintertodt Camp", new WorldPoint(1624, 3938, 0), "games_necklace_teleport_icon.png"), - DUEL_ARENA("Ring of Dueling" , "Duel Arena", new WorldPoint(3315, 3235, 0), "ring_of_dueling_teleport_icon.png"), - CLAN_WARS("Ring of Dueling" , "Clan Wars", new WorldPoint(3387, 3158, 0), "ring_of_dueling_teleport_icon.png"), - CASTLE_WARS("Ring of Dueling" , "Castle Wars", new WorldPoint(2441, 3091, 0), "ring_of_dueling_teleport_icon.png"), - WARRIORS_GUILD("Combat Bracelet" , "Warriors' Guild", new WorldPoint(2883, 3549, 0), "combat_bracelet_teleport_icon.png"), - CHAMPIONS_GUILD("Combat Bracelet" , "Champions' Guild", new WorldPoint(3189, 3368, 0), "combat_bracelet_teleport_icon.png"), - EDGEVILLE_MONASTERY("Combat Bracelet" , "Edgeville Monastery", new WorldPoint(3053, 3487, 0), "combat_bracelet_teleport_icon.png"), - RANGING_GUILD("Combat Bracelet" , "Ranging Guild", new WorldPoint(2654, 3441, 0), "combat_bracelet_teleport_icon.png"), - FISHING_GUILD("Skills Necklace" , "Fishing Guild", new WorldPoint(2613, 3390, 0), "skills_necklace_teleport_icon.png"), - MINING_GUILD("Skills Necklace" , "Mining Guild", new WorldPoint(3049, 9762, 0), "skills_necklace_teleport_icon.png"), - CRAFTING_GUILD("Skills Necklace" , "Crafting Guild", new WorldPoint(2934, 3294, 0), "skills_necklace_teleport_icon.png"), - COOKING_GUILD("Skills Necklace" , "Cooking Guild", new WorldPoint(3145, 3438, 0), "skills_necklace_teleport_icon.png"), - WOODCUTTING_GUILD("Skills Necklace" , "Woodcutting Guild", new WorldPoint(1662, 3505, 0), "skills_necklace_teleport_icon.png"), - EDGEVILLE("Amulet of Glory" , "Edgeville", new WorldPoint(3087, 3496, 0), "amulet_of_glory_teleport_icon.png"), - KARAMJA("Amulet of Glory" , "Karamja", new WorldPoint(2918, 3176, 0), "amulet_of_glory_teleport_icon.png"), - DRAYNOR_VILLAGE("Amulet of Glory" , "Draynor Village", new WorldPoint(3105, 3251, 0), "amulet_of_glory_teleport_icon.png"), - AL_KHARID("Amulet of Glory" , "Al-Kharid", new WorldPoint(3293, 3163, 0), "amulet_of_glory_teleport_icon.png"), - MISCELLANIA("Ring of Wealth" , "Miscellania", new WorldPoint(2535, 3862, 0), "ring_of_wealth_teleport_icon.png"), - GRAND_EXCHANGE("Ring of Wealth" , "Grand Exchange", new WorldPoint(3162, 3480, 0), "ring_of_wealth_teleport_icon.png"), - FALADOR_PARK("Ring of Wealth" , "Falador Park", new WorldPoint(2995, 3375, 0), "ring_of_wealth_teleport_icon.png"), - DONDAKAN("Ring of Wealth" , "Dondakan", new WorldPoint(2831, 10165, 0), "ring_of_wealth_teleport_icon.png"), - SLAYER_TOWER("Slayer Ring" , "Slayer Tower", new WorldPoint(3429, 3531, 0), "slayer_ring_teleport_icon.png"), - FREMENNIK_SLAYER_DUNGEON("Slayer Ring" , "Fremennik Slayer Dungeon", new WorldPoint(2800, 9998, 0), "slayer_ring_teleport_icon.png"), - TARNS_LAIR("Slayer Ring" , "Tarn's Lair", new WorldPoint(3187, 4601, 0), "slayer_ring_teleport_icon.png"), - STRONGHOLD_SLAYER_CAVE("Slayer Ring" , "Stronghold Slayer Cave", new WorldPoint(2433, 3421, 0), "slayer_ring_teleport_icon.png"), - DARK_BEASTS("Slayer Ring" , "Dark Beasts", new WorldPoint(2028, 4638, 0), "slayer_ring_teleport_icon.png"), - DIGSITE("Digsite Pendant" , "Digsite", new WorldPoint(3339, 3445, 0), "digsite_pendant_teleport_icon.png"), - HOUSE_ON_THE_HILL("Digsite Pendant" , "House on the Hill", new WorldPoint(3763, 3869, 0), "digsite_pendant_teleport_icon.png"), - LITHKREN("Digsite Pendant" , "Lithkren", new WorldPoint(3547, 10456, 0), "digsite_pendant_teleport_icon.png"), - WIZARDS_TOWER("Necklace of Passage" , "Wizards' Tower", new WorldPoint(3114, 3181, 0), "necklace_of_passage_teleport_icon.png"), - JORRALS_OUTPOST("Necklace of Passage" , "Jorral's Outpost", new WorldPoint(2431, 3348, 0), "necklace_of_passage_teleport_icon.png"), - DESERT_EAGLE_STATION("Necklace of Passage" , "Desert eagle station of the eagle transport system", new WorldPoint(3406, 3157, 0), "necklace_of_passage_teleport_icon.png"), - CHAOS_TEMPLE("Burning Amulet" , "Chaos Temple (lvl 15)", new WorldPoint(3234, 3637, 0), "burning_amulet_teleport_icon.png"), - BANDIT_CAMP("Burning Amulet" , "Bandit Camp (lvl 17)", new WorldPoint(3038, 3651, 0), "burning_amulet_teleport_icon.png"), - LAVA_MAZE("Burning Amulet" , "Lava Maze (lvl 41)", new WorldPoint(3028, 3840, 0), "burning_amulet_teleport_icon.png"); - - private final String tooltip; - private final WorldPoint location; - private final String iconPath; - - JewelleryTeleportLocationData(String item, String destination, WorldPoint location, String iconPath) - { - this.tooltip = item + " - " + destination; - this.location = location; - this.iconPath = iconPath; - } -} diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/worldmap/JewelleryTeleportPoint.java b/runelite-client/src/main/java/net/runelite/client/plugins/worldmap/JewelleryTeleportPoint.java deleted file mode 100644 index 462e228e24..0000000000 --- a/runelite-client/src/main/java/net/runelite/client/plugins/worldmap/JewelleryTeleportPoint.java +++ /dev/null @@ -1,54 +0,0 @@ -/* - * Copyright (c) 2018, Morgan Lewis - * 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 HOLDER 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.worldmap; - -import java.io.IOException; -import javax.imageio.ImageIO; -import lombok.Getter; -import net.runelite.client.ui.overlay.worldmap.WorldMapPoint; - -class JewelleryTeleportPoint extends WorldMapPoint -{ - @Getter - private final JewelleryTeleportLocationData data; - - JewelleryTeleportPoint(JewelleryTeleportLocationData data) - { - super(data.getLocation(), WorldMapPlugin.BLANK_ICON); - - this.data = data; - setTooltip(data.getTooltip()); - - try - { - setImage(ImageIO.read(WorldMapPlugin.class.getResourceAsStream(data.getIconPath()))); - } - catch (IOException e) - { - throw new RuntimeException(e); - } - } -} diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/worldmap/MagicTeleportLocationData.java b/runelite-client/src/main/java/net/runelite/client/plugins/worldmap/TeleportLocationData.java similarity index 51% rename from runelite-client/src/main/java/net/runelite/client/plugins/worldmap/MagicTeleportLocationData.java rename to runelite-client/src/main/java/net/runelite/client/plugins/worldmap/TeleportLocationData.java index b9fe49f054..a859345b4f 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/worldmap/MagicTeleportLocationData.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/worldmap/TeleportLocationData.java @@ -29,7 +29,7 @@ import lombok.Getter; import net.runelite.api.coords.WorldPoint; @Getter -enum MagicTeleportLocationData +enum TeleportLocationData { VARROCK(TeleportType.NORMAL_MAGIC, "Varrock", 25, new WorldPoint(3213, 3424, 0), "varrock_teleport_icon.png"), VARROCK_GE(TeleportType.NORMAL_MAGIC, "Varrock GE", 25, new WorldPoint(3164, 3478, 0), "varrock_teleport_icon.png"), @@ -68,19 +68,66 @@ enum MagicTeleportLocationData HARMONY_ISLAND(TeleportType.ARCEUUS_MAGIC, "Harmony Island", 65, new WorldPoint(3797, 2866, 0), "harmony_island_teleport_icon.png"), CEMETERY(TeleportType.ARCEUUS_MAGIC, "Cemetery", 71, new WorldPoint(2978, 3763, 0), "cemetery_teleport_icon.png"), BARROWS(TeleportType.ARCEUUS_MAGIC, "Barrows", 83, new WorldPoint(3565, 3315, 0), "barrows_teleport_icon.png"), - APE_ATOLL_ARCEUUS(TeleportType.ARCEUUS_MAGIC, "Ape Atoll", 90, new WorldPoint(2771, 9102, 0), "ape_atoll_teleport_icon_arceuus.png"); + APE_ATOLL_ARCEUUS(TeleportType.ARCEUUS_MAGIC, "Ape Atoll", 90, new WorldPoint(2771, 9102, 0), "ape_atoll_teleport_icon_arceuus.png"), + + // Jewellery + BARBARIAN_ASSAULT(TeleportType.JEWELLERY, "Games Necklace" , "Barbarian Assault", new WorldPoint(2520, 3571, 0), "games_necklace_teleport_icon.png"), + BURTHORPE_GAMES_ROOM(TeleportType.JEWELLERY, "Games Necklace" , "Burthorpe Games Room", new WorldPoint(2898, 3554, 0), "games_necklace_teleport_icon.png"), + TEARS_OF_GUTHIX(TeleportType.JEWELLERY, "Games Necklace" , "Tears of Guthix", new WorldPoint(3245, 9500, 0), "games_necklace_teleport_icon.png"), + CORPOREAL_BEAST(TeleportType.JEWELLERY, "Games Necklace" , "Corporeal Beast", new WorldPoint(2967, 4384, 0), "games_necklace_teleport_icon.png"), + WINTERTODT_CAMP(TeleportType.JEWELLERY, "Games Necklace" , "Wintertodt Camp", new WorldPoint(1624, 3938, 0), "games_necklace_teleport_icon.png"), + DUEL_ARENA(TeleportType.JEWELLERY, "Ring of Dueling" , "Duel Arena", new WorldPoint(3315, 3235, 0), "ring_of_dueling_teleport_icon.png"), + CLAN_WARS(TeleportType.JEWELLERY, "Ring of Dueling" , "Clan Wars", new WorldPoint(3387, 3158, 0), "ring_of_dueling_teleport_icon.png"), + CASTLE_WARS(TeleportType.JEWELLERY, "Ring of Dueling" , "Castle Wars", new WorldPoint(2441, 3091, 0), "ring_of_dueling_teleport_icon.png"), + WARRIORS_GUILD(TeleportType.JEWELLERY, "Combat Bracelet" , "Warriors' Guild", new WorldPoint(2883, 3549, 0), "combat_bracelet_teleport_icon.png"), + CHAMPIONS_GUILD(TeleportType.JEWELLERY, "Combat Bracelet" , "Champions' Guild", new WorldPoint(3189, 3368, 0), "combat_bracelet_teleport_icon.png"), + EDGEVILLE_MONASTERY(TeleportType.JEWELLERY, "Combat Bracelet" , "Edgeville Monastery", new WorldPoint(3053, 3487, 0), "combat_bracelet_teleport_icon.png"), + RANGING_GUILD(TeleportType.JEWELLERY, "Combat Bracelet" , "Ranging Guild", new WorldPoint(2654, 3441, 0), "combat_bracelet_teleport_icon.png"), + FISHING_GUILD_NECK(TeleportType.JEWELLERY, "Skills Necklace" , "Fishing Guild", new WorldPoint(2613, 3390, 0), "skills_necklace_teleport_icon.png"), + MINING_GUILD(TeleportType.JEWELLERY, "Skills Necklace" , "Mining Guild", new WorldPoint(3049, 9762, 0), "skills_necklace_teleport_icon.png"), + CRAFTING_GUILD(TeleportType.JEWELLERY, "Skills Necklace" , "Crafting Guild", new WorldPoint(2934, 3294, 0), "skills_necklace_teleport_icon.png"), + COOKING_GUILD(TeleportType.JEWELLERY, "Skills Necklace" , "Cooking Guild", new WorldPoint(3145, 3438, 0), "skills_necklace_teleport_icon.png"), + WOODCUTTING_GUILD(TeleportType.JEWELLERY, "Skills Necklace" , "Woodcutting Guild", new WorldPoint(1662, 3505, 0), "skills_necklace_teleport_icon.png"), + EDGEVILLE(TeleportType.JEWELLERY, "Amulet of Glory" , "Edgeville", new WorldPoint(3087, 3496, 0), "amulet_of_glory_teleport_icon.png"), + KARAMJA(TeleportType.JEWELLERY, "Amulet of Glory" , "Karamja", new WorldPoint(2918, 3176, 0), "amulet_of_glory_teleport_icon.png"), + DRAYNOR_VILLAGE(TeleportType.JEWELLERY, "Amulet of Glory" , "Draynor Village", new WorldPoint(3105, 3251, 0), "amulet_of_glory_teleport_icon.png"), + AL_KHARID(TeleportType.JEWELLERY, "Amulet of Glory" , "Al-Kharid", new WorldPoint(3293, 3163, 0), "amulet_of_glory_teleport_icon.png"), + MISCELLANIA(TeleportType.JEWELLERY, "Ring of Wealth" , "Miscellania", new WorldPoint(2535, 3862, 0), "ring_of_wealth_teleport_icon.png"), + GRAND_EXCHANGE(TeleportType.JEWELLERY, "Ring of Wealth" , "Grand Exchange", new WorldPoint(3162, 3480, 0), "ring_of_wealth_teleport_icon.png"), + FALADOR_PARK(TeleportType.JEWELLERY, "Ring of Wealth" , "Falador Park", new WorldPoint(2995, 3375, 0), "ring_of_wealth_teleport_icon.png"), + DONDAKAN(TeleportType.JEWELLERY, "Ring of Wealth" , "Dondakan", new WorldPoint(2831, 10165, 0), "ring_of_wealth_teleport_icon.png"), + SLAYER_TOWER(TeleportType.JEWELLERY, "Slayer Ring" , "Slayer Tower", new WorldPoint(3429, 3531, 0), "slayer_ring_teleport_icon.png"), + FREMENNIK_SLAYER_DUNGEON(TeleportType.JEWELLERY, "Slayer Ring" , "Fremennik Slayer Dungeon", new WorldPoint(2800, 9998, 0), "slayer_ring_teleport_icon.png"), + TARNS_LAIR(TeleportType.JEWELLERY, "Slayer Ring" , "Tarn's Lair", new WorldPoint(3187, 4601, 0), "slayer_ring_teleport_icon.png"), + STRONGHOLD_SLAYER_CAVE(TeleportType.JEWELLERY, "Slayer Ring" , "Stronghold Slayer Cave", new WorldPoint(2433, 3421, 0), "slayer_ring_teleport_icon.png"), + DARK_BEASTS(TeleportType.JEWELLERY, "Slayer Ring" , "Dark Beasts", new WorldPoint(2028, 4638, 0), "slayer_ring_teleport_icon.png"), + DIGSITE(TeleportType.JEWELLERY, "Digsite Pendant" , "Digsite", new WorldPoint(3339, 3445, 0), "digsite_pendant_teleport_icon.png"), + HOUSE_ON_THE_HILL(TeleportType.JEWELLERY, "Digsite Pendant" , "House on the Hill", new WorldPoint(3763, 3869, 0), "digsite_pendant_teleport_icon.png"), + LITHKREN(TeleportType.JEWELLERY, "Digsite Pendant" , "Lithkren", new WorldPoint(3547, 10456, 0), "digsite_pendant_teleport_icon.png"), + WIZARDS_TOWER(TeleportType.JEWELLERY, "Necklace of Passage" , "Wizards' Tower", new WorldPoint(3114, 3181, 0), "necklace_of_passage_teleport_icon.png"), + JORRALS_OUTPOST(TeleportType.JEWELLERY, "Necklace of Passage" , "Jorral's Outpost", new WorldPoint(2431, 3348, 0), "necklace_of_passage_teleport_icon.png"), + DESERT_EAGLE_STATION(TeleportType.JEWELLERY, "Necklace of Passage" , "Desert eagle station of the eagle transport system", new WorldPoint(3406, 3157, 0), "necklace_of_passage_teleport_icon.png"), + CHAOS_TEMPLE(TeleportType.JEWELLERY, "Burning Amulet" , "Chaos Temple (lvl 15)", new WorldPoint(3234, 3637, 0), "burning_amulet_teleport_icon.png"), + BANDIT_CAMP(TeleportType.JEWELLERY, "Burning Amulet" , "Bandit Camp (lvl 17)", new WorldPoint(3038, 3651, 0), "burning_amulet_teleport_icon.png"), + LAVA_MAZE(TeleportType.JEWELLERY, "Burning Amulet" , "Lava Maze (lvl 41)", new WorldPoint(3028, 3840, 0), "burning_amulet_teleport_icon.png"); private final TeleportType type; private final String tooltip; - private final int magicLevel; private final WorldPoint location; private final String iconPath; - MagicTeleportLocationData(TeleportType type, String destination, int magicLevel, WorldPoint location, String iconPath) + TeleportLocationData(TeleportType type, String destination, int magicLevel, WorldPoint location, String iconPath) { this.type = type; this.tooltip = type.getPrefix() + " " + destination + " - lvl " + magicLevel; - this.magicLevel = magicLevel; + this.location = location; + this.iconPath = iconPath; + } + + TeleportLocationData(TeleportType type, String item, String destination, WorldPoint location, String iconPath) + { + this.type = type; + this.tooltip = item + " - " + destination; this.location = location; this.iconPath = iconPath; } diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/worldmap/MagicTeleportPoint.java b/runelite-client/src/main/java/net/runelite/client/plugins/worldmap/TeleportPoint.java similarity index 92% rename from runelite-client/src/main/java/net/runelite/client/plugins/worldmap/MagicTeleportPoint.java rename to runelite-client/src/main/java/net/runelite/client/plugins/worldmap/TeleportPoint.java index 24625461b0..e283bec935 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/worldmap/MagicTeleportPoint.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/worldmap/TeleportPoint.java @@ -30,12 +30,12 @@ import javax.imageio.ImageIO; import lombok.Getter; import net.runelite.client.ui.overlay.worldmap.WorldMapPoint; -class MagicTeleportPoint extends WorldMapPoint +class TeleportPoint extends WorldMapPoint { @Getter - private final MagicTeleportLocationData data; + private final TeleportLocationData data; - MagicTeleportPoint(MagicTeleportLocationData data) + TeleportPoint(TeleportLocationData data) { super(data.getLocation(), WorldMapPlugin.BLANK_ICON); diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/worldmap/TeleportType.java b/runelite-client/src/main/java/net/runelite/client/plugins/worldmap/TeleportType.java index f24099d0cf..4933d605bf 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/worldmap/TeleportType.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/worldmap/TeleportType.java @@ -33,7 +33,8 @@ public enum TeleportType NORMAL_MAGIC(""), ANCIENT_MAGICKS("Ancient - "), LUNAR_MAGIC("Lunar - "), - ARCEUUS_MAGIC("Arceuus - "); + ARCEUUS_MAGIC("Arceuus - "), + JEWELLERY("Jewellery - "); private String prefix; diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/worldmap/WorldMapPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/worldmap/WorldMapPlugin.java index 3bf131d31d..5d07707cb7 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/worldmap/WorldMapPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/worldmap/WorldMapPlugin.java @@ -142,20 +142,9 @@ public class WorldMapPlugin extends Plugin case CONFIG_KEY_ANCIENT_TELEPORT_ICON: case CONFIG_KEY_LUNAR_TELEPORT_ICON: case CONFIG_KEY_ARCEUUS_TELEPORT_ICON: - worldMapPointManager.removeIf(MagicTeleportPoint.class::isInstance); - createMagicTeleportPoints(); - break; case CONFIG_KEY_JEWELLERY_TELEPORT_ICON: - if (config.jewelleryTeleportIcon()) - { - Arrays.stream(JewelleryTeleportLocationData.values()) - .map(data -> new JewelleryTeleportPoint(data)) - .forEach(worldMapPointManager::add); - } - else - { - worldMapPointManager.removeIf(JewelleryTeleportPoint.class::isInstance); - } + worldMapPointManager.removeIf(TeleportPoint.class::isInstance); + createMagicTeleportPoints(); break; } } @@ -182,17 +171,11 @@ public class WorldMapPlugin extends Plugin if (config.normalTeleportIcon() || config.ancientTeleportIcon() || config.lunarTeleportIcon() - || config.arceuusTeleportIcon()) + || config.arceuusTeleportIcon() + || config.jewelleryTeleportIcon()) { createMagicTeleportPoints(); } - - if (config.jewelleryTeleportIcon()) - { - Arrays.stream(JewelleryTeleportLocationData.values()) - .map(data -> new JewelleryTeleportPoint(data)) - .forEach(worldMapPointManager::add); - } } @Override @@ -200,8 +183,7 @@ public class WorldMapPlugin extends Plugin { worldMapPointManager.removeIf(FairyRingPoint.class::isInstance); worldMapPointManager.removeIf(AgilityShortcutPoint.class::isInstance); - worldMapPointManager.removeIf(MagicTeleportPoint.class::isInstance); - worldMapPointManager.removeIf(JewelleryTeleportPoint.class::isInstance); + worldMapPointManager.removeIf(TeleportPoint.class::isInstance); } @Subscribe @@ -224,7 +206,7 @@ public class WorldMapPlugin extends Plugin private void createMagicTeleportPoints() { - Arrays.stream(MagicTeleportLocationData.values()) + Arrays.stream(TeleportLocationData.values()) .filter(data -> { switch (data.getType()) @@ -237,10 +219,12 @@ public class WorldMapPlugin extends Plugin return config.lunarTeleportIcon(); case ARCEUUS_MAGIC: return config.arceuusTeleportIcon(); + case JEWELLERY: + return config.jewelleryTeleportIcon(); default: return false; } - }).map(MagicTeleportPoint::new) + }).map(TeleportPoint::new) .forEach(worldMapPointManager::add); } } From dbef04bd6fd982aee2a9a05b6c9a15a7d42497ef Mon Sep 17 00:00:00 2001 From: Adam Date: Sun, 27 May 2018 14:54:19 -0400 Subject: [PATCH 2/2] world map plugin: add misc teleports --- .../worldmap/TeleportLocationData.java | 18 +++++++- .../client/plugins/worldmap/TeleportType.java | 3 +- .../plugins/worldmap/WorldMapConfig.java | 11 +++++ .../plugins/worldmap/WorldMapPlugin.java | 7 ++- .../worldmap/chronicle_teleport_icon.png | Bin 0 -> 17499 bytes .../worldmap/ectophial_teleport_icon.png | Bin 0 -> 17305 bytes .../worldmap/enchanted_lyre_teleport_icon.png | Bin 0 -> 17393 bytes .../worldmap/mythical_cape_teleport_icon.png | Bin 0 -> 17472 bytes .../worldmap/royal_seed_pod_teleport_icon.png | Bin 0 -> 17371 bytes .../worldmap/skull_sceptre_teleport_icon.png | Bin 0 -> 15249 bytes .../xerics_talisman_teleport_icon.png | Bin 0 -> 15340 bytes .../worldmap/TeleportLocationDataTest.java | 43 ++++++++++++++++++ 12 files changed, 79 insertions(+), 3 deletions(-) create mode 100644 runelite-client/src/main/resources/net/runelite/client/plugins/worldmap/chronicle_teleport_icon.png create mode 100644 runelite-client/src/main/resources/net/runelite/client/plugins/worldmap/ectophial_teleport_icon.png create mode 100644 runelite-client/src/main/resources/net/runelite/client/plugins/worldmap/enchanted_lyre_teleport_icon.png create mode 100644 runelite-client/src/main/resources/net/runelite/client/plugins/worldmap/mythical_cape_teleport_icon.png create mode 100644 runelite-client/src/main/resources/net/runelite/client/plugins/worldmap/royal_seed_pod_teleport_icon.png create mode 100644 runelite-client/src/main/resources/net/runelite/client/plugins/worldmap/skull_sceptre_teleport_icon.png create mode 100644 runelite-client/src/main/resources/net/runelite/client/plugins/worldmap/xerics_talisman_teleport_icon.png create mode 100644 runelite-client/src/test/java/net/runelite/client/plugins/worldmap/TeleportLocationDataTest.java diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/worldmap/TeleportLocationData.java b/runelite-client/src/main/java/net/runelite/client/plugins/worldmap/TeleportLocationData.java index a859345b4f..76548081bf 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/worldmap/TeleportLocationData.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/worldmap/TeleportLocationData.java @@ -109,7 +109,23 @@ enum TeleportLocationData DESERT_EAGLE_STATION(TeleportType.JEWELLERY, "Necklace of Passage" , "Desert eagle station of the eagle transport system", new WorldPoint(3406, 3157, 0), "necklace_of_passage_teleport_icon.png"), CHAOS_TEMPLE(TeleportType.JEWELLERY, "Burning Amulet" , "Chaos Temple (lvl 15)", new WorldPoint(3234, 3637, 0), "burning_amulet_teleport_icon.png"), BANDIT_CAMP(TeleportType.JEWELLERY, "Burning Amulet" , "Bandit Camp (lvl 17)", new WorldPoint(3038, 3651, 0), "burning_amulet_teleport_icon.png"), - LAVA_MAZE(TeleportType.JEWELLERY, "Burning Amulet" , "Lava Maze (lvl 41)", new WorldPoint(3028, 3840, 0), "burning_amulet_teleport_icon.png"); + LAVA_MAZE(TeleportType.JEWELLERY, "Burning Amulet" , "Lava Maze (lvl 41)", new WorldPoint(3028, 3840, 0), "burning_amulet_teleport_icon.png"), + + // Misc + XERICS_LOOKOUT(TeleportType.OTHER, "Xeric's Talisman", "Xeric's Lookout", new WorldPoint(1576, 3528, 0), "xerics_talisman_teleport_icon.png"), + XERICS_GLADE(TeleportType.OTHER, "Xeric's Talisman", "Xeric's Glade", new WorldPoint(1773, 3502, 0), "xerics_talisman_teleport_icon.png"), + XERICS_INFERNO(TeleportType.OTHER, "Xeric's Talisman", "Xeric's Inferno", new WorldPoint(1504, 3819, 0), "xerics_talisman_teleport_icon.png"), + XERICS_HEART(TeleportType.OTHER, "Xeric's Talisman", "Xeric's Heart", new WorldPoint(1641, 3670, 0), "xerics_talisman_teleport_icon.png"), + XERICS_HONOUR(TeleportType.OTHER, "Xeric's Talisman", "Xeric's Honour", new WorldPoint(1254, 3559, 0), "xerics_talisman_teleport_icon.png"), + STRONGHOLD_OF_SECURITY(TeleportType.OTHER, "Skull Sceptre", "Stronghold of Security", new WorldPoint(3081, 3421, 0), "skull_sceptre_teleport_icon.png"), + MYTHS_GUILD(TeleportType.OTHER, "Mythical Cape", "Myth's Guild", new WorldPoint(2458, 2851, 0), "mythical_cape_teleport_icon.png"), + ECTOFUNTUS(TeleportType.OTHER, "Ectophial", "Ectofuntus", new WorldPoint(3660, 3522, 0), "ectophial_teleport_icon.png"), + CHAMPIONS_GUILD_CHRONICLE(TeleportType.OTHER, "Chronicle", "Champion's Guild", new WorldPoint(3202, 3357, 0), "chronicle_teleport_icon.png"), + GRAND_TREE(TeleportType.OTHER, "Royal Seed Pod", "Grand Tree", new WorldPoint(2465, 3495, 0), "royal_seed_pod_teleport_icon.png"), + RELLEKKKA_LYRE(TeleportType.OTHER, "Enchanted Lyre", "Rellekka", new WorldPoint(2664, 3643, 0), "enchanted_lyre_teleport_icon.png"), + WATERBIRTH_ISLAND_LYRE(TeleportType.OTHER, "Enchanted Lyre", "Waterbirth Island", new WorldPoint(2550, 3756, 0), "enchanted_lyre_teleport_icon.png"), + NEITIZNOT_LYRE(TeleportType.OTHER, "Enchanted Lyre", "Neitiznot", new WorldPoint(2336, 3801, 0), "enchanted_lyre_teleport_icon.png"), + JATIZSO_LYRE(TeleportType.OTHER, "Enchanted Lyre", "Jatizso", new WorldPoint(2409, 3809, 0), "enchanted_lyre_teleport_icon.png"); private final TeleportType type; private final String tooltip; diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/worldmap/TeleportType.java b/runelite-client/src/main/java/net/runelite/client/plugins/worldmap/TeleportType.java index 4933d605bf..fcccbe894c 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/worldmap/TeleportType.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/worldmap/TeleportType.java @@ -34,7 +34,8 @@ public enum TeleportType ANCIENT_MAGICKS("Ancient - "), LUNAR_MAGIC("Lunar - "), ARCEUUS_MAGIC("Arceuus - "), - JEWELLERY("Jewellery - "); + JEWELLERY("Jewellery - "), + OTHER(""); private String prefix; diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/worldmap/WorldMapConfig.java b/runelite-client/src/main/java/net/runelite/client/plugins/worldmap/WorldMapConfig.java index b8bf487f80..57ce2a9406 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/worldmap/WorldMapConfig.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/worldmap/WorldMapConfig.java @@ -134,4 +134,15 @@ public interface WorldMapConfig extends Config { return true; } + + @ConfigItem( + keyName = WorldMapPlugin.CONFIG_KEY_MISC_TELEPORT_ICON, + name = "Show misc teleport locations", + description = "Show icons at the destinations for miscellaneous teleport items", + position = 10 + ) + default boolean miscellaneousTeleportIcon() + { + return true; + } } diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/worldmap/WorldMapPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/worldmap/WorldMapPlugin.java index 5d07707cb7..c6199c50cd 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/worldmap/WorldMapPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/worldmap/WorldMapPlugin.java @@ -61,6 +61,7 @@ public class WorldMapPlugin extends Plugin static final String CONFIG_KEY_LUNAR_TELEPORT_ICON = "lunarSpellbookIcon"; static final String CONFIG_KEY_ARCEUUS_TELEPORT_ICON = "arceuusSpellbookIcon"; static final String CONFIG_KEY_JEWELLERY_TELEPORT_ICON = "jewelleryIcon"; + static final String CONFIG_KEY_MISC_TELEPORT_ICON = "miscellaneousTeleportIcon"; static { @@ -143,6 +144,7 @@ public class WorldMapPlugin extends Plugin case CONFIG_KEY_LUNAR_TELEPORT_ICON: case CONFIG_KEY_ARCEUUS_TELEPORT_ICON: case CONFIG_KEY_JEWELLERY_TELEPORT_ICON: + case CONFIG_KEY_MISC_TELEPORT_ICON: worldMapPointManager.removeIf(TeleportPoint.class::isInstance); createMagicTeleportPoints(); break; @@ -172,7 +174,8 @@ public class WorldMapPlugin extends Plugin || config.ancientTeleportIcon() || config.lunarTeleportIcon() || config.arceuusTeleportIcon() - || config.jewelleryTeleportIcon()) + || config.jewelleryTeleportIcon() + || config.miscellaneousTeleportIcon()) { createMagicTeleportPoints(); } @@ -221,6 +224,8 @@ public class WorldMapPlugin extends Plugin return config.arceuusTeleportIcon(); case JEWELLERY: return config.jewelleryTeleportIcon(); + case OTHER: + return config.miscellaneousTeleportIcon(); default: return false; } diff --git a/runelite-client/src/main/resources/net/runelite/client/plugins/worldmap/chronicle_teleport_icon.png b/runelite-client/src/main/resources/net/runelite/client/plugins/worldmap/chronicle_teleport_icon.png new file mode 100644 index 0000000000000000000000000000000000000000..0b2150cb81d273053fd9a473756177a210ca2c44 GIT binary patch literal 17499 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 literal 0 HcmV?d00001 diff --git a/runelite-client/src/main/resources/net/runelite/client/plugins/worldmap/ectophial_teleport_icon.png b/runelite-client/src/main/resources/net/runelite/client/plugins/worldmap/ectophial_teleport_icon.png new file mode 100644 index 0000000000000000000000000000000000000000..4c2bdd068f50d4532064e7a45043398c8f591ea8 GIT binary patch literal 17305 zcmeI4eQ4Zd7{F5;;wn>Dht8prWhfJu%h%O|?iAmaC zSMg(0u~VGr6sPk8|Ck_C@C(IFi}>}2FhTKK1V!)@L}ZA}uQ!)_@6zjazH>|w-h=CN zee-RA28U3tE@7QWUkIr#sgV<>}$~l#}7#l^@)DDHQYF?u|Z0oqA^Y zZJ{36yO^Rnf42q(gTee|s_v8$n&A{cqFi#JHbrGtm0e9A0RdeALzdma{CHrRp)I3> z*&yfnyxRqat?q3eShuZrK;Jf^D+aSF+nOn>&_M|V8eJ|GZC@>SFcrTl{2dN+3|&zP zMmm_zFd#jc@1wgM572T#W_4Z^=(Lg$WI3G{SI{CaBspH-1c?!ilT75$cZ8gHCTVb4zx0B`^zFH$WIRV zx@Wn8<=AxSS1UN9K?lQxfoh-Xyh?5@knLC5L5f^ib2%ZwbIptly=LQ%dd14A89E1w zpakr|hjv0!J9pR#9DmrEBV_IHoPl9Z^7&fqrsrEKH4W_tYsMggD$=Hw{=kF_xPIU} zqn-}djKQfaYc_j7=m+)eV7P+nO&tZ6IftL{$ea*B*_y*FJQA5z)>M@041}h3c|Z#s zZ@_Vi*=V`;pDiHJexcMyCIY%E2Hy(5y)hNT!q5Jx2iAhaJN|MZK zf*`VjkS?$aNE)mu3Yw%#Mmi+`6e#9wR-ns03zkr=7}E*oV!&X~lc*`}CM(DSoQtjl zR#DOdE15tr__QIL3M3VwXyRs8sBX)L>vbZwj^S#q6v=hq+L@#1K+&ocJ6H335N_oT z2JPiqb*vS?(56xnR80@dWL6J12!Oa}jMh)9W?40}W~UPmLF7MXK6i}qVPGF^dqu7) zT5~(`9Wxl$JkU7=R|wwTkNnOwYz&a$!V62$IuWUG>@naSOEO@}HF!}5o}V>6r$pEG zF&#Lx=DI~o*TO7wW42Mf#ML$j%6QDjzc^Q48#}&5XYxux6U-EArVAnq3x~oMw3NiQ zE0QRfz|$Ci zO#=seFnCX;#<-)F8eRplN@|1ojH^b~J8Ys+SAA?vZgg@n^Jd_ME1Ym}nF}1%eNtxY`q_SkBNsI{~sjqZ8m9xg)+P7AB-ba3K;{lHkI^gp>#_L;_0^Tv(Wp62XN?U`c`t z3lmZzxDW{}NpN9dLP`V|B7r3dE-Xw)iQqycuq45Sg$XGUT!;jgJSwi%`a2zf4PWFi z4&T_oytw-<__haH@9xi2)V2#K>c$-u_3NKdeoIlKJVkxCm7>)9De7$J?k#VurKpy( zdUBlu0zxIv~mTX=$s4w2NYZLR#eDh=D z<+i0gZPZ@>tBKzA>!~fwNXz^4S`PlQc;t+Qmu|Rz$Kip)H}AajnKz&M;;|pD>6EYf ze&=&*4?a4ud3x-0_4ZTtecgUw`YY?#C5yf}cjZpz(Bm8S9=y`M&foc6sbzA(hd-}; z_tm>@*d`xj1Acm0+) z^3z@8&%VBA`)e=naBu6H|K2A3$isW~ymyJzf71TvpS*e0Jh1TwWAezB!wU8JeUsNe Ua$w%A;mb36*7W9{TD^7qUm0um82|tP literal 0 HcmV?d00001 diff --git a/runelite-client/src/main/resources/net/runelite/client/plugins/worldmap/enchanted_lyre_teleport_icon.png b/runelite-client/src/main/resources/net/runelite/client/plugins/worldmap/enchanted_lyre_teleport_icon.png new file mode 100644 index 0000000000000000000000000000000000000000..7e0e6029fbd9172d01de0e91284e5ba77244bc39 GIT binary patch literal 17393 zcmeI4e~c8>9l*z*m7`P-+mvDmlciQsXXnT6?A{E!Yv2~xBQ74tYL9CaW@p~qP1v2; z&dl8|*CrUi<}R)NK`FK9H92YPj}nSBB~?^nk%FN;nzWcygGvo)Y-lKgjkdM+&Cb5v zxxGDnNT@M+8}`1-o9~Z#pYMC$`Of??qunc)&uW|7Mp4wPu1vZI%Im%Fb=Shbi(dV~ z3MgijGHV=)nt7x5y@J~D*c^&l{GpNSb$hdS$*NThE1H!D;YzUtwJ9obXQia5>w!z> zLBC-pLud9M2+@X?41Hb9a@kTR7%(!!HdsBpGN%r&S0ycUXR0kxk)eYka22{zESQd5 zNrtL^W%%10WFw99dTaVrHe2c}Fp&fVW z5JXTz+S1a=Z72b@2RPQCt%9XPa4HL0&E9c)KqEUCuAq8LN3NkyLStBO(jlzo3tRX0s2t6*a|Gu)G9y z1Aa7B)-AiJxGAHk^aHkJ_9xiJU_i6JK;=%WVA=4rKq``8TMY-Ss*6_cG96bjRnV1A z!GW-0XtJ1(iYgB{M$mbIiE$iRw2msoY&K{<#dX?J2fd94UHdgk zvsCE5aaw}Z5#@L_#wa`=XW%!_NFb^)y1*+DHKN61JV1d0&ZY#q+csbcRSE$eZ!Q`P z20aOi)S)xH$SX`#RRJSOah{3jfY-RVCh8I-<)difW=g1x;lTB}A+V0&YOWT^)!>_x zN6~?TQ7v{Q#dd(Vm6IW~m+RHBUi>_pYDth4)hm-J)!QIIOR$qh8>dybteF{8(}{<` z_a88yK1O)}m>1e!zN@O%^iCX0cguoG=;=V1*IC5g!^u?W*4MFd_4x+>{;G{sN0=ma?ulesvm$Dih+YwTKeKr#D)mSWM| z(7ndJv=5HvnH&J)wcLkF>G}QG??dZHa z3E0}E{q?!byK;L?1zdk0)4;(V4Bk`80q&@!#x1E$=98`(HSe&AMqTyAHM#!D1txY@K}d5>whDWMjvX*giz-3j|QX{+JWACQWPVnj@^&BM(W-9`lz zdea8Hn{vFn0v_2kA82W~W;(;bftsPeQ3B6ts)_MO;Zq>^0E(?YfePdd?X$}u8#B5L z&XG$J1d+g!1Q!-2q(pEb5?GSp!oq}<2rfhdOA=gIn2-{|g-BpYf(r{1QX;qz2`ou) zVPQf_1Q#NKB?&GpOh}2~LL{&x!G(nhDG^+V1ePSYurMJdf(wzrk^~nPCZt4gAre@U z;KIU$ln5?F0!tEHSeTF!!G%a*NrDRt6H+3$5D6?vaA9FWN(2`ofh7qpEKEp=;6fy@ zB*BG+2`Ld=hy<1-xUeuGC4vi)z>)+P7AB-ba3K;{lHkI^gp>#_L;_0^Tv(Wp62XN? zV95*OYHPgH0hsVb4rTbphTH5v<>1>MXf@N5rKsVXDe8gE6!pPJP`*P^gB(TuZ5>6) zk5JT?t*vVhEu*L_%&zp}T;;W0-`~$(y=u;(jpg6%9{bh)!jbUow(UF8Ps|mM1%)9Tz%lT*4F5mmPDEklf^!}TM z_Qf`y-uv9?nS=KCZrC)U?0I3|Z%%zM`25!A5BzNRGY{@L`NXchJ6;+;dG|xNBo-w{ z!}H!fPpzE$@b%>xTXvp5|IYN+_8Ka_v;Cntzn-{J7<>HL@oh^EY~I%MO5f;h zy?veUp4#$wX=LEm2acROIdgmE@H@x%9RKOki7&i**7(Zq`SYIp*R>;u-(GR>zdwI{ g<45E(-bD;nlr{W#jX;;cz4#``tJ7F z-SZ18O@NS+meP`tl8^|gQBf3>KtpJo5>&Z`Qd&^{NZJrUNL5Lyq;aBFsc4E)I(v6> zw?3cAP>V*9=A`p?p8Xy>zi;N-Z}*Sg-qw2e+{!OjG7K}fr8(A)mDi)Ib>4M>I3G_p!aluu#DpCqt)0q9zapvL`eb%t77-pc^jO7p00SCr_nH>Cr}$;6_cqnyO!h1g}!H<>IO z+OnGl5Q03?vX)loa2j&$&@wWn0-FZVRI19&-m=?aF*^jVka}51wysU#$2l@31URHm zVdfmknPt~hF4YkPO>Q(Hunn`*FcQ(+a&5!8@H94Nm#62BI8gMIlc41huGFZwbc+69 z4A?M=mUfus1FRVA6nNPu$v%G#`oZ%qCppa$A8|v~wc$xVMA;XVeWKfkOS9Am+KMW$ z0g)HCuFH?A$eLj$fgRP8pciuKRBwbU4!Sf83si125{8LR3r2kruH3N8D!XXqmXu|K zlmc5~Q8ZAi>#D5wsGdpgnC#B`c+mF1>jSBYA7f`9LVKtQlQnQj!Gy^lY(91Ji=eR<85nyq2b1Ia!2Rf zNyOuFEVn*aI#+I|sX*)R6B;@-D!xb}i!EWXh-)M}1+oJBkVsZqk^`TlQF&(^Drh*`7Hh^60|} z&fmPL`*5jg_q9#khf7V1mTObG9ToG@N`_rl&Yf`XCanWK{ejV7Am9r`xYFTLi#B}- zCc0uex|_0`y8;2*lpZK+*gch@>ps{N)#6+K_n?IB1~9`;=&|| zB*jI92`f=tm;{lexQH-eC5j7^Ad(ap5hkoeabXfflHwx5gq0{ROoB*KTtt|#62*l{ z5J`%Q2oqMKxG)JKNpTTj!b%huCP5@AE+R}=iQ>W}h$O{Dgb6EAT$lurq_~JMVI_(S zlOU4U#8p{*rvpr(7dZ@~H#Y1GUO125_TW*P+v5x~Qq3?AY+;y>t|Ivk!(@1dd3OWD z$a@&(R%6%t6Dt{};#fyb5;?cUDUs$tn+diM~^vu8UiL)n|1yyS*Z&6-)v8m?y z@9p0H(Dwg`ay*e>_pGYfv7`TIXOAEH*Ml$oPP}8q>61s^tQhERHJ{w{s&#SG>WfvE zwmtja6T9wNd)uWe$L5@S=fWBP599npOCOo_o9b;Hr;|VK^fKp$=YMUB{}{7Q`zS_uuv4tooDR9zGh{5M8qI;IZ$fy7xT3TmQ#%=bPI9m<}q78ZV!j`Qg&H zTVH!?)%=%d*kq-@3egw*+2H!;J$gY=RW-J6JP!L z-t&*0*?M_q<8Q}qAOFUV&B?>Uc;*+?KiWG!WB>7c|GD*>r#|OT-FFczST=g$151=z zL3RI4Pu)NE)0f+qzZeR8zh5=~_J)nm{2A>1{QLEzTidtyef0jqftuTP#YV4uc|LpV z11lF--+Lf@KxB_x7|zVu^7T7wKYnKRs^yE8S#w^yH1?NeH4iW8-??;`eDd-p&*qMo zgv`@peZN2a*VXGXZ$7=I@+S)qu74$R-wzHyanX4DY6Vlj=;+>4brwo0!?ZND#$LE< H!{+}2p)5+2 literal 0 HcmV?d00001 diff --git a/runelite-client/src/main/resources/net/runelite/client/plugins/worldmap/royal_seed_pod_teleport_icon.png b/runelite-client/src/main/resources/net/runelite/client/plugins/worldmap/royal_seed_pod_teleport_icon.png new file mode 100644 index 0000000000000000000000000000000000000000..45c7913260350b11d7de318739a51420f3838990 GIT binary patch literal 17371 zcmeI4du-f98o=FxDw@(3)GI9|=*;p^5%K!5uh?uB!frwWY)I1}Qh_L5dz_f=+QxR0 zZO}oLA_RA(LO{hs6+*lby`D~YMM6AMT2WL1EeOg>EmQ~uR4T{u5(Oa`+dI3?W>cnA z1tHB!n{PAoecyO~^UddP{D*Jr?YVev(~>5NqULsY<@%tU?|o001^=G^_J&KKm~C~f za42fd0`EJ6x_{$hifaE!?;mgn@|Q`9S&GW4Spd;;$%5JxmA;^C$;v9=(giT68*P#Q zJv$Mhb+s*WWg^eztt=SQyT)v=e5|Km8C#`@YUF}UQ@Sic2PNRjbh%VC9I4zE@%>8h zx7W-@XkW!$)fQ>@2BZh_y>!;J0iB2@7=;sfIweN=L?V?ET4;ge<1ELse2n2mDIS+N zj;?$nnI`xvZL6Bpm+Pzy2mfn}47si)vFzyRXmm6dHSIx`7e$ff1Xd6jsKGd^4OcER zhI3}%1o_DUN3nIw)lGx;{K^G$*lmkMyn(8p%DhTebs)p3u!9uYvTU(@lw%tisY=zx z8n%o6rKt)Fil77x*MW9?Lpy88bWLZ-oMy;s_p}4UHOc3zV>i6sQmNt4j@vN;5mb;i zv~>DcTY&8YjyY^ApkoA1<;+I2cicWuTOABnP`#leSJ$TT7{vD(G72b&P}uRMzzqX`2#uG1sNFHtqhl7 zgk(R@Nik81#m|F3I4 znrWA0H=~#2LBLwZV4AHphBT`IDrL>0X~W9`nOK@_)Eu(%gI4M`99K3J(4EV`hN!Nq zl9m)ixd2)jEv3jzJSlRFtO+8M(nL@Y1t7F4f)6pD51UVMoimkTZ{tDNL5@;Q1-h?Y zR;v~<8a$6aOG=F@5C`RcT~1P`yh-EyuBazoorY?K$`V#EJgiTEQM)|0Q*Q511`A? zZ_2=SGMa6c=;}VEU6YnAtEelox615@p;m5j)y;ucJmlkdoU0>`99__9oLG=~EeUf- zL15wuQDh2oGRCxuF@e{BrifYrP4Tw{ogl@M5|={x_>T;_+OAcGWMdGh85YeAHT;>@ zPH9z=FvqJ*LemtO|ACkP0nfzaDP9GsWIQfZ6Vh*6ySjTRS-WbwKk6LwD`~~cJk>OW zg7lBcF)Fb2BgrzMt5gss+Rv+ho;e?VUd5`-f(=FXCaR8ts$g=3hN`})6`gmIfTe9N zh|f;%&g~TyF#dj}fP*y{JX1*_?x>{3O{sO}lkOT7@34qQRrQe-xxvMS%o}+(kG7N! zMrq)tHX0%y0vsyW(%vCcg0(oT3;pUS!>8FPZ6R-d-+)(B7l-|tIVEuL!}8wWifOpJ z-gL#`O~c*wrZvke4BgGZQ;~l$b^0E(?XfeNh|+Goc=)@F1JoFkWH z5JUn?5?olAkP^X#NMK2V3kwrcBDfFPsF>&7xy?JBbs%_j4*)6?&*PVQK$AcZmKi{5v zeZeH-5?)XPrFvzn|~kw)Dh@TKZqzArvj6XU$!)&q+VNiib>tlp literal 0 HcmV?d00001 diff --git a/runelite-client/src/main/resources/net/runelite/client/plugins/worldmap/skull_sceptre_teleport_icon.png b/runelite-client/src/main/resources/net/runelite/client/plugins/worldmap/skull_sceptre_teleport_icon.png new file mode 100644 index 0000000000000000000000000000000000000000..085cb93dbb34ece6ba166656267c2f1009d280f4 GIT binary patch literal 15249 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 VCFRR@mD|tbHr6$TUtH1g$lo9N(~AHA literal 0 HcmV?d00001 diff --git a/runelite-client/src/test/java/net/runelite/client/plugins/worldmap/TeleportLocationDataTest.java b/runelite-client/src/test/java/net/runelite/client/plugins/worldmap/TeleportLocationDataTest.java new file mode 100644 index 0000000000..2c52d0ae4f --- /dev/null +++ b/runelite-client/src/test/java/net/runelite/client/plugins/worldmap/TeleportLocationDataTest.java @@ -0,0 +1,43 @@ +/* + * Copyright (c) 2018, Adam + * 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 HOLDER 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.worldmap; + +import static org.junit.Assert.assertNotNull; +import org.junit.Test; + +public class TeleportLocationDataTest +{ + @Test + public void testResources() + { + for (TeleportLocationData data : TeleportLocationData.values()) + { + String path = data.getIconPath(); + assertNotNull(path); + assertNotNull(path, getClass().getResourceAsStream(path)); + } + } +} \ No newline at end of file