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 new file mode 100644 index 0000000000..c53092a808 --- /dev/null +++ b/runelite-client/src/main/java/net/runelite/client/plugins/worldmap/JewelleryTeleportLocationData.java @@ -0,0 +1,87 @@ +/* + * 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.ItemID; +import net.runelite.api.coords.WorldPoint; + +@Getter +enum JewelleryTeleportLocationData +{ + BARBARIAN_ASSAULT(ItemID.GAMES_NECKLACE8, "Barbarian Assault", new WorldPoint(2520, 3571, 0), "games_necklace_teleport_icon.png"), + BURTHORPE_GAMES_ROOM(ItemID.GAMES_NECKLACE8, "Burthorpe Games Room", new WorldPoint(2898, 3554, 0), "games_necklace_teleport_icon.png"), + TEARS_OF_GUTHIX(ItemID.GAMES_NECKLACE8, "Tears of Guthix", new WorldPoint(3245, 9500, 0), "games_necklace_teleport_icon.png"), + CORPOREAL_BEAST(ItemID.GAMES_NECKLACE8, "Corporeal Beast", new WorldPoint(2967, 4384, 0), "games_necklace_teleport_icon.png"), + WINTERTODT_CAMP(ItemID.GAMES_NECKLACE8, "Wintertodt Camp", new WorldPoint(1624, 3938, 0), "games_necklace_teleport_icon.png"), + DUEL_ARENA(ItemID.RING_OF_DUELING8, "Duel Arena", new WorldPoint(3315, 3235, 0), "ring_of_dueling_teleport_icon.png"), + CLAN_WARS(ItemID.RING_OF_DUELING8, "Clan Wars", new WorldPoint(3387, 3158, 0), "ring_of_dueling_teleport_icon.png"), + CASTLE_WARS(ItemID.RING_OF_DUELING8, "Castle Wars", new WorldPoint(2441, 3091, 0), "ring_of_dueling_teleport_icon.png"), + WARRIORS_GUILD(ItemID.COMBAT_BRACELET6, "Warriors' Guild", new WorldPoint(2883, 3549, 0), "combat_bracelet_teleport_icon.png"), + CHAMPIONS_GUILD(ItemID.COMBAT_BRACELET6, "Champions' Guild", new WorldPoint(3189, 3368, 0), "combat_bracelet_teleport_icon.png"), + EDGEVILLE_MONASTERY(ItemID.COMBAT_BRACELET6, "Edgeville Monastery", new WorldPoint(3053, 3487, 0), "combat_bracelet_teleport_icon.png"), + RANGING_GUILD(ItemID.COMBAT_BRACELET6, "Ranging Guild", new WorldPoint(2654, 3441, 0), "combat_bracelet_teleport_icon.png"), + FISHING_GUILD(ItemID.SKILLS_NECKLACE6, "Fishing Guild", new WorldPoint(2613, 3390, 0), "skills_necklace_teleport_icon.png"), + MINING_GUILD(ItemID.SKILLS_NECKLACE6, "Mining Guild", new WorldPoint(3049, 9762, 0), "skills_necklace_teleport_icon.png"), + CRAFTING_GUILD(ItemID.SKILLS_NECKLACE6, "Crafting Guild", new WorldPoint(2934, 3294, 0), "skills_necklace_teleport_icon.png"), + COOKING_GUILD(ItemID.SKILLS_NECKLACE6, "Cooking Guild", new WorldPoint(3145, 3438, 0), "skills_necklace_teleport_icon.png"), + WOODCUTTING_GUILD(ItemID.SKILLS_NECKLACE6, "Woodcutting Guild", new WorldPoint(1662, 3505, 0), "skills_necklace_teleport_icon.png"), + EDGEVILLE(ItemID.AMULET_OF_GLORY, "Edgeville", new WorldPoint(3087, 3496, 0), "amulet_of_glory_teleport_icon.png"), + KARAMJA(ItemID.AMULET_OF_GLORY, "Karamja", new WorldPoint(2918, 3176, 0), "amulet_of_glory_teleport_icon.png"), + DRAYNOR_VILLAGE(ItemID.AMULET_OF_GLORY, "Draynor Village", new WorldPoint(3105, 3251, 0), "amulet_of_glory_teleport_icon.png"), + AL_KHARID(ItemID.AMULET_OF_GLORY, "Al-Kharid", new WorldPoint(3293, 3163, 0), "amulet_of_glory_teleport_icon.png"), + MISCELLANIA(ItemID.AMULET_OF_GLORY, "Miscellania", new WorldPoint(2535, 3862, 0), "ring_of_wealth_teleport_icon.png"), + GRAND_EXCHANGE(ItemID.RING_OF_WEALTH, "Grand Exchange", new WorldPoint(3162, 3480, 0), "ring_of_wealth_teleport_icon.png"), + FALADOR_PARK(ItemID.RING_OF_WEALTH, "Falador Park", new WorldPoint(2995, 3375, 0), "ring_of_wealth_teleport_icon.png"), + DONDAKAN(ItemID.RING_OF_WEALTH, "Dondakan", new WorldPoint(2831, 10165, 0), "ring_of_wealth_teleport_icon.png"), + SLAYER_TOWER(ItemID.SLAYER_RING_8, "Slayer Tower", new WorldPoint(3429, 3531, 0), "slayer_ring_teleport_icon.png"), + FREMENNIK_SLAYER_DUNGEON(ItemID.SLAYER_RING_8, "Fremennik Slayer Dungeon", new WorldPoint(2800, 9998, 0), "slayer_ring_teleport_icon.png"), + TARNS_LAIR(ItemID.SLAYER_RING_8, "Tarn's Lair", new WorldPoint(3187, 4601, 0), "slayer_ring_teleport_icon.png"), + STRONGHOLD_SLAYER_CAVE(ItemID.SLAYER_RING_8, "Stronghold Slayer Cave", new WorldPoint(2433, 3421, 0), "slayer_ring_teleport_icon.png"), + DARK_BEASTS(ItemID.SLAYER_RING_8, "Dark Beasts", new WorldPoint(2028, 4638, 0), "slayer_ring_teleport_icon.png"), + DIGSITE(ItemID.DIGSITE_PENDANT_5, "Digsite", new WorldPoint(3339, 3445, 0), "digsite_pendant_teleport_icon.png"), + HOUSE_ON_THE_HILL(ItemID.DIGSITE_PENDANT_5, "House on the Hill", new WorldPoint(3763, 3869, 0), "digsite_pendant_teleport_icon.png"), + LITHKREN(ItemID.DIGSITE_PENDANT_5, "Lithkren", new WorldPoint(3547, 10456, 0), "digsite_pendant_teleport_icon.png"), + WIZARDS_TOWER(ItemID.NECKLACE_OF_PASSAGE5, "Wizards' Tower", new WorldPoint(3114, 3181, 0), "necklace_of_passage_teleport_icon.png"), + JORRALS_OUTPOST(ItemID.NECKLACE_OF_PASSAGE5, "Jorral's Outpost", new WorldPoint(2431, 3348, 0), "necklace_of_passage_teleport_icon.png"), + DESERT_EAGLE_STATION(ItemID.NECKLACE_OF_PASSAGE5, "Desert eagle station of the eagle transport system", new WorldPoint(3406, 3157, 0), "necklace_of_passage_teleport_icon.png"), + CHAOS_TEMPLE(ItemID.BURNING_AMULET5, "Chaos Temple (lvl 15)", new WorldPoint(3234, 3637, 0), "burning_amulet_teleport_icon.png"), + BANDIT_CAMP(ItemID.BURNING_AMULET5, "Bandit Camp (lvl 17)", new WorldPoint(3038, 3651, 0), "burning_amulet_teleport_icon.png"), + LAVA_MAZE(ItemID.BURNING_AMULET5, "Lava Maze (lvl 41)", new WorldPoint(3028, 3840, 0), "burning_amulet_teleport_icon.png"); + + private final int itemID; + private final String destionation; + private final WorldPoint location; + private final String iconPath; + + JewelleryTeleportLocationData(int itemID, String destination, WorldPoint location, String iconPath) + { + this.itemID = itemID; + this.destionation = 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 new file mode 100644 index 0000000000..75931f44c2 --- /dev/null +++ b/runelite-client/src/main/java/net/runelite/client/plugins/worldmap/JewelleryTeleportPoint.java @@ -0,0 +1,56 @@ +/* + * 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.game.ItemManager; +import net.runelite.client.ui.overlay.worldmap.WorldMapPoint; + +class JewelleryTeleportPoint extends WorldMapPoint +{ + @Getter + private final JewelleryTeleportLocationData data; + + JewelleryTeleportPoint(JewelleryTeleportLocationData data, ItemManager itemManager) + { + super(data.getLocation(), WorldMapPlugin.BLANK_ICON); + + this.data = data; + String itemName = itemManager.getItemComposition(data.getItemID()).getName().replaceAll("\\(.*\\)", ""); + setTooltip(itemName + " - " + data.getDestionation()); + + 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/MagicTeleportLocationData.java new file mode 100644 index 0000000000..b9fe49f054 --- /dev/null +++ b/runelite-client/src/main/java/net/runelite/client/plugins/worldmap/MagicTeleportLocationData.java @@ -0,0 +1,87 @@ +/* + * 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 MagicTeleportLocationData +{ + 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"), + LUMBRIDGE(TeleportType.NORMAL_MAGIC, "Lumbridge", 31, new WorldPoint(3222, 3218, 0), "lumbridge_teleport_icon.png"), + FALADOR(TeleportType.NORMAL_MAGIC, "Falador", 37, new WorldPoint(2965, 3381, 0), "falador_teleport_icon.png"), + CAMELOT(TeleportType.NORMAL_MAGIC, "Camelot", 45, new WorldPoint(2757, 3477, 0), "camelot_teleport_icon.png"), + CAMELOT_BANK(TeleportType.NORMAL_MAGIC, "Camelot Bank", 45, new WorldPoint(2726, 3485, 0), "camelot_teleport_icon.png"), + ARDOUGNE(TeleportType.NORMAL_MAGIC, "Ardougne", 51, new WorldPoint(2664, 3306, 0), "ardougne_teleport_icon.png"), + WATCHTOWER(TeleportType.NORMAL_MAGIC, "Watchtower", 58, new WorldPoint(2547, 3114, 0), "watchtower_teleport_icon.png"), + WATCHTOWER_YANILLE(TeleportType.NORMAL_MAGIC, "Watchtower Yanille", 58, new WorldPoint(2584, 3097, 0), "watchtower_teleport_icon.png"), + TROLLHEIM(TeleportType.NORMAL_MAGIC, "Trollheim", 61, new WorldPoint(2891, 3678, 0), "trollheim_teleport_icon.png"), + APE_ATOLL(TeleportType.NORMAL_MAGIC, "Ape Atoll", 64, new WorldPoint(2796, 2791, 0), "ape_atoll_teleport_icon.png"), + KOUREND(TeleportType.NORMAL_MAGIC, "Kourend", 69, new WorldPoint(1643, 3672, 0), "kourend_teleport_icon.png"), + PADDEWWA(TeleportType.ANCIENT_MAGICKS, "Paddewwa", 54, new WorldPoint(3097, 9880, 0), "paddewwa_teleport_icon.png"), + SENNTISTEN(TeleportType.ANCIENT_MAGICKS, "Senntisten", 60, new WorldPoint(3319, 3336, 0), "senntisten_teleport_icon.png"), + KHARYRLL(TeleportType.ANCIENT_MAGICKS, "Kharyrll", 66, new WorldPoint(3494, 3473, 0), "kharyrll_teleport_icon.png"), + LASSAR(TeleportType.ANCIENT_MAGICKS, "Lassar", 72, new WorldPoint(3002, 3472, 0), "lassar_teleport_icon.png"), + DAREEYAK(TeleportType.ANCIENT_MAGICKS, "Dareeyak", 78, new WorldPoint(2969, 3695, 0), "dareeyak_teleport_icon.png"), + CARRALLANGAR(TeleportType.ANCIENT_MAGICKS, "Carrallangar", 84, new WorldPoint(3157, 3667, 0), "carrallangar_teleport_icon.png"), + ANNAKARL(TeleportType.ANCIENT_MAGICKS, "Annakarl", 90, new WorldPoint(3288, 3888, 0), "annakarl_teleport_icon.png"), + GHORROCK(TeleportType.ANCIENT_MAGICKS, "Ghorrock", 96, new WorldPoint(2977, 3872, 0), "ghorrock_teleport_icon.png"), + MOONCLAN(TeleportType.LUNAR_MAGIC, "Moonclan", 69, new WorldPoint(2113, 3915, 0), "moonclan_teleport_icon.png"), + OURANIA(TeleportType.LUNAR_MAGIC, "Ourania", 71, new WorldPoint(2468, 3246, 0), "ourania_teleport_icon.png"), + WATERBIRTH(TeleportType.LUNAR_MAGIC, "Waterbirth", 72, new WorldPoint(2546, 3755, 0), "waterbirth_teleport_icon.png"), + BARBARIAN(TeleportType.LUNAR_MAGIC, "Barbarian", 75, new WorldPoint(2543, 3568, 0), "barbarian_teleport_icon.png"), + KHAZARD(TeleportType.LUNAR_MAGIC, "Khazard", 78, new WorldPoint(2636, 3167, 0), "khazard_teleport_icon.png"), + FISHING_GUILD(TeleportType.LUNAR_MAGIC, "Fishing Guild", 85, new WorldPoint(2612, 3391, 0), "fishing_guild_teleport_icon.png"), + CATHERBY(TeleportType.LUNAR_MAGIC, "Catherby", 87, new WorldPoint(2802, 3449, 0), "catherby_teleport_icon.png"), + ICE_PLATEAU(TeleportType.LUNAR_MAGIC, "Ice Plateau", 89, new WorldPoint(2973, 3939, 0), "ice_plateau_teleport_icon.png"), + LUMBRIDGE_GRAVEYARD(TeleportType.ARCEUUS_MAGIC, "Lumbridge Graveyard", 6, new WorldPoint(3241, 3194, 0), "lumbridge_graveyard_teleport_icon.png"), + DRAYNOR_MANOR(TeleportType.ARCEUUS_MAGIC, "Draynor Manor", 17, new WorldPoint(3108, 3352, 0), "draynor_manor_teleport_icon.png"), + MIND_ALTAR(TeleportType.ARCEUUS_MAGIC, "Mind Altar", 28, new WorldPoint(2979, 3509, 0), "mind_altar_teleport_icon.png"), + SALVE_GRAVEYARD(TeleportType.ARCEUUS_MAGIC, "Salve Graveyard", 40, new WorldPoint(3433, 3461, 0), "salve_graveyard_teleport_icon.png"), + FENKENSTRAINS_CASTLE(TeleportType.ARCEUUS_MAGIC, "Fenkenstrain's Castle", 48, new WorldPoint(3548, 3528, 0), "fenkenstrains_castle_teleport_icon.png"), + WEST_ARDOUGNE(TeleportType.ARCEUUS_MAGIC, "West Ardougne", 61, new WorldPoint(2500, 3291, 0), "west_ardougne_teleport_icon.png"), + 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"); + + 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) + { + this.type = type; + this.tooltip = type.getPrefix() + " " + destination + " - lvl " + magicLevel; + this.magicLevel = magicLevel; + 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/MagicTeleportPoint.java new file mode 100644 index 0000000000..24625461b0 --- /dev/null +++ b/runelite-client/src/main/java/net/runelite/client/plugins/worldmap/MagicTeleportPoint.java @@ -0,0 +1,54 @@ +/* + * 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 MagicTeleportPoint extends WorldMapPoint +{ + @Getter + private final MagicTeleportLocationData data; + + MagicTeleportPoint(MagicTeleportLocationData 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/TeleportType.java b/runelite-client/src/main/java/net/runelite/client/plugins/worldmap/TeleportType.java new file mode 100644 index 0000000000..f24099d0cf --- /dev/null +++ b/runelite-client/src/main/java/net/runelite/client/plugins/worldmap/TeleportType.java @@ -0,0 +1,44 @@ +/* + * 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; + +@Getter +public enum TeleportType +{ + NORMAL_MAGIC(""), + ANCIENT_MAGICKS("Ancient - "), + LUNAR_MAGIC("Lunar - "), + ARCEUUS_MAGIC("Arceuus - "); + + private String prefix; + + TeleportType(String prefix) + { + this.prefix = 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 7b915b1429..bdc949398c 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 @@ -57,4 +57,59 @@ public interface WorldMapConfig extends Config { return true; } + + @ConfigItem( + keyName = WorldMapPlugin.CONFIG_KEY_NORMAL_TELEPORT_ICON, + name = "Show standard spellbook destionations", + description = "Show icons at the destinations for teleports in the standard spellbook", + position = 5 + ) + default boolean normalTeleportIcon() + { + return true; + } + + @ConfigItem( + keyName = WorldMapPlugin.CONFIG_KEY_ANCIENT_TELEPORT_ICON, + name = "Show ancient magicks destionations", + description = "Show icons at the destinations for teleports in the ancient spellbook", + position = 6 + ) + default boolean ancientTeleportIcon() + { + return true; + } + + @ConfigItem( + keyName = WorldMapPlugin.CONFIG_KEY_LUNAR_TELEPORT_ICON, + name = "Show lunar spellbook destionations", + description = "Show icons at the destinations for teleports in the lunar spellbook", + position = 7 + ) + default boolean lunarTeleportIcon() + { + return true; + } + + @ConfigItem( + keyName = WorldMapPlugin.CONFIG_KEY_ARCEUUS_TELEPORT_ICON, + name = "Show arceuus spellbook destionations", + description = "Show icons at the destinations for teleports in the arceuus spellbook", + position = 8 + ) + default boolean arceuusTeleportIcon() + { + return true; + } + + @ConfigItem( + keyName = WorldMapPlugin.CONFIG_KEY_JEWELLERY_TELEPORT_ICON, + name = "Show jewellery teleport locations", + description = "Show icons at the destinations for teleports from jewellery", + position = 9 + ) + default boolean jewelleryTeleportIcon() + { + 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 f6b9817a6b..6e35ab5797 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 @@ -34,6 +34,7 @@ import java.util.Arrays; import javax.imageio.ImageIO; import net.runelite.api.events.ConfigChanged; import net.runelite.client.config.ConfigManager; +import net.runelite.client.game.ItemManager; import net.runelite.client.plugins.Plugin; import net.runelite.client.plugins.PluginDescriptor; import net.runelite.client.ui.overlay.worldmap.WorldMapPointManager; @@ -49,6 +50,11 @@ public class WorldMapPlugin extends Plugin static final String CONFIG_KEY = "worldmap"; static final String CONFIG_KEY_FAIRY_RING_TOOLTIPS = "fairyRingTooltips"; static final String CONFIG_KEY_FAIRY_RING_ICON = "fairyRingIcon"; + static final String CONFIG_KEY_NORMAL_TELEPORT_ICON = "standardSpellbookIcon"; + static final String CONFIG_KEY_ANCIENT_TELEPORT_ICON = "ancientSpellbookIcon"; + 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 { @@ -72,6 +78,9 @@ public class WorldMapPlugin extends Plugin } } + @Inject + private ItemManager itemManager; + @Inject private WorldMapConfig config; @@ -106,6 +115,25 @@ public class WorldMapPlugin extends Plugin case CONFIG_KEY_FAIRY_RING_ICON: FairyRingLocation.setIcon(config.fairyRingIcon() ? FAIRY_TRAVEL_ICON : BLANK_ICON); break; + case CONFIG_KEY_NORMAL_TELEPORT_ICON: + 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, itemManager)) + .forEach(worldMapPointManager::add); + } + else + { + worldMapPointManager.removeIf(JewelleryTeleportPoint.class::isInstance); + } + break; } } } @@ -121,11 +149,50 @@ public class WorldMapPlugin extends Plugin .map(FairyRingLocation::getFairyRingPoint) .forEach(worldMapPointManager::add); } + + if (config.normalTeleportIcon() + || config.ancientTeleportIcon() + || config.lunarTeleportIcon() + || config.arceuusTeleportIcon()) + { + createMagicTeleportPoints(); + } + + if (config.jewelleryTeleportIcon()) + { + Arrays.stream(JewelleryTeleportLocationData.values()) + .map(data -> new JewelleryTeleportPoint(data, itemManager)) + .forEach(worldMapPointManager::add); + } } @Override protected void shutDown() throws Exception { worldMapPointManager.removeIf(FairyRingPoint.class::isInstance); + worldMapPointManager.removeIf(MagicTeleportPoint.class::isInstance); + worldMapPointManager.removeIf(JewelleryTeleportPoint.class::isInstance); + } + + private void createMagicTeleportPoints() + { + Arrays.stream(MagicTeleportLocationData.values()) + .filter(data -> + { + switch (data.getType()) + { + case NORMAL_MAGIC: + return config.normalTeleportIcon(); + case ANCIENT_MAGICKS: + return config.ancientTeleportIcon(); + case LUNAR_MAGIC: + return config.lunarTeleportIcon(); + case ARCEUUS_MAGIC: + return config.arceuusTeleportIcon(); + default: + return false; + } + }).map(MagicTeleportPoint::new) + .forEach(worldMapPointManager::add); } } diff --git a/runelite-client/src/main/resources/net/runelite/client/plugins/worldmap/amulet_of_glory_teleport_icon.png b/runelite-client/src/main/resources/net/runelite/client/plugins/worldmap/amulet_of_glory_teleport_icon.png new file mode 100644 index 0000000000..432e9f46df Binary files /dev/null and b/runelite-client/src/main/resources/net/runelite/client/plugins/worldmap/amulet_of_glory_teleport_icon.png differ diff --git a/runelite-client/src/main/resources/net/runelite/client/plugins/worldmap/annakarl_teleport_icon.png b/runelite-client/src/main/resources/net/runelite/client/plugins/worldmap/annakarl_teleport_icon.png new file mode 100644 index 0000000000..4cd6991294 Binary files /dev/null and b/runelite-client/src/main/resources/net/runelite/client/plugins/worldmap/annakarl_teleport_icon.png differ diff --git a/runelite-client/src/main/resources/net/runelite/client/plugins/worldmap/ape_atoll_teleport_icon.png b/runelite-client/src/main/resources/net/runelite/client/plugins/worldmap/ape_atoll_teleport_icon.png new file mode 100644 index 0000000000..19c53c75cf Binary files /dev/null and b/runelite-client/src/main/resources/net/runelite/client/plugins/worldmap/ape_atoll_teleport_icon.png differ diff --git a/runelite-client/src/main/resources/net/runelite/client/plugins/worldmap/ape_atoll_teleport_icon_arceuus.png b/runelite-client/src/main/resources/net/runelite/client/plugins/worldmap/ape_atoll_teleport_icon_arceuus.png new file mode 100644 index 0000000000..298f5cc36d Binary files /dev/null and b/runelite-client/src/main/resources/net/runelite/client/plugins/worldmap/ape_atoll_teleport_icon_arceuus.png differ diff --git a/runelite-client/src/main/resources/net/runelite/client/plugins/worldmap/ardougne_teleport_icon.png b/runelite-client/src/main/resources/net/runelite/client/plugins/worldmap/ardougne_teleport_icon.png new file mode 100644 index 0000000000..a2ed14578d Binary files /dev/null and b/runelite-client/src/main/resources/net/runelite/client/plugins/worldmap/ardougne_teleport_icon.png differ diff --git a/runelite-client/src/main/resources/net/runelite/client/plugins/worldmap/barbarian_teleport_icon.png b/runelite-client/src/main/resources/net/runelite/client/plugins/worldmap/barbarian_teleport_icon.png new file mode 100644 index 0000000000..afd791924c Binary files /dev/null and b/runelite-client/src/main/resources/net/runelite/client/plugins/worldmap/barbarian_teleport_icon.png differ diff --git a/runelite-client/src/main/resources/net/runelite/client/plugins/worldmap/barrows_teleport_icon.png b/runelite-client/src/main/resources/net/runelite/client/plugins/worldmap/barrows_teleport_icon.png new file mode 100644 index 0000000000..1812d0d42b Binary files /dev/null and b/runelite-client/src/main/resources/net/runelite/client/plugins/worldmap/barrows_teleport_icon.png differ diff --git a/runelite-client/src/main/resources/net/runelite/client/plugins/worldmap/burning_amulet_teleport_icon.png b/runelite-client/src/main/resources/net/runelite/client/plugins/worldmap/burning_amulet_teleport_icon.png new file mode 100644 index 0000000000..a473c114db Binary files /dev/null and b/runelite-client/src/main/resources/net/runelite/client/plugins/worldmap/burning_amulet_teleport_icon.png differ diff --git a/runelite-client/src/main/resources/net/runelite/client/plugins/worldmap/camelot_teleport_icon.png b/runelite-client/src/main/resources/net/runelite/client/plugins/worldmap/camelot_teleport_icon.png new file mode 100644 index 0000000000..b4d1e18821 Binary files /dev/null and b/runelite-client/src/main/resources/net/runelite/client/plugins/worldmap/camelot_teleport_icon.png differ diff --git a/runelite-client/src/main/resources/net/runelite/client/plugins/worldmap/carrallangar_teleport_icon.png b/runelite-client/src/main/resources/net/runelite/client/plugins/worldmap/carrallangar_teleport_icon.png new file mode 100644 index 0000000000..8c21f8aac2 Binary files /dev/null and b/runelite-client/src/main/resources/net/runelite/client/plugins/worldmap/carrallangar_teleport_icon.png differ diff --git a/runelite-client/src/main/resources/net/runelite/client/plugins/worldmap/catherby_teleport_icon.png b/runelite-client/src/main/resources/net/runelite/client/plugins/worldmap/catherby_teleport_icon.png new file mode 100644 index 0000000000..ad05409835 Binary files /dev/null and b/runelite-client/src/main/resources/net/runelite/client/plugins/worldmap/catherby_teleport_icon.png differ diff --git a/runelite-client/src/main/resources/net/runelite/client/plugins/worldmap/cemetery_teleport_icon.png b/runelite-client/src/main/resources/net/runelite/client/plugins/worldmap/cemetery_teleport_icon.png new file mode 100644 index 0000000000..6cfa005e98 Binary files /dev/null and b/runelite-client/src/main/resources/net/runelite/client/plugins/worldmap/cemetery_teleport_icon.png differ diff --git a/runelite-client/src/main/resources/net/runelite/client/plugins/worldmap/combat_bracelet_teleport_icon.png b/runelite-client/src/main/resources/net/runelite/client/plugins/worldmap/combat_bracelet_teleport_icon.png new file mode 100644 index 0000000000..d005aebb87 Binary files /dev/null and b/runelite-client/src/main/resources/net/runelite/client/plugins/worldmap/combat_bracelet_teleport_icon.png differ diff --git a/runelite-client/src/main/resources/net/runelite/client/plugins/worldmap/dareeyak_teleport_icon.png b/runelite-client/src/main/resources/net/runelite/client/plugins/worldmap/dareeyak_teleport_icon.png new file mode 100644 index 0000000000..d2a8fafa6e Binary files /dev/null and b/runelite-client/src/main/resources/net/runelite/client/plugins/worldmap/dareeyak_teleport_icon.png differ diff --git a/runelite-client/src/main/resources/net/runelite/client/plugins/worldmap/digsite_pendant_teleport_icon.png b/runelite-client/src/main/resources/net/runelite/client/plugins/worldmap/digsite_pendant_teleport_icon.png new file mode 100644 index 0000000000..55a940cb96 Binary files /dev/null and b/runelite-client/src/main/resources/net/runelite/client/plugins/worldmap/digsite_pendant_teleport_icon.png differ diff --git a/runelite-client/src/main/resources/net/runelite/client/plugins/worldmap/draynor_manor_teleport_icon.png b/runelite-client/src/main/resources/net/runelite/client/plugins/worldmap/draynor_manor_teleport_icon.png new file mode 100644 index 0000000000..08af3a98cd Binary files /dev/null and b/runelite-client/src/main/resources/net/runelite/client/plugins/worldmap/draynor_manor_teleport_icon.png differ diff --git a/runelite-client/src/main/resources/net/runelite/client/plugins/worldmap/falador_teleport_icon.png b/runelite-client/src/main/resources/net/runelite/client/plugins/worldmap/falador_teleport_icon.png new file mode 100644 index 0000000000..8ef0fad470 Binary files /dev/null and b/runelite-client/src/main/resources/net/runelite/client/plugins/worldmap/falador_teleport_icon.png differ diff --git a/runelite-client/src/main/resources/net/runelite/client/plugins/worldmap/fenkenstrains_castle_teleport_icon.png b/runelite-client/src/main/resources/net/runelite/client/plugins/worldmap/fenkenstrains_castle_teleport_icon.png new file mode 100644 index 0000000000..e4ad072564 Binary files /dev/null and b/runelite-client/src/main/resources/net/runelite/client/plugins/worldmap/fenkenstrains_castle_teleport_icon.png differ diff --git a/runelite-client/src/main/resources/net/runelite/client/plugins/worldmap/fishing_guild_teleport_icon.png b/runelite-client/src/main/resources/net/runelite/client/plugins/worldmap/fishing_guild_teleport_icon.png new file mode 100644 index 0000000000..58ba1ca087 Binary files /dev/null and b/runelite-client/src/main/resources/net/runelite/client/plugins/worldmap/fishing_guild_teleport_icon.png differ diff --git a/runelite-client/src/main/resources/net/runelite/client/plugins/worldmap/games_necklace_teleport_icon.png b/runelite-client/src/main/resources/net/runelite/client/plugins/worldmap/games_necklace_teleport_icon.png new file mode 100644 index 0000000000..b9ede0eacb Binary files /dev/null and b/runelite-client/src/main/resources/net/runelite/client/plugins/worldmap/games_necklace_teleport_icon.png differ diff --git a/runelite-client/src/main/resources/net/runelite/client/plugins/worldmap/ghorrock_teleport_icon.png b/runelite-client/src/main/resources/net/runelite/client/plugins/worldmap/ghorrock_teleport_icon.png new file mode 100644 index 0000000000..0ca5f0be50 Binary files /dev/null and b/runelite-client/src/main/resources/net/runelite/client/plugins/worldmap/ghorrock_teleport_icon.png differ diff --git a/runelite-client/src/main/resources/net/runelite/client/plugins/worldmap/harmony_island_teleport_icon.png b/runelite-client/src/main/resources/net/runelite/client/plugins/worldmap/harmony_island_teleport_icon.png new file mode 100644 index 0000000000..7d7362187d Binary files /dev/null and b/runelite-client/src/main/resources/net/runelite/client/plugins/worldmap/harmony_island_teleport_icon.png differ diff --git a/runelite-client/src/main/resources/net/runelite/client/plugins/worldmap/house_teleport_icon.png b/runelite-client/src/main/resources/net/runelite/client/plugins/worldmap/house_teleport_icon.png new file mode 100644 index 0000000000..323e2493bc Binary files /dev/null and b/runelite-client/src/main/resources/net/runelite/client/plugins/worldmap/house_teleport_icon.png differ diff --git a/runelite-client/src/main/resources/net/runelite/client/plugins/worldmap/ice_plateau_teleport_icon.png b/runelite-client/src/main/resources/net/runelite/client/plugins/worldmap/ice_plateau_teleport_icon.png new file mode 100644 index 0000000000..ea35e24523 Binary files /dev/null and b/runelite-client/src/main/resources/net/runelite/client/plugins/worldmap/ice_plateau_teleport_icon.png differ diff --git a/runelite-client/src/main/resources/net/runelite/client/plugins/worldmap/kharyrll_teleport_icon.png b/runelite-client/src/main/resources/net/runelite/client/plugins/worldmap/kharyrll_teleport_icon.png new file mode 100644 index 0000000000..7bae30a2c6 Binary files /dev/null and b/runelite-client/src/main/resources/net/runelite/client/plugins/worldmap/kharyrll_teleport_icon.png differ diff --git a/runelite-client/src/main/resources/net/runelite/client/plugins/worldmap/khazard_teleport_icon.png b/runelite-client/src/main/resources/net/runelite/client/plugins/worldmap/khazard_teleport_icon.png new file mode 100644 index 0000000000..29ce6b8731 Binary files /dev/null and b/runelite-client/src/main/resources/net/runelite/client/plugins/worldmap/khazard_teleport_icon.png differ diff --git a/runelite-client/src/main/resources/net/runelite/client/plugins/worldmap/kourend_teleport_icon.png b/runelite-client/src/main/resources/net/runelite/client/plugins/worldmap/kourend_teleport_icon.png new file mode 100644 index 0000000000..c2aa2a5f5b Binary files /dev/null and b/runelite-client/src/main/resources/net/runelite/client/plugins/worldmap/kourend_teleport_icon.png differ diff --git a/runelite-client/src/main/resources/net/runelite/client/plugins/worldmap/lassar_teleport_icon.png b/runelite-client/src/main/resources/net/runelite/client/plugins/worldmap/lassar_teleport_icon.png new file mode 100644 index 0000000000..6fac78a7d2 Binary files /dev/null and b/runelite-client/src/main/resources/net/runelite/client/plugins/worldmap/lassar_teleport_icon.png differ diff --git a/runelite-client/src/main/resources/net/runelite/client/plugins/worldmap/lumbridge_graveyard_teleport_icon.png b/runelite-client/src/main/resources/net/runelite/client/plugins/worldmap/lumbridge_graveyard_teleport_icon.png new file mode 100644 index 0000000000..fbe1ea643a Binary files /dev/null and b/runelite-client/src/main/resources/net/runelite/client/plugins/worldmap/lumbridge_graveyard_teleport_icon.png differ diff --git a/runelite-client/src/main/resources/net/runelite/client/plugins/worldmap/lumbridge_teleport_icon.png b/runelite-client/src/main/resources/net/runelite/client/plugins/worldmap/lumbridge_teleport_icon.png new file mode 100644 index 0000000000..be5844dfcc Binary files /dev/null and b/runelite-client/src/main/resources/net/runelite/client/plugins/worldmap/lumbridge_teleport_icon.png differ diff --git a/runelite-client/src/main/resources/net/runelite/client/plugins/worldmap/mind_altar_teleport_icon.png b/runelite-client/src/main/resources/net/runelite/client/plugins/worldmap/mind_altar_teleport_icon.png new file mode 100644 index 0000000000..5caac066da Binary files /dev/null and b/runelite-client/src/main/resources/net/runelite/client/plugins/worldmap/mind_altar_teleport_icon.png differ diff --git a/runelite-client/src/main/resources/net/runelite/client/plugins/worldmap/moonclan_teleport_icon.png b/runelite-client/src/main/resources/net/runelite/client/plugins/worldmap/moonclan_teleport_icon.png new file mode 100644 index 0000000000..d067981079 Binary files /dev/null and b/runelite-client/src/main/resources/net/runelite/client/plugins/worldmap/moonclan_teleport_icon.png differ diff --git a/runelite-client/src/main/resources/net/runelite/client/plugins/worldmap/necklace_of_passage_teleport_icon.png b/runelite-client/src/main/resources/net/runelite/client/plugins/worldmap/necklace_of_passage_teleport_icon.png new file mode 100644 index 0000000000..1fffe014e9 Binary files /dev/null and b/runelite-client/src/main/resources/net/runelite/client/plugins/worldmap/necklace_of_passage_teleport_icon.png differ diff --git a/runelite-client/src/main/resources/net/runelite/client/plugins/worldmap/ourania_teleport_icon.png b/runelite-client/src/main/resources/net/runelite/client/plugins/worldmap/ourania_teleport_icon.png new file mode 100644 index 0000000000..19176f9f32 Binary files /dev/null and b/runelite-client/src/main/resources/net/runelite/client/plugins/worldmap/ourania_teleport_icon.png differ diff --git a/runelite-client/src/main/resources/net/runelite/client/plugins/worldmap/paddewwa_teleport_icon.png b/runelite-client/src/main/resources/net/runelite/client/plugins/worldmap/paddewwa_teleport_icon.png new file mode 100644 index 0000000000..0fa3275f70 Binary files /dev/null and b/runelite-client/src/main/resources/net/runelite/client/plugins/worldmap/paddewwa_teleport_icon.png differ diff --git a/runelite-client/src/main/resources/net/runelite/client/plugins/worldmap/respawn_teleport_icon.png b/runelite-client/src/main/resources/net/runelite/client/plugins/worldmap/respawn_teleport_icon.png new file mode 100644 index 0000000000..cf99a873ae Binary files /dev/null and b/runelite-client/src/main/resources/net/runelite/client/plugins/worldmap/respawn_teleport_icon.png differ diff --git a/runelite-client/src/main/resources/net/runelite/client/plugins/worldmap/ring_of_dueling_teleport_icon.png b/runelite-client/src/main/resources/net/runelite/client/plugins/worldmap/ring_of_dueling_teleport_icon.png new file mode 100644 index 0000000000..e50b81ea48 Binary files /dev/null and b/runelite-client/src/main/resources/net/runelite/client/plugins/worldmap/ring_of_dueling_teleport_icon.png differ diff --git a/runelite-client/src/main/resources/net/runelite/client/plugins/worldmap/ring_of_wealth_teleport_icon.png b/runelite-client/src/main/resources/net/runelite/client/plugins/worldmap/ring_of_wealth_teleport_icon.png new file mode 100644 index 0000000000..78a430e148 Binary files /dev/null and b/runelite-client/src/main/resources/net/runelite/client/plugins/worldmap/ring_of_wealth_teleport_icon.png differ diff --git a/runelite-client/src/main/resources/net/runelite/client/plugins/worldmap/salve_graveyard_teleport_icon.png b/runelite-client/src/main/resources/net/runelite/client/plugins/worldmap/salve_graveyard_teleport_icon.png new file mode 100644 index 0000000000..f0dc0f9f73 Binary files /dev/null and b/runelite-client/src/main/resources/net/runelite/client/plugins/worldmap/salve_graveyard_teleport_icon.png differ diff --git a/runelite-client/src/main/resources/net/runelite/client/plugins/worldmap/senntisten_teleport_icon.png b/runelite-client/src/main/resources/net/runelite/client/plugins/worldmap/senntisten_teleport_icon.png new file mode 100644 index 0000000000..d346c0b1a5 Binary files /dev/null and b/runelite-client/src/main/resources/net/runelite/client/plugins/worldmap/senntisten_teleport_icon.png differ diff --git a/runelite-client/src/main/resources/net/runelite/client/plugins/worldmap/skills_necklace_teleport_icon.png b/runelite-client/src/main/resources/net/runelite/client/plugins/worldmap/skills_necklace_teleport_icon.png new file mode 100644 index 0000000000..adcdc98b05 Binary files /dev/null and b/runelite-client/src/main/resources/net/runelite/client/plugins/worldmap/skills_necklace_teleport_icon.png differ diff --git a/runelite-client/src/main/resources/net/runelite/client/plugins/worldmap/slayer_ring_teleport_icon.png b/runelite-client/src/main/resources/net/runelite/client/plugins/worldmap/slayer_ring_teleport_icon.png new file mode 100644 index 0000000000..7f23d872c7 Binary files /dev/null and b/runelite-client/src/main/resources/net/runelite/client/plugins/worldmap/slayer_ring_teleport_icon.png differ diff --git a/runelite-client/src/main/resources/net/runelite/client/plugins/worldmap/trollheim_teleport_icon.png b/runelite-client/src/main/resources/net/runelite/client/plugins/worldmap/trollheim_teleport_icon.png new file mode 100644 index 0000000000..c10346c7ed Binary files /dev/null and b/runelite-client/src/main/resources/net/runelite/client/plugins/worldmap/trollheim_teleport_icon.png differ diff --git a/runelite-client/src/main/resources/net/runelite/client/plugins/worldmap/varrock_teleport_icon.png b/runelite-client/src/main/resources/net/runelite/client/plugins/worldmap/varrock_teleport_icon.png new file mode 100644 index 0000000000..24f0f609a3 Binary files /dev/null and b/runelite-client/src/main/resources/net/runelite/client/plugins/worldmap/varrock_teleport_icon.png differ diff --git a/runelite-client/src/main/resources/net/runelite/client/plugins/worldmap/watchtower_teleport_icon.png b/runelite-client/src/main/resources/net/runelite/client/plugins/worldmap/watchtower_teleport_icon.png new file mode 100644 index 0000000000..a10baf5804 Binary files /dev/null and b/runelite-client/src/main/resources/net/runelite/client/plugins/worldmap/watchtower_teleport_icon.png differ diff --git a/runelite-client/src/main/resources/net/runelite/client/plugins/worldmap/waterbirth_teleport_icon.png b/runelite-client/src/main/resources/net/runelite/client/plugins/worldmap/waterbirth_teleport_icon.png new file mode 100644 index 0000000000..57bf8b767a Binary files /dev/null and b/runelite-client/src/main/resources/net/runelite/client/plugins/worldmap/waterbirth_teleport_icon.png differ diff --git a/runelite-client/src/main/resources/net/runelite/client/plugins/worldmap/west_ardougne_teleport_icon.png b/runelite-client/src/main/resources/net/runelite/client/plugins/worldmap/west_ardougne_teleport_icon.png new file mode 100644 index 0000000000..72a6df75f8 Binary files /dev/null and b/runelite-client/src/main/resources/net/runelite/client/plugins/worldmap/west_ardougne_teleport_icon.png differ