diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/worldmap/AgilityCourseLocation.java b/runelite-client/src/main/java/net/runelite/client/plugins/worldmap/AgilityCourseLocation.java index 003916372e..ee0c61db88 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/worldmap/AgilityCourseLocation.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/worldmap/AgilityCourseLocation.java @@ -52,10 +52,12 @@ enum AgilityCourseLocation private final String tooltip; private final WorldPoint location; + private final boolean rooftopCourse; AgilityCourseLocation(String tooltip, WorldPoint location) { this.tooltip = tooltip; this.location = location; + this.rooftopCourse = this.name().contains("ROOFTOP_COURSE"); } } 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 d401f36a4b..e3e11dccd9 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 @@ -87,11 +87,22 @@ public interface WorldMapConfig extends Config return true; } + @ConfigItem( + keyName = WorldMapPlugin.CONFIG_KEY_AGILITY_COURSE_ROOFTOP_ICON, + name = "Indicate rooftop courses", + description = "Replace the agility icon with a mark of grace for rooftop courses", + position = 6 + ) + default boolean agilityCourseRooftop() + { + return true; + } + @ConfigItem( keyName = WorldMapPlugin.CONFIG_KEY_NORMAL_TELEPORT_ICON, name = "Show Standard Spellbook destinations", description = "Show icons at the destinations for teleports in the Standard Spellbook", - position = 6 + position = 7 ) default boolean normalTeleportIcon() { @@ -102,7 +113,7 @@ public interface WorldMapConfig extends Config keyName = WorldMapPlugin.CONFIG_KEY_MINIGAME_TOOLTIP, name = "Show minigame name in tooltip", description = "Display the name of the minigame in the icon tooltip", - position = 7 + position = 8 ) default boolean minigameTooltip() { @@ -113,7 +124,7 @@ public interface WorldMapConfig extends Config keyName = WorldMapPlugin.CONFIG_KEY_ANCIENT_TELEPORT_ICON, name = "Show Ancient Magicks destinations", description = "Show icons at the destinations for teleports in the Ancient Spellbook", - position = 8 + position = 9 ) default boolean ancientTeleportIcon() { @@ -124,7 +135,7 @@ public interface WorldMapConfig extends Config keyName = WorldMapPlugin.CONFIG_KEY_LUNAR_TELEPORT_ICON, name = "Show Lunar Spellbook destinations", description = "Show icons at the destinations for teleports in the Lunar Spellbook", - position = 9 + position = 10 ) default boolean lunarTeleportIcon() { @@ -135,7 +146,7 @@ public interface WorldMapConfig extends Config keyName = WorldMapPlugin.CONFIG_KEY_ARCEUUS_TELEPORT_ICON, name = "Show Arceuus Spellbook destinations", description = "Show icons at the destinations for teleports in the Arceuus Spellbook", - position = 10 + position = 11 ) default boolean arceuusTeleportIcon() { @@ -146,7 +157,7 @@ public interface WorldMapConfig extends Config keyName = WorldMapPlugin.CONFIG_KEY_JEWELLERY_TELEPORT_ICON, name = "Show jewellery teleport locations", description = "Show icons at the destinations for teleports from jewellery", - position = 11 + position = 12 ) default boolean jewelleryTeleportIcon() { @@ -157,7 +168,7 @@ public interface WorldMapConfig extends Config keyName = WorldMapPlugin.CONFIG_KEY_SCROLL_TELEPORT_ICON, name = "Show teleport scroll locations", description = "Show icons at the destinations for teleports from scrolls", - position = 12 + position = 13 ) default boolean scrollTeleportIcon() { @@ -168,7 +179,7 @@ public interface WorldMapConfig extends Config keyName = WorldMapPlugin.CONFIG_KEY_MISC_TELEPORT_ICON, name = "Show misc teleport locations", description = "Show icons at the destinations for miscellaneous teleport items", - position = 13 + position = 14 ) default boolean miscellaneousTeleportIcon() { @@ -179,7 +190,7 @@ public interface WorldMapConfig extends Config keyName = WorldMapPlugin.CONFIG_KEY_QUEST_START_TOOLTIPS, name = "Show quest names and status", description = "Indicates the names of quests and shows completion status", - position = 14 + position = 15 ) default boolean questStartTooltips() { @@ -190,7 +201,7 @@ public interface WorldMapConfig extends Config keyName = WorldMapPlugin.CONFIG_KEY_FARMING_PATCH_TOOLTIPS, name = "Show farming patch type", description = "Display the type of farming patches in the icon tooltip", - position = 15 + position = 16 ) default boolean farmingPatchTooltips() { @@ -201,7 +212,7 @@ public interface WorldMapConfig extends Config keyName = WorldMapPlugin.CONFIG_KEY_RARE_TREE_TOOLTIPS, name = "Show rare tree type", description = "Display the type of rare tree in the icon tooltip", - position = 16 + position = 17 ) default boolean rareTreeTooltips() { @@ -212,7 +223,7 @@ public interface WorldMapConfig extends Config keyName = WorldMapPlugin.CONFIG_KEY_RARE_TREE_LEVEL_ICON, name = "Indicate unavailable trees", description = "Indicate rare trees you do not have the level to cut on the icon", - position = 17 + position = 18 ) default boolean rareTreeLevelIcon() { @@ -223,7 +234,7 @@ public interface WorldMapConfig extends Config keyName = WorldMapPlugin.CONFIG_KEY_TRANSPORATION_TELEPORT_TOOLTIPS, name = "Show transporation tooltips", description = "Indicates types and destinations of Transporation", - position = 18 + position = 19 ) default boolean transportationTeleportTooltips() { @@ -234,7 +245,7 @@ public interface WorldMapConfig extends Config keyName = WorldMapPlugin.CONFIG_KEY_RUNECRAFTING_ALTAR_ICON, name = "Show runecrafting altar locations", description = "Show the icons of runecrafting altars", - position = 19 + position = 20 ) default boolean runecraftingAltarIcon() { @@ -245,7 +256,7 @@ public interface WorldMapConfig extends Config keyName = WorldMapPlugin.CONFIG_KEY_MINING_SITE_TOOLTIPS, name = "Show mining site tooltips", description = "Indicates the ore available at mining sites", - position = 20 + position = 21 ) default boolean miningSiteTooltips() { @@ -256,7 +267,7 @@ public interface WorldMapConfig extends Config keyName = WorldMapPlugin.CONFIG_KEY_DUNGEON_TOOLTIPS, name = "Show dungeon tooltips", description = "Indicates the names of dungeons", - position = 21 + position = 22 ) default boolean dungeonTooltips() { @@ -267,7 +278,7 @@ public interface WorldMapConfig extends Config keyName = WorldMapPlugin.CONFIG_KEY_HUNTER_AREA_TOOLTIPS, name = "Show hunter area tooltips", description = "Indicates the creatures inside a hunting area", - position = 22 + position = 23 ) default boolean hunterAreaTooltips() { @@ -278,7 +289,7 @@ public interface WorldMapConfig extends Config keyName = WorldMapPlugin.CONFIG_KEY_FISHING_SPOT_TOOLTIPS, name = "Show fishing spot tooltips", description = "Indicates the type of fish fishable at the fishing spot", - position = 23 + position = 24 ) default boolean fishingSpotTooltips() { 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 f53c36baaf..74741357e0 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 private static final BufferedImage STARTED_ICON; private static final BufferedImage FINISHED_ICON; private static final BufferedImage MINING_SITE_ICON; + private static final BufferedImage ROOFTOP_COURSE_ICON; static final String CONFIG_KEY = "worldmap"; static final String CONFIG_KEY_FAIRY_RING_TOOLTIPS = "fairyRingTooltips"; @@ -68,6 +69,7 @@ public class WorldMapPlugin extends Plugin static final String CONFIG_KEY_AGILITY_SHORTCUT_TOOLTIPS = "agilityShortcutTooltips"; static final String CONFIG_KEY_AGILITY_SHORTCUT_LEVEL_ICON = "agilityShortcutIcon"; static final String CONFIG_KEY_AGILITY_COURSE_TOOLTIPS = "agilityCourseTooltips"; + static final String CONFIG_KEY_AGILITY_COURSE_ROOFTOP_ICON = "agilityCourseRooftopIcon"; 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"; @@ -120,6 +122,10 @@ public class WorldMapPlugin extends Plugin MINING_SITE_ICON = new BufferedImage(iconBufferSize, iconBufferSize, BufferedImage.TYPE_INT_ARGB); final BufferedImage miningSiteIcon = ImageUtil.getResourceStreamFromClass(WorldMapPlugin.class, "mining_site_icon.png"); MINING_SITE_ICON.getGraphics().drawImage(miningSiteIcon, 1, 1, null); + + ROOFTOP_COURSE_ICON = new BufferedImage(iconBufferSize, iconBufferSize, BufferedImage.TYPE_INT_ARGB); + final BufferedImage rooftopCourseIcon = ImageUtil.getResourceStreamFromClass(WorldMapPlugin.class, "rooftop_course_icon.png"); + ROOFTOP_COURSE_ICON.getGraphics().drawImage(rooftopCourseIcon, 1, 1, null); } @Inject @@ -239,12 +245,12 @@ public class WorldMapPlugin extends Plugin { worldMapPointManager.removeIf(AgilityCoursePoint.class::isInstance); - if (config.agilityCourseTooltip()) + if (config.agilityCourseTooltip() || config.agilityCourseRooftop()) { Arrays.stream(AgilityCourseLocation.values()) .filter(value -> value.getLocation() != null) .map(value -> new AgilityCoursePoint(value, - BLANK_ICON, + config.agilityCourseRooftop() && value.isRooftopCourse() ? ROOFTOP_COURSE_ICON : BLANK_ICON, config.agilityCourseTooltip())) .forEach(worldMapPointManager::add); } diff --git a/runelite-client/src/main/resources/net/runelite/client/plugins/worldmap/rooftop_course_icon.png b/runelite-client/src/main/resources/net/runelite/client/plugins/worldmap/rooftop_course_icon.png new file mode 100644 index 0000000000..27b548ad6f Binary files /dev/null and b/runelite-client/src/main/resources/net/runelite/client/plugins/worldmap/rooftop_course_icon.png differ