|
|
@ -11,7 +11,7 @@ signal game_saved |
|
|
|
signal game_loaded |
|
|
|
signal refresh_saves_list |
|
|
|
signal create_auto_save_file |
|
|
|
signal create_save_file(filename: String) |
|
|
|
signal create_save_file(save_name: String) |
|
|
|
signal delete_save_file(filename: String) |
|
|
|
signal load_save_file(filename: String) |
|
|
|
signal quick_save |
|
|
@ -27,7 +27,7 @@ var _save_level_data_component: SaveLevelDataComponent ## Contains the save path |
|
|
|
func _ready() -> void: |
|
|
|
quick_load.connect(quick_load_game) |
|
|
|
quick_save.connect(quick_load_game) |
|
|
|
create_save_file.connect(_save_game_as_resource) |
|
|
|
create_save_file.connect(_on_save_game_as_resource) |
|
|
|
load_save_file.connect(_load_game_resource) |
|
|
|
|
|
|
|
func _unhandled_input(event: InputEvent) -> void: |
|
|
@ -130,7 +130,7 @@ func _save_game_as_resource(resource_filename: String) -> void: |
|
|
|
|
|
|
|
var result: int = ResourceSaver.save(_game_data_resource, save_game_file_path) |
|
|
|
if result != OK: |
|
|
|
printerr("Failed to save game: ", result) |
|
|
|
printerr("Failed to save game (" , result, "): ", save_game_file_path) |
|
|
|
|
|
|
|
## Save the properties defined on the SaveDataComponents attached to various nodes (such as Block) |
|
|
|
func _save_node_data() -> void: |
|
|
@ -144,3 +144,14 @@ func _save_node_data() -> void: |
|
|
|
var save_data_resource: Node3DDataResource = node._save_data() |
|
|
|
var save_final_resource: Node3DDataResource = save_data_resource.duplicate() |
|
|
|
_game_data_resource.save_data_nodes.append(save_final_resource) |
|
|
|
|
|
|
|
|
|
|
|
func _on_save_game_as_resource(save_name: String) -> void: |
|
|
|
if not _load_save_level_data_component(): return |
|
|
|
|
|
|
|
var current_date: String = Time.get_datetime_string_from_system().replace(":", "") |
|
|
|
var _filename: String = "save_" + current_date + ".tres" |
|
|
|
|
|
|
|
_game_data_resource.save_name = save_name |
|
|
|
_save_game_as_resource(_filename) |
|
|
|
game_saved.emit() |