Do not crash when deleting nodes

This commit is contained in:
Rafał Mikrut 2021-03-27 18:49:01 +01:00
parent 674c2fa339
commit 211eda983f
2 changed files with 12 additions and 12 deletions

View File

@ -48,7 +48,7 @@ func _process(delta: float) -> void:
if time_to_delete < 0: if time_to_delete < 0:
time_to_delete += TIME_TO_DELETE time_to_delete += TIME_TO_DELETE
for i in get_children(): # for i in get_children():
i.queue_free() # i.queue_free()
#
_populate() # _populate()

View File

@ -60,14 +60,14 @@ func _process(delta: float) -> void:
var random_node = find_node("Special Node " + str(randi() % number_of_nodes),true,false) var random_node = find_node("Special Node " + str(randi() % number_of_nodes),true,false)
parent_of_node.remove_child(choosen_node) parent_of_node.remove_child(choosen_node)
if randi() % 10 == 0: # 10% chance to remove node with children # if randi() % 10 == 0: # 10% chance to remove node with children
var names_to_remove : Array = find_all_special_children_names(choosen_node) # var names_to_remove : Array = find_all_special_children_names(choosen_node)
for name_to_remove in names_to_remove: # for name_to_remove in names_to_remove:
var node : Node = ClassDB.instance(collected_nodes[randi() % collected_nodes.size()]) # var node : Node = ClassDB.instance(collected_nodes[randi() % collected_nodes.size()])
node.set_name(name_to_remove) # node.set_name(name_to_remove)
add_child(node) # add_child(node)
choosen_node.queue_free() # choosen_node.queue_free()
continue # continue
if choosen_node.find_node(random_node.get_name(),true,false) != null: # Cannot set as node parent one of its child if choosen_node.find_node(random_node.get_name(),true,false) != null: # Cannot set as node parent one of its child