fixed gravity strength being possibly strong at level beginning fixed restarting being allowed after getting the last ring fixed save file's "played_for" being reset or set to another file's fixed the displayed save file total play time not being updated on main menu maybe there's other stuff
49 lines
1.6 KiB
GDScript
49 lines
1.6 KiB
GDScript
extends Node
|
|
|
|
const names := [
|
|
"user://save_file_1.save",
|
|
"user://save_file_2.save",
|
|
"user://save_file_3.save",
|
|
]
|
|
|
|
var selected_file: String
|
|
|
|
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)
|
|
write(JSON.stringify({}), save_file_name)
|
|
|
|
func read(save_file_name: String) -> Variant:
|
|
print("Reading from save file ", save_file_name)
|
|
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
|
|
|
|
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:
|
|
print("Changing property '", property, "' on save file ", save_file_name)
|
|
ensure_existence(save_file_name)
|
|
var data = read(save_file_name)
|
|
data[property] = value
|
|
write(JSON.stringify(data), save_file_name)
|