extends Node # Declare member variables here. Examples: # var a = 2 # var b = "text" const SaveGame = preload('res://SaveSystem/GameSave.gd') var SAVE_FOLDER : String = "res://SaveSystem/SaveLocations" var SAVE_NAME_TEMPLATE : String = "save_%03D.tres" func save(id : int): """ Passes a save game resource to all nodes to save data from and writes it to the disk Modfied from GDQuest's Godot Lesson Found Here: https://www.youtube.com/watch?v=ML-hiNytIqE """ var save_game := SaveGame.new() save_game.game_version = ProjectSettings.get_setting("application/config/version") for node in get_tree().get_nodes_in_group('save'): node.save(save_game) var directory : Directory = Directory.new() if not directory.dir.exists(SAVE_FOLDER): directory.make_dir_recursive(SAVE_FOLDER) var save_path = SAVE_FOLDER.plus_file(SAVE_NAME_TEMPLATE % id) var error : int = ResourceSaver.save(save_path, save_game) if error != OK: print('There was an issue writing the save %s to %s' % [id, save_path]) func load(id : int): var save_file_path : String = SAVE_FOLDER.plus_file(SAVE_NAME_TEMPLATE % id) var file : File = File.new() if not file.file_exists(save_file_path): print("Save file %s doesn't exist" % save_file_path) return var save_game : Resource = load(save_file_path) for node in get_tree().get_nodes_in_group('save'): node.load(save_game)