mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2025-12-19 14:51:27 +00:00
* 515 compat * double spaces * Callback documentation, aa review * spacing * NAMEOF_STATIC * big beta
30 lines
1.1 KiB
Plaintext
30 lines
1.1 KiB
Plaintext
/datum/component/emissive_blocker
|
|
/// Stores either the mutable_appearance or a list of them
|
|
var/stored_blocker
|
|
|
|
/datum/component/emissive_blocker/Initialize(_stored_blocker)
|
|
var/atom/movable/A = parent
|
|
stored_blocker = _stored_blocker
|
|
RegisterSignal(parent, COMSIG_ATOM_UPDATE_ICON_STATE, PROC_REF(update_generic_block))
|
|
A.add_overlay(stored_blocker)
|
|
|
|
/datum/component/emissive_blocker/Destroy()
|
|
stored_blocker = null
|
|
return ..()
|
|
|
|
/// Updates the generic blocker when the icon_state is changed
|
|
/datum/component/emissive_blocker/proc/update_generic_block(datum/source)
|
|
var/atom/movable/A = parent
|
|
if(!A.blocks_emissive && stored_blocker)
|
|
A.cut_overlay(stored_blocker)
|
|
stored_blocker = null
|
|
return
|
|
if(!A.blocks_emissive)
|
|
return
|
|
var/mutable_appearance/gen_emissive_blocker = emissive_blocker(A.icon, A.icon_state, alpha = A.alpha, appearance_flags = A.appearance_flags)
|
|
gen_emissive_blocker.dir = A.dir
|
|
if(gen_emissive_blocker != stored_blocker || !A.overlays)
|
|
A.cut_overlay(stored_blocker)
|
|
stored_blocker = gen_emissive_blocker
|
|
A.add_overlay(stored_blocker)
|