2025-04-16 00:16:39 +02:00
|
|
|
extends Node
|
|
|
|
|
|
|
|
const names := [
|
|
|
|
"user://save_file_1.save",
|
|
|
|
"user://save_file_2.save",
|
|
|
|
"user://save_file_3.save",
|
|
|
|
]
|
|
|
|
|
2025-04-29 21:18:04 +02:00
|
|
|
var selected_file: String
|
2025-04-16 00:16:39 +02:00
|
|
|
|
|
|
|
func _ready() -> void:
|
|
|
|
for save_file_name in names:
|
|
|
|
ensure_existence(save_file_name)
|
|
|
|
|
|
|
|
func ensure_existence(save_file_name: String) -> void:
|
|
|
|
if save_file_name in names and not FileAccess.file_exists(save_file_name):
|
|
|
|
print("Save file ", save_file_name, " not found, creating it")
|
|
|
|
empty(save_file_name)
|
|
|
|
|
|
|
|
func empty(save_file_name: String) -> void:
|
|
|
|
print("Writing an empty object on ", save_file_name)
|
2025-04-20 23:25:51 +02:00
|
|
|
write(JSON.stringify({}), save_file_name)
|
2025-04-16 00:16:39 +02:00
|
|
|
|
|
|
|
func read(save_file_name: String) -> Variant:
|
2025-04-29 21:18:04 +02:00
|
|
|
print("Reading from save file ", save_file_name)
|
2025-04-16 00:16:39 +02:00
|
|
|
ensure_existence(save_file_name)
|
|
|
|
selected_file = save_file_name
|
|
|
|
|
|
|
|
var save_file := FileAccess.open(save_file_name, FileAccess.READ)
|
|
|
|
var json := JSON.new()
|
|
|
|
var json_string := save_file.get_line()
|
|
|
|
|
|
|
|
if json.parse(json_string) != OK:
|
|
|
|
print("(SAVES) JSON Parse Error: ", json.get_error_message(), " in ", json_string, " at line ", json.get_error_line())
|
|
|
|
return {}
|
|
|
|
|
|
|
|
return json.data
|
2025-04-20 23:25:51 +02:00
|
|
|
|
|
|
|
func write(json_string: String, save_file_name: String) -> void:
|
|
|
|
var save_file := FileAccess.open(save_file_name, FileAccess.WRITE)
|
|
|
|
save_file.store_line(json_string)
|
|
|
|
save_file.store_line("FOR YOUR SAFETY, ALWAYS CHECK IF THE DATA OF THE FILES YOU DOWNLOAD LOOKS OKAY")
|
|
|
|
|
|
|
|
func change_property(property: String, value, save_file_name: String) -> void:
|
2025-04-29 21:18:04 +02:00
|
|
|
print("Changing property '", property, "' on save file ", save_file_name)
|
2025-04-20 23:25:51 +02:00
|
|
|
ensure_existence(save_file_name)
|
|
|
|
var data = read(save_file_name)
|
|
|
|
data[property] = value
|
|
|
|
write(JSON.stringify(data), save_file_name)
|