Refactor save/load functionality; improve error messages and add save data timer

This commit is contained in:
Kirill
2026-07-10 20:36:44 +03:00
parent 45cfc8c8ee
commit 5820bbc7b2
5 changed files with 83 additions and 33 deletions
+5 -18
View File
@@ -5,25 +5,14 @@ extends Node
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)
#region Save Load routines
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("Не удалось открыть файл для шифрованной записи")
push_error("Can't write to the file: ", filename)
return
file.store_var(data) # бинарно + быстрее + сериализация
@@ -37,17 +26,15 @@ func load_data(filename: String, password: String) -> Dictionary:
var file := FileAccess.open_encrypted_with_pass(filename, FileAccess.READ, password)
if file == null:
push_error("Неверный пароль или повреждённый файл")
push_error(filename, " couldn't be decrypted.")
return {}
var data:Variant = file.get_var()
var data: Variant = file.get_var()
file.close()
#print("data")
#print(data)
return data if data is Dictionary else {}
#endregion
#region Settings