From 61263daa0b18b1d4973b962eb73514f423a752b6 Mon Sep 17 00:00:00 2001 From: Jordan Brown Date: Thu, 3 May 2018 09:42:54 -0400 Subject: [PATCH 1/2] Merge pull request #37625 from ShizCalev/infrared Updates infrared emitters to use the rotate component --- code/modules/assembly/infrared.dm | 32 ++++++++++++++----------------- 1 file changed, 14 insertions(+), 18 deletions(-) diff --git a/code/modules/assembly/infrared.dm b/code/modules/assembly/infrared.dm index 374c7762d4..35a2074f94 100644 --- a/code/modules/assembly/infrared.dm +++ b/code/modules/assembly/infrared.dm @@ -1,6 +1,6 @@ /obj/item/assembly/infra name = "infrared emitter" - desc = "Emits a visible or invisible beam and is triggered when the beam is interrupted.\nAlt-click to rotate it clockwise." + desc = "Emits a visible or invisible beam and is triggered when the beam is interrupted." icon_state = "infrared" materials = list(MAT_METAL=1000, MAT_GLASS=500) @@ -16,6 +16,19 @@ beams = list() START_PROCESSING(SSobj, src) +/obj/item/assembly/infra/ComponentInitialize() + . = ..() + AddComponent( + /datum/component/simple_rotation, + ROTATION_ALTCLICK | ROTATION_CLOCKWISE | ROTATION_COUNTERCLOCKWISE | ROTATION_FLIP | ROTATION_VERBS, + null, + null, + CALLBACK(src,.proc/after_rotation) + ) + +/obj/item/assembly/infra/proc/after_rotation() + refreshBeam() + /obj/item/assembly/infra/Destroy() QDEL_LIST(beams) return ..() @@ -157,23 +170,6 @@ if(usr) attack_self(usr) -/obj/item/assembly/infra/verb/rotate()//This could likely be better - set name = "Rotate Infrared Laser" - set category = "Object" - set src in usr - - if(!usr.canUseTopic(src, BE_CLOSE, NO_DEXTERY)) - return - - setDir(turn(dir, -90)) - -/obj/item/assembly/infra/AltClick(mob/user) - ..() - if(!user.canUseTopic(src, BE_CLOSE, NO_DEXTERY)) - return - else - rotate() - /obj/item/assembly/infra/setDir() . = ..() refreshBeam()