const FILE_NAME = "user://game-data.json"
# Функция для преобразования данных в сериализуемый формат
func make_serializable(data):
match typeof(data):
TYPE_ARRAY:
var serialized = []
for item in data:
serialized.append(make_serializable(item))
return serialized
TYPE_DICTIONARY:
var serialized = {}
for key in data:
serialized[key] = make_serializable(data[key])
return serialized
TYPE_OBJECT:
if data is Resource:
return {"resource_path": data.resource_path}
return str(data) # Для объектов, которые нельзя сериализовать
_:
return data
func _save() -> void:
var serialized_data = make_serializable(tosave)
var save_file = FileAccess.open(FILE_NAME, FileAccess.WRITE)
save_file.store_line(JSON.stringify(serialized_data))
save_file.close()
func _load() -> void:
if not FileAccess.file_exists(FILE_NAME):
return
var save_file = FileAccess.open(FILE_NAME, FileAccess.READ)
var json = JSON.new()
var parse_result = json.parse(save_file.get_line())
if parse_result == OK:
tosave = json.get_data()
save_file.close()
const FILE_NAME = "user://game-data.json"
var tosave = {
"authorizated" : authorizated,
"name" : username
}
func _save()->void:
print(ProjectSettings.globalize_path(FILE_NAME))
var save_file = FileAccess.open (FILE_NAME, FileAccess.WRITE)
save_ file.store _line(JSON.stringify(tosave))
save_file.close()
func _load() -> void:
var save_file = FileAccess.open (FILE_NAME, FileAccess.READ )
while save_file.get_position() < save_file.get_length():
var json = JSON.new ()
json.parse(save_file.get_line())
var node_data = json.get_data()
tosave = node_data
save_file.close()