diff options
author | metamuffin <metamuffin@disroot.org> | 2025-09-15 01:26:13 +0200 |
---|---|---|
committer | metamuffin <metamuffin@disroot.org> | 2025-09-15 01:38:34 +0200 |
commit | 676d4dcb6c439677b91b1b5cbc0bf08f98e2dd9d (patch) | |
tree | 5cd83591e230833735fbdacf41df5c1d69dd8c0e /client/gui | |
parent | 4e196b83a42b9b217e3b7107b55a14cb1a005b84 (diff) | |
download | hurrycurry-676d4dcb6c439677b91b1b5cbc0bf08f98e2dd9d.tar hurrycurry-676d4dcb6c439677b91b1b5cbc0bf08f98e2dd9d.tar.bz2 hurrycurry-676d4dcb6c439677b91b1b5cbc0bf08f98e2dd9d.tar.zst |
Refactor settings; store as JSON; input settings now broken
Diffstat (limited to 'client/gui')
20 files changed, 51 insertions, 59 deletions
diff --git a/client/gui/components/blur_setup.gd b/client/gui/components/blur_setup.gd index 567ac891..318f8e7e 100644 --- a/client/gui/components/blur_setup.gd +++ b/client/gui/components/blur_setup.gd @@ -17,7 +17,7 @@ extends Control class_name BlurSetup func _ready(): - update(Global.get_setting("graphics.ui_blur")) + update(Settings.read("graphics.ui_blur")) Settings.hook_changed("graphics.ui_blur", false, update) func update(state): diff --git a/client/gui/components/message/item/item_message.gd b/client/gui/components/message/item/item_message.gd index e643c291..4079e363 100644 --- a/client/gui/components/message/item/item_message.gd +++ b/client/gui/components/message/item/item_message.gd @@ -31,7 +31,7 @@ var timeout_initial := 0. @onready var v_box_container: VBoxContainer = $VBoxContainer func _ready() -> void: - Global.configure_viewport_aa(sub_viewport, Global.get_setting("graphics.aa")) + Global.configure_viewport_aa(sub_viewport, Settings.read("graphics.aa")) if enable_grayscale: sub_viewport_container.material = PRINTED_MAT diff --git a/client/gui/menus/entry.gd b/client/gui/menus/entry.gd index 91bec795..d9e3dd29 100644 --- a/client/gui/menus/entry.gd +++ b/client/gui/menus/entry.gd @@ -23,7 +23,7 @@ func _ready(): var args = OS.get_cmdline_user_args() if args.size() == 1: await submenu("res://gui/menus/game.tscn", args[0]) - elif not Global.get_setting("gameplay.setup_completed"): + elif not Settings.read("gameplay.setup_completed"): await submenu("res://gui/menus/setup/setup.tscn") else: await submenu("res://gui/menus/main/main.tscn") diff --git a/client/gui/menus/game.gd b/client/gui/menus/game.gd index 033d1dd9..0bf44484 100644 --- a/client/gui/menus/game.gd +++ b/client/gui/menus/game.gd @@ -42,7 +42,7 @@ func _menu_cover(state): game.follow_camera.update_disable_input() func _process(_delta): - if Global.get_setting("graphics.debug_info"): + if Settings.read("graphics.debug_info"): debug_label.show() debug_label.text = "%d FPS\nDriver: %s" % [Engine.get_frames_per_second(), ProjectSettings.get_setting("rendering/rendering_device/driver")] else: debug_label.hide() diff --git a/client/gui/menus/main/play.gd b/client/gui/menus/main/play.gd index d2e231e1..87b0b5bf 100644 --- a/client/gui/menus/main/play.gd +++ b/client/gui/menus/main/play.gd @@ -45,18 +45,18 @@ func _ready(): super() if not Global.get_profile("registry_asked"): var popup_data := MenuPopup.Data.new() - popup_data.text = tr("c.menu.play.allow_query_registry").format([Global.get_setting("online.registry_url")]) + popup_data.text = tr("c.menu.play.allow_query_registry").format([Settings.read("online.registry_url")]) var allow_button := Button.new() allow_button.text = tr("c.menu.accept") var deny_button := Button.new() deny_button.text = tr("c.menu.deny") - allow_button.pressed.connect(func(): Global.set_setting("online.use_registry", true)) - deny_button.pressed.connect(func(): Global.set_setting("online.use_registry", false)) + allow_button.pressed.connect(func(): Settings.write("online.use_registry", true)) + deny_button.pressed.connect(func(): Settings.write("online.use_registry", false)) popup_data.buttons = [allow_button, deny_button] await submenu("res://gui/menus/popup.tscn", popup_data) Global.set_profile("registry_asked", true) - Global.save_settings() Global.save_profile() + Settings.save() ServerList.start() @@ -141,7 +141,7 @@ func _on_editor_control_pressed(): Service.State.FAILED: Editor.start() func _on_server_connect_pressed(): - connect_to("ws://%s:%d" % [ServerService.connect_address(), Global.get_setting("server.bind_port")]) + connect_to("ws://%s:%d" % [ServerService.connect_address(), Settings.read("server.bind_port")]) func _on_editor_connect_pressed(): connect_to("ws://[::1]:27032/") 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): diff --git a/client/gui/menus/setup/setup.gd b/client/gui/menus/setup/setup.gd index 4e843dd4..e4103603 100644 --- a/client/gui/menus/setup/setup.gd +++ b/client/gui/menus/setup/setup.gd @@ -99,10 +99,10 @@ func _on_sign_pressed(): Global.set_hint(k, true) Global.save_profile() - Global.set_setting("gameplay.hints_started", skip_tutorial.button_pressed) - Global.set_setting("gameplay.tutorial_disabled", skip_tutorial.button_pressed) - Global.set_setting("gameplay.setup_completed", true) - Global.save_settings() + Settings.write("gameplay.hints_started", skip_tutorial.button_pressed) + Settings.write("gameplay.tutorial_disabled", skip_tutorial.button_pressed) + Settings.write("gameplay.setup_completed", true) + Settings.save() Global.get_viewport().msaa_2d = Viewport.MSAA_DISABLED diff --git a/client/gui/menus/setup/setup.tscn b/client/gui/menus/setup/setup.tscn index d0cce350..487f2200 100644 --- a/client/gui/menus/setup/setup.tscn +++ b/client/gui/menus/setup/setup.tscn @@ -70,8 +70,6 @@ anchor_bottom = 1.0 grow_horizontal = 2 grow_vertical = 2 script = ExtResource("1_mo46n") -support_anim = null -auto_anim = null [node name="ColorRect" type="ColorRect" parent="."] layout_mode = 2 diff --git a/client/gui/overlays/overlays.gd b/client/gui/overlays/overlays.gd index 00778cdb..0483fef6 100644 --- a/client/gui/overlays/overlays.gd +++ b/client/gui/overlays/overlays.gd @@ -21,4 +21,4 @@ func _ready(): func _input(_event): if Input.is_action_just_pressed("toggle_overlay"): - Global.set_setting("ui.hide_overlays", not Global.get_setting("ui.hide_overlays")) + Settings.write("ui.hide_overlays", not Settings.read("ui.hide_overlays")) |