aboutsummaryrefslogtreecommitdiff
path: root/client/global.gd
blob: 6d4cf4fc4152873979bd21a56f36e554f8adb970 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
extends Node

const DEFAULT_SETTINGS := {
	"username": "Giovanni",
	"character": 0
}

var settings := DEFAULT_SETTINGS.duplicate(true)

var server_url = ""
var error_message = ""

func _ready():
	load_profile()

func save_profile():
	print("Save profile")
	var f = FileAccess.open("user://profile", FileAccess.WRITE)
	f.store_line(JSON.stringify(settings))

func load_profile():
	# TOCTOU here. Godot docs says its fine.
	if not FileAccess.file_exists("user://profile"):
		print("Skip profile load")
		return
	print("Load profile")
	var f = FileAccess.open("user://profile", FileAccess.READ)
	settings = JSON.parse_string(f.get_line())
	
	# Add missing keys
	for k in DEFAULT_SETTINGS.keys():
		if !settings.has(k):
			settings[k] = DEFAULT_SETTINGS[k]