From f1280b234b2fa494439ceaf71222784be2a81d53 Mon Sep 17 00:00:00 2001 From: BillyBangles Date: Thu, 23 Nov 2017 13:58:43 -0500 Subject: [PATCH] Adds rotate verb for pianos (#4324) * Adds rotate verb and directional piano sprites * fixes ghost rotation I forgot Polaris and Bay handle ghosts quite differently. This should fix that. * mice and restrained people cannot rotate a piano i can break these cuffs --- code/game/objects/structures/musician.dm | 17 +++++++++++++++++ icons/obj/musician.dmi | Bin 4940 -> 4574 bytes 2 files changed, 17 insertions(+) diff --git a/code/game/objects/structures/musician.dm b/code/game/objects/structures/musician.dm index dacd1013c4e..3b36cb00873 100644 --- a/code/game/objects/structures/musician.dm +++ b/code/game/objects/structures/musician.dm @@ -27,6 +27,23 @@ desc = "This is a space piano, like a regular piano, but always in tune! Even if the musician isn't." icon_state = "piano" +/obj/structure/device/piano/verb/rotate() + set name = "Rotate Piano" + set category = "Object" + set src in oview(1) + + if(istype(usr,/mob/living/simple_animal/mouse)) + return + else if(!usr || !isturf(usr.loc)) + return + else if(usr.stat || usr.restrained()) + return + else if (istype(usr,/mob/observer/ghost) && !config.ghost_interaction) + return + else + src.set_dir(turn(src.dir, 90)) + return + /obj/structure/device/piano/proc/playnote(var/note as text) //world << "Note: [note]" var/soundfile diff --git a/icons/obj/musician.dmi b/icons/obj/musician.dmi index b0a0efe03af4fde0bbb424e2bd9a5d8c8b018b72..67b1a44eb2d6868c9d4d47461d68aafb729951ec 100644 GIT binary patch literal 4574 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 z z@((S>U4k5KbMuP@fOF?!507fV1mMUP$;z0)UPh;(T4P2AUaxmeSy`FqeW-M~TpoNr z8eJ}YK3`>l)#~wjy=&s%Z3bBT_GzA3IFaJ%6R7=CdLg0NcLrPbI4rdB@ZEFR^=Sj$ z!3-Lk`=L3^jLBxc>+Yk?A6w0kOA!G63!~Y8>O411vZZu%P`wC?2f03!?4H2z;c~e= z?x|DPQ&U3?fX@dm7c+q0-gu+u+E6ILj)UTYvNEJ2eNzh{-zIRPU9yDVeQ=m(cYPV7 z@r})4+Wcn5IrQC7f2fZ^%Xk2aXBFd`=)yHIHoen>n)zyXBZ^`~#a&*EsqeYG@cDd| zxTIgxc;o;em6ia0+TNaEI}+sg1N;G=eyfSrmM$i{Cg8M>;)6qn`H$UyS5~+3sy9DB zGFWRZ+M>}D=%FyjLc`$(e5ZZ*PHUX!h=XY6&%Tsgt*Dpwn*>2ng756Ax@WkM zv-{-gdWr?eLMVUb3x4z77ZGIzITOmyFCf?(#A?Zm_?&3Th_HkUfexZEHam0JFHpz~ zom~}K1B%9hiXj2%xhge|X|^V{RqpkAp9WaEbgAckpRdy8a(R50{(5)r)CmBn1P~hN zC*Thd@CRt`&BgApV|Umwo6X7x;Krgs<$7x2MRIJtn9XL+haAdU;auQC451vm^oGoE zYeCUv1~r4DnVot`BB^?u+wEQl;P!ee7fhSx@%em}_Wpi+K3}DK>C*KeMQY8PP20D= zCfFTz#l@%v5%34FW!sbwNEJ@`y1h3tpf_a7I*#iWukPs&vbzuzgi-R||#8^=Jr_XAX`;ebEU`vKYH*!)VM zZSS@5?A|UwAk&&ff2dCxnMy54Uga8bK}OwAif}kuMX5G78;8Tn{{11r;cy8pzIVl+ z{L4dv_d_48tv(JOI3U6zZobVWcD6S#Fc_k^_*Pn5eH<}^bVA{Q^7}=Z*=hkqmnO9K zgS&&-ga+DUp3rK^BtO4^o`7_U_~n;hCO0=X=@_u0K6Vcv9u8FKmn+hYOIj`hg2T}Y zK%r~C5Y-PzX;NN6WJP-B(E9=Y0CtC6`7R@RLq>+(VW*>`J!Vfp4cVR99d=%|bT{LAw4a%1la@2+`EkT+vw zK|p*L6z~Vg&o3b04`?1qi5?pbHH~DTjsYX+?+u}~)kjv=Yyoav?{?qE)~(NpPNz%I z+EB$(wi}7yrW@yc-2VcF;X;3