mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2025-12-20 07:12:55 +00:00
* 515 compat * double spaces * Callback documentation, aa review * spacing * NAMEOF_STATIC * big beta
36 lines
1.0 KiB
Plaintext
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)
|