@@ -394,6 +394,13 @@ func _setup_local_to_scene() -> void:
394394 GaeaGraphMigration .migrate (self )
395395
396396 _resources .clear ()
397+ var uniques = _get_unique_resources ()
398+ for id in uniques .keys ():
399+ _resources .set (id , uniques [id ])
400+
401+
402+ func _get_unique_resources () -> Dictionary [Variant , GaeaNodeResource ]:
403+ var uniques :Dictionary [Variant , GaeaNodeResource ] = {}
397404 for id in _node_data .keys ():
398405 var base_uid : String = get_node_data (id ).get (& "uid" , "" )
399406 if base_uid .is_empty ():
@@ -402,19 +409,16 @@ func _setup_local_to_scene() -> void:
402409 var resource : GaeaNodeResource = load (base_uid ).new ()
403410 if not resource is GaeaNodeResource :
404411 push_error ("Something went wrong, the resource at %s is not a GaeaNodeResource" % base_uid )
405- return
412+ return uniques
406413 resource ._load_save_data (data )
407- _resources .set (id , resource )
414+ uniques .set (id , resource )
415+ return uniques
408416
409417
410- func _duplicate (subresources :bool = false ) -> Resource :
418+ func _duplicate (_subresources :bool = false ) -> Resource :
411419 var new_graph = GaeaGraph .new ()
412- var sub_map :Dictionary [GaeaNodeResource , GaeaNodeResource ] = {}
413- for sub in resources :
414- var new_sub = sub .duplicate (true )
415- sub_map [sub ] = new_sub
416- new_graph .resources .append (new_sub )
417420
421+ new_graph .resources = _get_unique_resources ()
418422 new_graph .resource_uids = resource_uids .duplicate (true )
419423 new_graph .connections = connections .duplicate (true )
420424 new_graph .node_data = node_data .duplicate (true )
0 commit comments