diff --git a/code/modules/mod/mod_control.dm b/code/modules/mod/mod_control.dm index eef28485dcf..51f8bc7aeb3 100644 --- a/code/modules/mod/mod_control.dm +++ b/code/modules/mod/mod_control.dm @@ -91,6 +91,23 @@ /// Is the jetpack on so we should make ion effects? var/jetpack_active = FALSE +/obj/item/mod/control/serialize() + var/list/data = ..() + var/list/modules_list = list() + for(var/obj/item/mod/module/mod as anything in modules) + modules_list.Add(list(mod.serialize())) + data["modules"] = modules_list + return data + +/obj/item/mod/control/deserialize(list/data) + if(data["modules"]) + for(var/old_mods in modules) + uninstall(old_mods, deleting = TRUE) + for(var/obj/item/mod/module/module as anything in data["modules"]) + module = list_to_object(module, src) + install(module) + ..() + /obj/item/mod/control/Initialize(mapload, datum/mod_theme/new_theme, new_skin, obj/item/mod/core/new_core) . = ..() if(new_theme) diff --git a/code/modules/mod/modules/modules_general.dm b/code/modules/mod/modules/modules_general.dm index f926956a6aa..d79223c6189 100644 --- a/code/modules/mod/modules/modules_general.dm +++ b/code/modules/mod/modules/modules_general.dm @@ -16,6 +16,17 @@ var/max_items = 7 var/obj/item/storage/backpack/modstorage/bag +/obj/item/mod/module/storage/serialize() + var/list/data = ..() + data["bag"] = bag.serialize() + return data + +/obj/item/mod/module/storage/deserialize(list/data) + . = ..() + qdel(bag) + bag = list_to_object(data["bag"], src) + bag.source = src + /obj/item/mod/module/storage/Initialize(mapload) . = ..() var/obj/item/storage/backpack/modstorage/S = new(src)