diff --git a/addons/save_load_system/autoloads/save_game_manager.gd b/addons/save_load_system/autoloads/save_game_manager.gd index cc1437b..c8da766 100644 --- a/addons/save_load_system/autoloads/save_game_manager.gd +++ b/addons/save_load_system/autoloads/save_game_manager.gd @@ -28,6 +28,7 @@ signal quick_load signal toggle_save_icon_generation(toggled: bool) ## Enable/Disable the generation of a screenshot during save for the save icon. +var _autosave_timer: Timer = Timer.new() var _enable_save_icon_generation: bool = true var _loaded_save_resource: SaveGameDataResource = SaveGameDataResource.new() var _save_game_settings: SaveGameSettings ## Contains the save paths, filename prepends, and other save settings @@ -45,6 +46,11 @@ func _ready() -> void: stop_autosave.connect(_on_stop_autosave) toggle_save_icon_generation.connect(_on_toggle_save_icon_generation) + _autosave_timer.name = "AutosaveTimer" + _autosave_timer.one_shot = false + _autosave_timer.timeout.connect(_on_autosave_timer_timeout) + add_child(_autosave_timer) + func _unhandled_input(event: InputEvent) -> void: if event.is_action_pressed("quick_save"): quick_save.emit() @@ -96,6 +102,18 @@ func list_saves(include_quick_saves: bool = true, include_auto_saves: bool = tru return save_files +func _create_autosave() -> void: + if not _load_save_settings(): return + + autosave_start.emit() + + _move_autosaves() + + var autosave_filename: String = _save_game_settings.autosave_file_name_prepend + "01.tres" + _save_game_as_resource("Auto Save", autosave_filename) + + autosave_complete.emit() + ## Sort the save files list by date created, descending func _custom_save_file_sort(a: SaveFileDetailsResource, b: SaveFileDetailsResource) -> bool: return a.date_created > b.date_created @@ -229,16 +247,7 @@ func _on_apply_save() -> void: apply_complete.emit() func _on_autosave_timer_timeout() -> void: - if not _load_save_settings(): return - - autosave_start.emit() - - _move_autosaves() - - var autosave_filename: String = _save_game_settings.autosave_file_name_prepend + "01.tres" - _save_game_as_resource("Auto Save", autosave_filename) - - autosave_complete.emit() + _create_autosave() ## Delete both the save file and the related screenshot func _on_delete_save(filename: String) -> void: @@ -274,22 +283,12 @@ func _on_save_game_as_resource(save_name: String) -> void: save_complete.emit() func _on_start_autosave() -> void: - if _save_game_settings == null: _load_save_settings() - - var autosave_timer: Timer = get_node_or_null("AutosaveTimer") - if autosave_timer == null: - autosave_timer = Timer.new() - autosave_timer.name = "AutosaveTimer" - autosave_timer.one_shot = false - autosave_timer.timeout.connect(_on_autosave_timer_timeout) - add_child(autosave_timer) - - autosave_timer.start(_save_game_settings.autosave_duration) + if _save_game_settings == null: + _load_save_settings() + _autosave_timer.start(_save_game_settings.autosave_duration) func _on_stop_autosave() -> void: - var autosave_timer: Timer = get_node_or_null("AutosaveTimer") - if autosave_timer == null: return - autosave_timer.stop() + _autosave_timer.stop() func _on_toggle_save_icon_generation(toggled: bool) -> void: _enable_save_icon_generation = toggled