[MIRROR] (code bounty) refactors all uses of Crossed() and Uncrossed() into signals sent to loc, tracked by connect_loc (#5524)

* (code bounty) refactors all uses of Crossed() and Uncrossed() into signals sent to loc, tracked by connect_loc

* WHEW THAT WAS EASY

* Update ammo.dm

Co-authored-by: Kylerace <kylerlumpkin1@gmail.com>
Co-authored-by: Gandalf <jzo123@hotmail.com>
This commit is contained in:
SkyratBot
2021-05-07 22:39:27 +01:00
committed by GitHub
co-authored by Kylerace Gandalf
parent 6b1b9656f9
commit 5880be0168
113 changed files with 728 additions and 819 deletions
-7
View File
@@ -80,13 +80,6 @@
else
bombtank.release()
//Assembly / attached device memes
/obj/item/onetankbomb/Crossed(atom/movable/AM as mob|obj) //for mousetraps
. = ..()
if(bombassembly)
bombassembly.Crossed(AM)
/obj/item/onetankbomb/on_found(mob/finder) //for mousetraps
if(bombassembly)
bombassembly.on_found(finder)
+1 -7
View File
@@ -43,6 +43,7 @@
else
a_right = A
A.holder_movement()
A.on_attach()
/obj/item/assembly_holder/update_appearance(updates=ALL)
. = ..()
@@ -70,13 +71,6 @@
right.add_overlay("[right_overlay]_l")
. += right
/obj/item/assembly_holder/Crossed(atom/movable/AM as mob|obj)
. = ..()
if(a_left)
a_left.Crossed(AM)
if(a_right)
a_right.Crossed(AM)
/obj/item/assembly_holder/on_found(mob/finder)
if(a_left)
a_left.on_found(finder)
+9 -2
View File
@@ -229,12 +229,19 @@
pass_flags_self = LETPASSTHROW
var/obj/item/assembly/infra/master
/obj/effect/beam/i_beam/Crossed(atom/movable/AM as mob|obj)
/obj/effect/beam/i_beam/Initialize(mapload)
. = ..()
var/static/list/loc_connections = list(
COMSIG_ATOM_ENTERED = .proc/on_entered,
)
AddElement(/datum/element/connect_loc, src, loc_connections)
/obj/effect/beam/i_beam/proc/on_entered(datum/source, atom/movable/AM as mob|obj)
SIGNAL_HANDLER
if(istype(AM, /obj/effect/beam))
return
if (isitem(AM))
var/obj/item/I = AM
if (I.item_flags & ABSTRACT)
return
master.trigger_beam(AM, get_turf(src))
INVOKE_ASYNC(master, /obj/item/assembly/infra.proc/trigger_beam, AM, get_turf(src))
+24 -6
View File
@@ -9,6 +9,17 @@
drop_sound = 'sound/items/handling/component_drop.ogg'
pickup_sound = 'sound/items/handling/component_pickup.ogg'
///if we are attached to an assembly holder, we attach a connect_loc element to ourselves that listens to this from the holder
var/static/list/holder_connections = list(
COMSIG_ATOM_ENTERED = .proc/on_entered,
)
/obj/item/assembly/mousetrap/Initialize()
. = ..()
var/static/list/loc_connections = list(
COMSIG_ATOM_ENTERED = .proc/on_entered,
)
AddElement(/datum/element/connect_loc, src, loc_connections)
/obj/item/assembly/mousetrap/examine(mob/user)
. = ..()
@@ -34,6 +45,14 @@
. = ..()
holder?.update_icon(updates)
/obj/item/assembly/mousetrap/on_attach()
. = ..()
AddElement(/datum/element/connect_loc, holder, holder_connections)
/obj/item/assembly/mousetrap/on_detach()
. = ..()
RemoveElement(/datum/element/connect_loc, holder, holder_connections)
/obj/item/assembly/mousetrap/proc/triggered(mob/target, type = "feet")
if(!armed)
return
@@ -107,7 +126,8 @@
return ..()
/obj/item/assembly/mousetrap/Crossed(atom/movable/AM as mob|obj)
/obj/item/assembly/mousetrap/proc/on_entered(datum/source, atom/movable/AM as mob|obj)
SIGNAL_HANDLER
if(armed)
if(ismob(AM))
var/mob/MM = AM
@@ -115,15 +135,13 @@
if(ishuman(AM))
var/mob/living/carbon/H = AM
if(H.m_intent == MOVE_INTENT_RUN)
triggered(H)
INVOKE_ASYNC(src, .proc/triggered, H)
H.visible_message("<span class='warning'>[H] accidentally steps on [src].</span>", \
"<span class='warning'>You accidentally step on [src]</span>")
else if(ismouse(MM) || israt(MM) || isregalrat(MM))
triggered(MM)
INVOKE_ASYNC(src, .proc/triggered, MM)
else if(AM.density) // For mousetrap grenades, set off by anything heavy
triggered(AM)
..()
INVOKE_ASYNC(src, .proc/triggered, AM)
/obj/item/assembly/mousetrap/on_found(mob/finder)
if(armed)