# SaveManager.gd (добавить в AutoLoad) extends Node # ~/Library/Application Support/Godot/app_userdata/Owniverse Adventure/savegame.cfg const SETTING_SECTION := "Settings" const SAVE_PATH = "user://settings.cfg" func ch(): pass #print(Global.Owniverse) #print('h') #save_data('ow1', 'test', Global.Owniverse) #var d1: Dictionary = load_data('ow1', 'test1') #print("d1: ", d1) #var d2: Dictionary = load_data('ow1', 'test') #print("d2: ", d2) #print('d') #print(Global.Owniverse.datetime.WEEKDAYS) func save_data(filename: String, password: String, data: Dictionary) -> void: filename = "user://" + filename + ".adventure" var file := FileAccess.open_encrypted_with_pass(filename, FileAccess.WRITE, password) if file == null: push_error("Не удалось открыть файл для шифрованной записи") return file.store_var(data) # бинарно + быстрее + сериализация file.close() func load_data(filename: String, password: String) -> Dictionary: filename = "user://" + filename + ".adventure" if not FileAccess.file_exists(filename): return {} var file := FileAccess.open_encrypted_with_pass(filename, FileAccess.READ, password) if file == null: push_error("Неверный пароль или повреждённый файл") return {} var data:Variant = file.get_var() file.close() #print("data") #print(data) return data if data is Dictionary else {} #region Settings func save_settings(): var config = ConfigFile.new() for item in Global.Settings: config.set_value(SETTING_SECTION, item, Global.Settings[item]) config.save(SAVE_PATH) func load_settings(): var config = ConfigFile.new() var err = config.load(SAVE_PATH) if err != OK: return false for item in Global.Settings: Global.Settings[item] = config.get_value(SETTING_SECTION, item, Global.Settings[item]) return true #endregion