Files
Paradise/code/datums/components/persistent_overlay.dm
S34N 667dd5d4ac 515 Compatibility (#19636)
* 515 compat

* double spaces

* Callback documentation, aa review

* spacing

* NAMEOF_STATIC

* big beta
2022-11-08 23:08:40 +00:00

36 lines
1.0 KiB
Plaintext

/datum/component/persistent_overlay
var/image/persistent_overlay = null
var/atom/target = null
/datum/component/persistent_overlay/Initialize(image_overlay, _target, timer)
persistent_overlay = image_overlay
target = _target
if(timer)
addtimer(CALLBACK(src, PROC_REF(remove_persistent_overlay)), timer)
if(target)
RegisterSignal(target, COMSIG_PARENT_QDELETING, PROC_REF(remove_persistent_overlay))
RegisterSignal(parent, COMSIG_PARENT_QDELETING, PROC_REF(remove_persistent_overlay))
add_persistent_overlay()
/datum/component/persistent_overlay/Destroy()
persistent_overlay = null
target = null
return ..()
/datum/component/persistent_overlay/proc/remove_persistent_overlay(datum/source)
var/atom/movable/A
if(target)
A = target
else
A = parent
A.cut_overlay(persistent_overlay, priority = TRUE)
qdel(src)
/datum/component/persistent_overlay/proc/add_persistent_overlay(datum/source)
var/atom/movable/A
if(target)
A = target
else
A = parent
A.add_overlay(persistent_overlay, priority = TRUE)