From dbef04bd6fd982aee2a9a05b6c9a15a7d42497ef Mon Sep 17 00:00:00 2001 From: Adam Date: Sun, 27 May 2018 14:54:19 -0400 Subject: [PATCH] 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