|
|
@ -62,3 +62,29 @@ func load_game() -> void: |
|
|
|
for resource: Resource in game_data_resource.save_data_nodes: |
|
|
|
if resource is Node3DDataResource: |
|
|
|
(resource as Node3DDataResource)._load_data(root_node) |
|
|
|
|
|
|
|
|
|
|
|
func list_saves() -> Array[SaveFileDetailsResource]: # TODO: Update hints |
|
|
|
var save_files: Array[SaveFileDetailsResource] = [] |
|
|
|
if !DirAccess.dir_exists_absolute(save_game_data_path): |
|
|
|
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 |
|
|
|
|
|
|
|
var _save_path: String = save_game_data_path + filename |
|
|
|
var _save_icon: String = filename.replace(".tres", ".png") |
|
|
|
var _save_resource: SaveFileDetailsResource = SaveFileDetailsResource.new() |
|
|
|
var _loaded_file: FileAccess = FileAccess.open(_save_path, FileAccess.READ) |
|
|
|
|
|
|
|
_save_resource.filename = filename |
|
|
|
_save_resource.date_created = Time.get_datetime_string_from_unix_time(FileAccess.get_modified_time(_save_path)) |
|
|
|
_save_resource.filesize = _loaded_file.get_length() |
|
|
|
|
|
|
|
if FileAccess.file_exists(save_game_data_path + _save_icon): |
|
|
|
_save_resource.save_icon = _save_icon |
|
|
|
|
|
|
|
save_files.append(_save_resource) |
|
|
|
|
|
|
|
return save_files |