61 lines
999 B
GDScript
61 lines
999 B
GDScript
class_name RPGH_DataManager
|
|
extends Node
|
|
|
|
|
|
var current_map = null
|
|
var game_version: String
|
|
|
|
var _game_data = "user://save.json"
|
|
|
|
var default_data = {
|
|
"options": {
|
|
"music_volume": 0.5
|
|
}
|
|
}
|
|
|
|
var global_data = {}
|
|
|
|
|
|
func _ready():
|
|
game_version = ProjectSettings.get_setting("application/config/version")
|
|
load_from_file()
|
|
print(game_version)
|
|
|
|
|
|
func write_in_dictionary(key, value):
|
|
global_data[key] = value
|
|
|
|
|
|
func save_to_file():
|
|
var f = File.new()
|
|
f.open(_game_data, File.WRITE)
|
|
f.store_line(to_json(global_data))
|
|
f.close()
|
|
|
|
|
|
func load_from_file():
|
|
var f = File.new()
|
|
if !f.file_exists(_game_data):
|
|
default_data()
|
|
return
|
|
if f.open(_game_data, File.READ) != OK:
|
|
f.close()
|
|
return
|
|
var text := JSON.parse(f.get_as_text())
|
|
if text.result == null:
|
|
default_data()
|
|
push_error("Can't parse JSON, Save File is corrupted")
|
|
return
|
|
else:
|
|
return
|
|
f.close()
|
|
global_data = text.result
|
|
|
|
|
|
func default_data():
|
|
global_data = default_data
|
|
|
|
|
|
func _on_Button_button_down():
|
|
save_to_file()
|