Goonstation 13 - Modules - Types

code/datums/components/complexsignal/complexsignal.dm

/datum/component/complexsignalHandler for a complex singal, that is a signal that requires some additional handling. You define such signal for example as: #define XSIG_OUTERMOST_MOVABLE_CHANGED list(/datum/component/complexsignal/outermost_movable, "mov_outermost_changed") When this signal gets registered at least once once to a datum the appropriate complex signal component will get registered to it. When all instances of this signal get unregistered then the component will qdel itself unless [qdel_when_unneeded] is unset. The intended use is for this component to keep some more complex and resource intensive handling (possibly using other signals) and then send the actual complex signal when some conditions are met. That signal should be set to src like this: SEND_COMPLEX_SIGNAL(src, X_OUTERMOST_MOVABLE_CHANGED, old_outermost, new_outermost)