|
|
@ -20,7 +20,7 @@ signal open_save_list_ui |
|
|
|
signal close_save_list_ui |
|
|
|
|
|
|
|
|
|
|
|
var _game_data_resource: SaveGameDataResource |
|
|
|
var _game_data_resource: SaveGameDataResource = SaveGameDataResource.new() |
|
|
|
var _save_level_data_component: SaveLevelDataComponent ## Contains the save paths and filenames |
|
|
|
|
|
|
|
|
|
|
@ -37,7 +37,7 @@ func _unhandled_input(event: InputEvent) -> void: |
|
|
|
quick_load_game() |
|
|
|
|
|
|
|
|
|
|
|
func list_saves() -> Array[SaveFileDetailsResource]: |
|
|
|
func list_saves(include_quick_saves: bool = true, include_auto_saves: bool = true) -> Array[SaveFileDetailsResource]: |
|
|
|
var save_files: Array[SaveFileDetailsResource] = [] |
|
|
|
if not _load_save_level_data_component(): |
|
|
|
return save_files |
|
|
@ -47,8 +47,10 @@ func list_saves() -> Array[SaveFileDetailsResource]: |
|
|
|
return save_files |
|
|
|
|
|
|
|
for filename: String in ResourceLoader.list_directory(save_game_data_path): |
|
|
|
if !filename.begins_with("save_"): continue |
|
|
|
if !filename.ends_with(".tres"): continue # Screenshots, etc |
|
|
|
# TODO: Rework so the settings determine the file_name prepends |
|
|
|
if filename.begins_with("quicksave_") and not include_quick_saves: continue |
|
|
|
elif filename.begins_with("autosave_") and not include_auto_saves: continue |
|
|
|
elif !filename.begins_with("save_") and !filename.begins_with("quicksave_") and !filename.begins_with("autosave_"): continue |
|
|
|
|
|
|
|
var _save_path: String = save_game_data_path + filename |
|
|
|
var _save_icon: String = filename.replace(".tres", ".png") |
|
|
@ -78,6 +80,7 @@ func list_saves() -> Array[SaveFileDetailsResource]: |
|
|
|
func quick_save_game() -> void: |
|
|
|
if not _load_save_level_data_component(): return |
|
|
|
|
|
|
|
_game_data_resource.save_name = "Quick Save" |
|
|
|
_save_game_as_resource(_save_level_data_component.settings.quicksave_file_name) |
|
|
|
game_saved.emit() |
|
|
|
|
|
|
@ -135,7 +138,6 @@ func _save_node_data() -> void: |
|
|
|
|
|
|
|
if nodes == null: return |
|
|
|
|
|
|
|
_game_data_resource = SaveGameDataResource.new() |
|
|
|
for node: Node in nodes: |
|
|
|
if node is SaveDataComponent: |
|
|
|
@warning_ignore("unsafe_method_access") |
|
|
|