20 lines
518 B
GDScript
20 lines
518 B
GDScript
extends Node
|
|
|
|
class_name GameSystems
|
|
|
|
func serialize() -> Dictionary:
|
|
var systems := {}
|
|
for child in get_children():
|
|
systems[child.name] = {
|
|
"script": child.script.resource_path,
|
|
"data": child.serialize()
|
|
}
|
|
return systems
|
|
|
|
func deserialize(data: Dictionary) -> void:
|
|
for system_name in data:
|
|
var system_data := data[system_name] as Dictionary
|
|
var system_node = load(system_data.script).new()
|
|
system_node.name = system_name
|
|
add_child(system_node, true)
|
|
system_node.deserialize(system_data.data)
|