aboutsummaryrefslogtreecommitdiff
path: root/client/gui/menus/settings
diff options
context:
space:
mode:
authormetamuffin <metamuffin@disroot.org>2025-09-15 01:26:13 +0200
committermetamuffin <metamuffin@disroot.org>2025-09-15 01:38:34 +0200
commit676d4dcb6c439677b91b1b5cbc0bf08f98e2dd9d (patch)
tree5cd83591e230833735fbdacf41df5c1d69dd8c0e /client/gui/menus/settings
parent4e196b83a42b9b217e3b7107b55a14cb1a005b84 (diff)
downloadhurrycurry-676d4dcb6c439677b91b1b5cbc0bf08f98e2dd9d.tar
hurrycurry-676d4dcb6c439677b91b1b5cbc0bf08f98e2dd9d.tar.bz2
hurrycurry-676d4dcb6c439677b91b1b5cbc0bf08f98e2dd9d.tar.zst
Refactor settings; store as JSON; input settings now broken
Diffstat (limited to 'client/gui/menus/settings')
-rw-r--r--client/gui/menus/settings/dropdown_setting.gd2
-rw-r--r--client/gui/menus/settings/game_setting.gd20
-rw-r--r--client/gui/menus/settings/input/input_manager.gd6
-rw-r--r--client/gui/menus/settings/input/input_setting.gd7
-rw-r--r--client/gui/menus/settings/number_setting.gd6
-rw-r--r--client/gui/menus/settings/preset_row.gd5
-rw-r--r--client/gui/menus/settings/range_setting.gd2
-rw-r--r--client/gui/menus/settings/settings.gd4
-rw-r--r--client/gui/menus/settings/settings_category.gd12
-rw-r--r--client/gui/menus/settings/settings_root.gd12
-rw-r--r--client/gui/menus/settings/text_setting.gd2
-rw-r--r--client/gui/menus/settings/toggle_setting.gd2
12 files changed, 37 insertions, 43 deletions
diff --git a/client/gui/menus/settings/dropdown_setting.gd b/client/gui/menus/settings/dropdown_setting.gd
index 514df666..69ae29b6 100644
--- a/client/gui/menus/settings/dropdown_setting.gd
+++ b/client/gui/menus/settings/dropdown_setting.gd
@@ -32,5 +32,5 @@ func create_row():
if is_instance_valid(row):
row.value_node.select(options.find(value))
)
- row.value_node.item_selected.connect(func(item): Global.set_setting(key, options[item]))
+ row.value_node.item_selected.connect(func(item): Settings.write(key, options[item]))
return row
diff --git a/client/gui/menus/settings/game_setting.gd b/client/gui/menus/settings/game_setting.gd
index 1c04ad3b..1dfee59e 100644
--- a/client/gui/menus/settings/game_setting.gd
+++ b/client/gui/menus/settings/game_setting.gd
@@ -31,16 +31,16 @@ func set_parent(parent: GameSetting):
func create_row():
var row = preload("res://gui/menus/settings/settings_row.tscn").instantiate()
row.description = tr(nskey)
- row.reset.connect(func(): Global.set_setting(key, default))
+ row.reset.connect(func(): Settings.write(key, default))
return row
-func check():
- if default != null:
- if not key in Global.settings:
- Global.set_setting_unchecked(key, default)
- if typeof(default) != typeof(Global.settings[key]):
- Global.set_setting_unchecked(key, default)
+func load(d: Dictionary):
+ if d.has(key) && typeof(d[key]) == typeof(default):
+ Settings.write_unchecked(key, d[key])
+ elif default != null:
+ Settings.write_unchecked(key, default)
-func changed_keys():
- if Global.get_setting(key) != default: return [key]
- else: return []
+func save(d: Dictionary):
+ var value = Settings.read(key)
+ if value == default: return
+ d[key] = value
diff --git a/client/gui/menus/settings/input/input_manager.gd b/client/gui/menus/settings/input/input_manager.gd
index e3158a03..7fe814ff 100644
--- a/client/gui/menus/settings/input/input_manager.gd
+++ b/client/gui/menus/settings/input/input_manager.gd
@@ -62,7 +62,7 @@ func change_input_map_action(action_name: String, events: Array, save: bool = tr
# Update input map dictionary
input_map = get_input_map()
# Save settings
- Global.set_setting("input_map", input_map.duplicate(true))
+ Settings.write("input_map", input_map.duplicate(true))
func apply_input_map(new_input_map: Dictionary):
# Load into input map dictionary
@@ -76,8 +76,8 @@ func apply_input_map(new_input_map: Dictionary):
change_input_map_action(k, input_map[k], false)
func reset_input_map():
- Global.set_setting("input_map", default_input_map.duplicate())
- apply_input_map(Global.get_setting("input_map"))
+ Settings.write("input_map", default_input_map.duplicate())
+ apply_input_map(Settings.read("input_map"))
func get_event_type(input_event: InputEvent) -> EventType:
if input_event is InputEventKey or input_event is InputEventMouseButton:
diff --git a/client/gui/menus/settings/input/input_setting.gd b/client/gui/menus/settings/input/input_setting.gd
index fa903771..5617b26a 100644
--- a/client/gui/menus/settings/input/input_setting.gd
+++ b/client/gui/menus/settings/input/input_setting.gd
@@ -30,10 +30,7 @@ func create_row():
if is_instance_valid(row):
row.value_node.value = value
)
- row.value_node.changed.connect(func(): Global.set_setting(key, row.value_node.value))
+ row.value_node.changed.connect(func(): Settings.write(key, row.value_node.value))
return row
-func changed_keys():
- return [key]
- # if Global.array_eq(Global.get_setting(key), default): return [key]
- # else: return []
+func save(_d: Dictionary): pass # TODO
diff --git a/client/gui/menus/settings/number_setting.gd b/client/gui/menus/settings/number_setting.gd
index 5fa5a115..f729913c 100644
--- a/client/gui/menus/settings/number_setting.gd
+++ b/client/gui/menus/settings/number_setting.gd
@@ -31,7 +31,7 @@ func create_row():
input.min_value = min_value
input.max_value = max_value
- input.value_changed.connect(func(value): Global.set_setting(key, value as int))
+ input.value_changed.connect(func(value): Settings.write(key, value as int))
Settings.hook_changed_init(key, true,
func(v):
if is_instance_valid(input):
@@ -39,3 +39,7 @@ func create_row():
)
row.value_node = input
return row
+
+func load(d: Dictionary):
+ if d.has(key): d[key] = int(d[key])
+ super(d)
diff --git a/client/gui/menus/settings/preset_row.gd b/client/gui/menus/settings/preset_row.gd
index f3c46a26..9e7c97a2 100644
--- a/client/gui/menus/settings/preset_row.gd
+++ b/client/gui/menus/settings/preset_row.gd
@@ -31,7 +31,7 @@ func set_parent(parent):
func apply(preset_name: String):
var preset = options[preset_name]
for i in preset.keys():
- Global.set_setting(prefix + "." + i, preset[i])
+ Settings.write(prefix + "." + i, preset[i])
func create_row():
var row = super()
@@ -43,4 +43,5 @@ func create_row():
row.value_node.add_child(button)
return row
-func changed_keys(): return []
+func load(_d: Dictionary): pass
+func save(_d: Dictionary): pass
diff --git a/client/gui/menus/settings/range_setting.gd b/client/gui/menus/settings/range_setting.gd
index b8d392a4..a487c6b4 100644
--- a/client/gui/menus/settings/range_setting.gd
+++ b/client/gui/menus/settings/range_setting.gd
@@ -40,5 +40,5 @@ func create_row():
if is_instance_valid(row):
row.value_node.value = value
)
- row.value_node.value_changed.connect(func(value): Global.set_setting(key, value))
+ row.value_node.value_changed.connect(func(value): Settings.write(key, value))
return row
diff --git a/client/gui/menus/settings/settings.gd b/client/gui/menus/settings/settings.gd
index 32da54cc..7523b9fb 100644
--- a/client/gui/menus/settings/settings.gd
+++ b/client/gui/menus/settings/settings.gd
@@ -20,7 +20,7 @@ extends Menu
func _ready():
super()
- var row = Global.settings_tree.create_row()
+ var row = Settings.tree.create_row()
container.add_child(row)
container.move_child(row, 1)
@@ -36,5 +36,5 @@ func _on_back_pressed():
exit()
func exit():
- Global.save_settings()
+ Settings.save()
super()
diff --git a/client/gui/menus/settings/settings_category.gd b/client/gui/menus/settings/settings_category.gd
index bf85abd9..3cc3704f 100644
--- a/client/gui/menus/settings/settings_category.gd
+++ b/client/gui/menus/settings/settings_category.gd
@@ -38,12 +38,8 @@ func create_row():
for r in settings: options.add_child(r.create_row())
return row
-func check():
- for c in settings:
- c.check()
+func load(d: Dictionary):
+ for c in settings: c.load(d)
-func changed_keys():
- var changed = []
- for c in settings:
- changed.append_array(c.changed_keys())
- return changed
+func save(d: Dictionary):
+ for c in settings: c.save(d)
diff --git a/client/gui/menus/settings/settings_root.gd b/client/gui/menus/settings/settings_root.gd
index a9a024d8..3f7fc027 100644
--- a/client/gui/menus/settings/settings_root.gd
+++ b/client/gui/menus/settings/settings_root.gd
@@ -29,12 +29,8 @@ func create_row():
for r in children: row.add_child(r.create_row())
return row
-func check():
- for c in children:
- c.check()
+func load(d: Dictionary):
+ for c in children: c.load(d)
-func changed_keys():
- var changed = []
- for c in children:
- changed.append_array(c.changed_keys())
- return changed
+func save(d: Dictionary):
+ for c in children: c.save(d)
diff --git a/client/gui/menus/settings/text_setting.gd b/client/gui/menus/settings/text_setting.gd
index 8e2b6bec..83e68539 100644
--- a/client/gui/menus/settings/text_setting.gd
+++ b/client/gui/menus/settings/text_setting.gd
@@ -26,7 +26,7 @@ func create_row():
var row = super()
var input := LineEdit.new()
input.placeholder_text = placeholder
- input.text_changed.connect(func(text): Global.set_setting(key, text))
+ input.text_changed.connect(func(text): Settings.write(key, text))
Settings.hook_changed_init(key, true,
func(text):
if is_instance_valid(input):
diff --git a/client/gui/menus/settings/toggle_setting.gd b/client/gui/menus/settings/toggle_setting.gd
index abcb7f4a..dcf7dbd7 100644
--- a/client/gui/menus/settings/toggle_setting.gd
+++ b/client/gui/menus/settings/toggle_setting.gd
@@ -22,7 +22,7 @@ func _init(new_id: String, new_default: bool):
func create_row():
var row = super()
row.value_node = CheckButton.new()
- row.value_node.pressed.connect(func(): Global.set_setting(key, row.value_node.button_pressed))
+ row.value_node.pressed.connect(func(): Settings.write(key, row.value_node.button_pressed))
Settings.hook_changed_init(key, true,
func(value):
if is_instance_valid(row):