39 lines
1.0 KiB
GDScript
39 lines
1.0 KiB
GDScript
extends Node
|
|
|
|
func _on_save_button_pressed() -> void:
|
|
var save_nodes = get_tree().get_nodes_in_group("SaveObjects")
|
|
var save_file = FileAccess.open("user://savegame.save", FileAccess.WRITE)
|
|
for node in save_nodes:
|
|
|
|
if not node.has_method("save"):
|
|
print("no method")
|
|
continue
|
|
|
|
var node_data = node.save()
|
|
|
|
save_file.store_var(node_data)
|
|
|
|
pass # Replace with function body.
|
|
|
|
func _on_load_button_pressed():
|
|
|
|
if not FileAccess.file_exists("user://savegame.save"):
|
|
print("no save to load")
|
|
return
|
|
|
|
#var save_nodes = get_tree().get_nodes_in_group("SaveObjects")
|
|
#for i in save_nodes:
|
|
#print(i)
|
|
#i.free()
|
|
|
|
get_node("/root/Game/PlaceManager/BasePlace").free()
|
|
|
|
var save_file = FileAccess.open("user://savegame.save", FileAccess.READ)
|
|
|
|
while save_file.get_position() < save_file.get_length():
|
|
var next_load = save_file.get_var()
|
|
var load_object = load(next_load["scene_file_path"]).instantiate()
|
|
for i in next_load.keys():
|
|
load_object.set(i, next_load[i])
|
|
get_node(next_load["parent"]).add_child(load_object)
|