Refactored deletion observables to use the COMSIG_QDELETING signal (#20121)

Refactored deletion observables to use the COMSIG_QDELETING signal
instead, removed the observable.
This commit is contained in:
Fluffy
2024-11-04 21:51:18 +00:00
committed by GitHub
parent ce0f722f18
commit 513facdb0d
25 changed files with 120 additions and 56 deletions
+7 -3
View File
@@ -65,14 +65,18 @@
unregister_buffer(buffer_object)
buffer_object = buffer
if(buffer_object)
GLOB.destroyed_event.register(buffer_object, src, PROC_REF(unregister_buffer))
RegisterSignal(buffer_object, COMSIG_QDELETING, PROC_REF(on_buffer_object_deletion))
update_icon()
/obj/item/device/multitool/proc/unregister_buffer(var/atom/buffer_to_unregister)
/obj/item/device/multitool/proc/on_buffer_object_deletion(datum/source)
SIGNAL_HANDLER
unregister_buffer(source)
/obj/item/device/multitool/proc/unregister_buffer(atom/buffer_to_unregister)
// Only remove the buffered object, don't reset the name
// This means one cannot know if the buffer has been destroyed until one attempts to use it.
if(buffer_to_unregister == buffer_object && buffer_object)
GLOB.destroyed_event.unregister(buffer_object, src)
UnregisterSignal(buffer_object, COMSIG_QDELETING)
buffer_object = null
update_icon()