From 1bdea2db01a76e65818868bdbe625cf076620fb8 Mon Sep 17 00:00:00 2001 From: Jordan Brown Date: Thu, 19 Oct 2017 22:36:48 -0400 Subject: [PATCH] Adds a method to transfer all components from one datum to another --- code/datums/components/_component.dm | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/code/datums/components/_component.dm b/code/datums/components/_component.dm index a4c85f78163..92896795086 100644 --- a/code/datums/components/_component.dm +++ b/code/datums/components/_component.dm @@ -217,3 +217,14 @@ C.OnTransfer(src) C.parent = src SendSignal(COMSIG_COMPONENT_ADDED, C) + +/datum/proc/TransferComponents(datum/target) + var/list/dc = datum_components + if(!dc) + return + var/comps = dc[/datum/component] + if(islist(comps)) + for(var/I in comps) + target.TakeComponent(I) + else + target.TakeComponent(comps)