Merge pull request #10350 from Putnam3145

This commit is contained in:
Ghom
2020-01-05 23:05:13 +01:00
committed by Dip
parent 00fc2fd10b
commit b433eab324
20 changed files with 194 additions and 57 deletions
+7 -3
View File
@@ -5,7 +5,7 @@
if(type == /datum/element)
return ELEMENT_INCOMPATIBLE
if(element_flags & ELEMENT_DETACH)
RegisterSignal(target, COMSIG_PARENT_QDELETING, .proc/Detach)
RegisterSignal(target, COMSIG_PARENT_QDELETING, .proc/Detach, override = TRUE)
/datum/element/proc/Detach(datum/source, force)
UnregisterSignal(source, COMSIG_PARENT_QDELETING)
@@ -24,6 +24,10 @@
if(ele.Attach(arglist(args)) == ELEMENT_INCOMPATIBLE)
CRASH("Incompatible [eletype] assigned to a [type]! args: [json_encode(args)]")
/datum/proc/RemoveElement(eletype)
var/datum/element/ele = SSdcs.GetElement(eletype)
/**
* Finds the singleton for the element type given and detaches it from src
* You only need additional arguments beyond the type if you're using ELEMENT_BESPOKE
*/
/datum/proc/RemoveElement(eletype, ...)
var/datum/element/ele = SSdcs.GetElement(arglist(args))
ele.Detach(src)