mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-08-25 14:08:31 +01:00
[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:
co-authored by
Kylerace
Gandalf
parent
6b1b9656f9
commit
5880be0168
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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))
|
||||
|
||||
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user