From 06baf4555dc1c7a64bed7d059fbe34c99e9638fb Mon Sep 17 00:00:00 2001 From: metamuffin Date: Fri, 6 Sep 2024 23:43:42 +0200 Subject: refactor settings again (part 1) --- client/menu/blur_setup.gd | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'client/menu/blur_setup.gd') diff --git a/client/menu/blur_setup.gd b/client/menu/blur_setup.gd index 97729074..b5b5dde9 100644 --- a/client/menu/blur_setup.gd +++ b/client/menu/blur_setup.gd @@ -16,8 +16,8 @@ extends Control func _ready(): - update() - Global.settings_changed.connect(update) + update(Global.get_setting("ui.blur")) + Settings.hook_changed("ui.blur", update) -func update(): - material.set_shader_parameter("enable_blur", Global.get_setting("ui_blur")) +func update(state): + material.set_shader_parameter("enable_blur", state) -- cgit v1.2.3-70-g09d2 From 66eb933df271eaca4df6201c55bb678275abf9df Mon Sep 17 00:00:00 2001 From: metamuffin Date: Sat, 7 Sep 2024 11:38:13 +0200 Subject: fix remaining settings --- client/global.gd | 4 ++-- client/menu/blur_setup.gd | 4 ++-- client/settings.gd | 5 ++--- locale/en.ini | 51 ++++++++++++++++++++++++++++------------------- 4 files changed, 36 insertions(+), 28 deletions(-) (limited to 'client/menu/blur_setup.gd') diff --git a/client/global.gd b/client/global.gd index 6d41dc31..47d9da06 100644 --- a/client/global.gd +++ b/client/global.gd @@ -83,7 +83,7 @@ func _input(event): using_joypad_change.emit(using_joypad) # Update using_touch variable - if get_setting("ui.touch_controls") == 0: # Only if set to automatic + if get_setting("ui.touch_controls") == "automatic": # Only if set to automatic if event is InputEventScreenTouch or event is InputEventScreenDrag: if not using_touch: using_touch = true @@ -143,7 +143,7 @@ func get_setting(key: String): func set_setting_unchecked(key: String, value): value = value.duplicate(true) if value is Array else value - if key in settings and settings[key] == value: return + if key in settings and typeof(settings[key]) == typeof(value) and settings[key] == value: return settings[key] = value if Settings.change_hooks_display.get(key) != null: Settings.change_hooks_display.get(key).call(value) if Settings.change_hooks_apply.get(key) != null: Settings.change_hooks_apply.get(key).call(value) diff --git a/client/menu/blur_setup.gd b/client/menu/blur_setup.gd index b5b5dde9..b5f80540 100644 --- a/client/menu/blur_setup.gd +++ b/client/menu/blur_setup.gd @@ -16,8 +16,8 @@ extends Control func _ready(): - update(Global.get_setting("ui.blur")) - Settings.hook_changed("ui.blur", update) + update(Global.get_setting("graphics.ui_blur")) + Settings.hook_changed("graphics.ui_blur", update) func update(state): material.set_shader_parameter("enable_blur", state) diff --git a/client/settings.gd b/client/settings.gd index ade51262..bfa25a00 100644 --- a/client/settings.gd +++ b/client/settings.gd @@ -52,7 +52,7 @@ static func get_root(): RangeSetting.new("sfx_volume", 0, -30, 0), ]), SettingsCategory.new("ui", [ - DropdownSetting.new("touch_controls", 0, ["automatic", "enabled", "disabled"]), + DropdownSetting.new("touch_controls", "automatic", ["automatic", "enabled", "disabled"]), DropdownSetting.new("language", "system", Global.language_list()), DropdownSetting.new("scale_mode", "resize", ["resize", "disabled"]), RangeSetting.new("scale_factor", 1. if not Global.on_mobile() else 1.5, 0.5, 1.5, 3), @@ -110,7 +110,7 @@ static func h_taa(enabled): static func h_scale_mode(mode: String): match mode: - "scale": Global.get_tree().root.content_scale_mode = Window.CONTENT_SCALE_MODE_CANVAS_ITEMS + "resize": Global.get_tree().root.content_scale_mode = Window.CONTENT_SCALE_MODE_CANVAS_ITEMS "disabled": Global.get_tree().root.content_scale_mode = Window.CONTENT_SCALE_MODE_DISABLED static func h_scale_factor(value: float): @@ -127,7 +127,6 @@ static func h_touch(mode: String): Global.using_touch_change.emit() static func h_language(language: String): - print("STELANG ", language) if language == "system": language = OS.get_locale_language() TranslationServer.set_locale(language) diff --git a/locale/en.ini b/locale/en.ini index 3f094e84..441f2f8e 100644 --- a/locale/en.ini +++ b/locale/en.ini @@ -65,6 +65,10 @@ c.settings.gameplay.setup_completed=Initial setup complete. (Uncheck and restart c.settings.gameplay.tutorial_started=Tutorial started c.settings.gameplay.usernames=Show username tags c.settings.gameplay=Gameplay +c.settings.graphics.aa.disabled=Disabled +c.settings.graphics.aa.fx=FXAA +c.settings.graphics.aa.ms2x=MSAA 2x +c.settings.graphics.aa.ms4x=MSAA 4x c.settings.graphics.aa=Anti-aliasing c.settings.graphics.ao=Ambient occlusion c.settings.graphics.debug_info=Display debug info (Framerate, etc.) @@ -72,10 +76,10 @@ c.settings.graphics.fullscreen.always=Always c.settings.graphics.fullscreen.keep=Keep c.settings.graphics.fullscreen.never=Never c.settings.graphics.fullscreen=Fullscreen +c.settings.graphics.gi.disabled=Disabled c.settings.graphics.gi.sdfgi=SDFGI c.settings.graphics.gi.voxelgi=Voxel GI c.settings.graphics.gi=Global illumination -c.settings.graphics.ssao=Screen-space ambient occlusion (SSAO) c.settings.graphics.glow=Enable glow c.settings.graphics.grass_amount=3D grass amount per grass tile c.settings.graphics.lq_trees=Low-poly trees @@ -84,51 +88,56 @@ c.settings.graphics.preset.low=Low c.settings.graphics.preset.medium=Medium c.settings.graphics.preset=Load preset c.settings.graphics.shadows=Enable shadows +c.settings.graphics.ssao=Screen-space ambient occlusion (SSAO) c.settings.graphics.taa=Temporal Anti-Aliasing c.settings.graphics.ui_blur=Enable UI blur c.settings.graphics=Graphics c.settings.input.add=Add new +c.settings.input.backwards=Move Backwards +c.settings.input.boost=Boost movement +c.settings.input.chat=Toggle chat +c.settings.input.forwards=Move Forwards +c.settings.input.fullscreen=Toggle fullscreen +c.settings.input.interact=Interact +c.settings.input.join_spectate=Join/Spectate c.settings.input.joypad_axis=Joypad axis %s c.settings.input.joypad=%s (Joypad) c.settings.input.keyboard=%s (Keyboard) +c.settings.input.left=Move Left c.settings.input.mouse_button=Mouse button %s +c.settings.input.next=Select next item c.settings.input.other_event=Other event c.settings.input.press_any_key=Press any key... -c.settings.input.scroll_down=Scroll down -c.settings.input.scroll_up=Scroll up -c.settings.input.scroll_down_discrete=Scroll down (discrete) -c.settings.input.scroll_up_discrete=Scroll up (discrete) -c.settings.input.forwards=Move Forwards -c.settings.input.backwards=Move Backwards -c.settings.input.left=Move Left +c.settings.input.previous=Select previous item +c.settings.input.reset=Reset camera c.settings.input.right=Move Right +c.settings.input.rotate_down=Rotate camera down c.settings.input.rotate_left=Rotate camera left c.settings.input.rotate_right=Rotate camera right c.settings.input.rotate_up=Rotate camera up -c.settings.input.rotate_down=Rotate camera down -c.settings.input.interact=Interact -c.settings.input.boost=Boost movement -c.settings.input.zoom_in=Zoom in -c.settings.input.zoom_out=Zoom out +c.settings.input.scroll_down_discrete=Scroll down (discrete) +c.settings.input.scroll_down=Scroll down +c.settings.input.scroll_up_discrete=Scroll up (discrete) +c.settings.input.scroll_up=Scroll up +c.settings.input.start_game=Start game c.settings.input.zoom_in_discrete=Zoom in (discrete) +c.settings.input.zoom_in=Zoom in c.settings.input.zoom_out_discrete=Zoom out (discrete) -c.settings.input.chat=Toggle chat -c.settings.input.reset=Reset camera -c.settings.input.fullscreen=Toggle fullscreen -c.settings.input.previous=Select previous item -c.settings.input.next=Select next item -c.settings.input.start_game=Start game -c.settings.input.join_spectate=Join/Spectate +c.settings.input.zoom_out=Zoom out c.settings.input=Controls -c.settings.other.server_data=Server data directory (leave empty to auto-detect) c.settings.other.server_binary.placeholder=Enter path c.settings.other.server_binary=Server binary (leave empty to search PATH) +c.settings.other.server_data=Server data directory (leave empty to auto-detect) c.settings.other=Other c.settings.ui.language.system=System default c.settings.ui.language=Language c.settings.ui.scale_factor=UI scale factor c.settings.ui.scale_mode.resize=Resize +c.settings.ui.scale_mode.disabled=Disabled c.settings.ui.scale_mode=UI scale mode +c.settings.ui.touch_controls.automatic=Automatic +c.settings.ui.touch_controls.disabled=Disabled +c.settings.ui.touch_controls.enabled=Enabled c.settings.ui.touch_controls=Enable touch screen controls c.settings.ui=User interface c.settings.username=Username -- cgit v1.2.3-70-g09d2 From 923b4d1aa63b6226365a53a7fe227a734760ed1e Mon Sep 17 00:00:00 2001 From: metamuffin Date: Sat, 7 Sep 2024 13:56:56 +0200 Subject: fix hooks overriding each other --- client/map/auto_setup/environment_setup.gd | 6 +++--- client/map/auto_setup/light_setup.gd | 2 +- client/map/map.gd | 2 +- client/menu/blur_setup.gd | 2 +- client/menu/settings/dropdown_setting.gd | 2 +- client/menu/settings/input/input_setting.gd | 2 +- client/menu/settings/range_setting.gd | 2 +- client/menu/settings/text_setting.gd | 2 +- client/menu/settings/toggle_setting.gd | 2 +- client/player/player.gd | 2 +- client/settings.gd | 9 +++++---- 11 files changed, 17 insertions(+), 16 deletions(-) (limited to 'client/menu/blur_setup.gd') diff --git a/client/map/auto_setup/environment_setup.gd b/client/map/auto_setup/environment_setup.gd index 73c3ee32..c484ca1d 100644 --- a/client/map/auto_setup/environment_setup.gd +++ b/client/map/auto_setup/environment_setup.gd @@ -22,9 +22,9 @@ func set_sky(sky_name: String): environment.sky.sky_material = load("res://map/environment/presets/%s_sky.tres" % sky_name) func _ready(): - Settings.hook_changed_init("graphics.ssao", func (x): environment.ssao_enabled = x) - Settings.hook_changed_init("graphics.gi", func (x): environment.sdfgi_enabled = x == "sdfgi" and allow_sdfgi) - Settings.hook_changed_init("graphics.glow", func (x): environment.glow_enabled = x) + Settings.hook_changed_init("graphics.ssao", false, func (x): environment.ssao_enabled = x) + Settings.hook_changed_init("graphics.gi", false, func (x): environment.sdfgi_enabled = x == "sdfgi" and allow_sdfgi) + Settings.hook_changed_init("graphics.glow", false, func (x): environment.glow_enabled = x) if !Global.on_vulkan(): environment.environment.tonemap_exposure = 0.5 diff --git a/client/map/auto_setup/light_setup.gd b/client/map/auto_setup/light_setup.gd index 4da2886e..7d1b0b7a 100644 --- a/client/map/auto_setup/light_setup.gd +++ b/client/map/auto_setup/light_setup.gd @@ -19,7 +19,7 @@ class_name LightSetup @export var completely_disable_light_if_shadows_disabled := false func _ready(): - Settings.hook_changed_init("graphics.shadows", apply_settings) + Settings.hook_changed_init("graphics.shadows", false, apply_settings) func apply_settings(setting: bool): if completely_disable_light_if_shadows_disabled: diff --git a/client/map/map.gd b/client/map/map.gd index f6258cc6..ce3c6dfa 100644 --- a/client/map/map.gd +++ b/client/map/map.gd @@ -52,7 +52,7 @@ func clear_tile(pos: Vector2i): func _ready(): voxelgi_timer.connect("timeout", gi_bake) - Settings.hook_changed("graphics.gi", apply_gi_setting) + Settings.hook_changed("graphics.gi", false, apply_gi_setting) func apply_gi_setting(state): if state == "voxelgi" and not currently_baked: diff --git a/client/menu/blur_setup.gd b/client/menu/blur_setup.gd index b5f80540..331d1f47 100644 --- a/client/menu/blur_setup.gd +++ b/client/menu/blur_setup.gd @@ -17,7 +17,7 @@ extends Control func _ready(): update(Global.get_setting("graphics.ui_blur")) - Settings.hook_changed("graphics.ui_blur", update) + Settings.hook_changed("graphics.ui_blur", false, update) func update(state): material.set_shader_parameter("enable_blur", state) diff --git a/client/menu/settings/dropdown_setting.gd b/client/menu/settings/dropdown_setting.gd index 4a3ce8c6..3d6b7c80 100644 --- a/client/menu/settings/dropdown_setting.gd +++ b/client/menu/settings/dropdown_setting.gd @@ -26,6 +26,6 @@ func create_row(): var row = super() row.value_node = OptionButton.new() for i in options: row.value_node.add_item(tr(nskey + "." + i)) - Settings.hook_changed_init(key, func (value): row.value_node.select(options.find(value))) + Settings.hook_changed_init(key, true, func (value): row.value_node.select(options.find(value))) row.value_node.item_selected.connect(func(item): Global.set_setting(key, options[item])) return row diff --git a/client/menu/settings/input/input_setting.gd b/client/menu/settings/input/input_setting.gd index 7a017ed2..7388af78 100644 --- a/client/menu/settings/input/input_setting.gd +++ b/client/menu/settings/input/input_setting.gd @@ -22,6 +22,6 @@ const INPUT_VALUE_NODE_SCENE = preload("res://menu/settings/input/input_value_no func create_row(): var row = super() row.value_node = INPUT_VALUE_NODE_SCENE.instantiate() - Settings.hook_changed_init(key, func(value): row.value_node.value = value) + Settings.hook_changed_init(key, true, func(value): row.value_node.value = value) row.value_node.changed.connect(func(): Global.set_setting(key, row.value_node.value)) return row diff --git a/client/menu/settings/range_setting.gd b/client/menu/settings/range_setting.gd index f1261b81..b119a205 100644 --- a/client/menu/settings/range_setting.gd +++ b/client/menu/settings/range_setting.gd @@ -36,6 +36,6 @@ func create_row(): row.value_node.max_value = max_value row.value_node.tick_count = abs(max_value - min_value) if tick_count == null else tick_count row.value_node.step = 0 if smooth else (1 if tick_count == null else abs(max_value - min_value) / (tick_count - 1)) - Settings.hook_changed_init(key, func(value): row.value_node.value = value) + Settings.hook_changed_init(key, true, func(value): row.value_node.value = value) row.value_node.value_changed.connect(func(value): Global.set_setting(key, value)) return row diff --git a/client/menu/settings/text_setting.gd b/client/menu/settings/text_setting.gd index 8bf2fa9f..dc9352ab 100644 --- a/client/menu/settings/text_setting.gd +++ b/client/menu/settings/text_setting.gd @@ -28,5 +28,5 @@ func create_row(): row.value_node = LineEdit.new() row.value_node.placeholder_text = placeholder row.value_node.text_changed.connect(func(text): Global.set_setting(key, text)) - Settings.hook_changed_init(key, func(text): row.value_node.text = text) + Settings.hook_changed_init(key, true, func(text): row.value_node.text = text) return row diff --git a/client/menu/settings/toggle_setting.gd b/client/menu/settings/toggle_setting.gd index c8c40469..8e0c030c 100644 --- a/client/menu/settings/toggle_setting.gd +++ b/client/menu/settings/toggle_setting.gd @@ -24,5 +24,5 @@ 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)) - Settings.hook_changed_init(key, func(value): row.value_node.button_pressed = value) + Settings.hook_changed_init(key, true, func(value): row.value_node.button_pressed = value) return row diff --git a/client/player/player.gd b/client/player/player.gd index f034f14d..f418337b 100644 --- a/client/player/player.gd +++ b/client/player/player.gd @@ -77,7 +77,7 @@ func _ready(): character.select_hairstyle(character_idx) clear_timer.timeout.connect(clear_message) - Settings.hook_changed_init("gameplay.usernames", update_username_tag) + Settings.hook_changed_init("gameplay.usernames", false, update_username_tag) func update_position(new_position: Vector2, new_rotation: float, new_boosting: bool): position_ = new_position diff --git a/client/settings.gd b/client/settings.gd index 828ecb62..5501f1ab 100644 --- a/client/settings.gd +++ b/client/settings.gd @@ -66,11 +66,12 @@ static func get_root(): ]) ]) -static func hook_changed(key: String, callable: Callable): - change_hooks_display[key] = callable +static func hook_changed(key: String, display: bool, callable: Callable): + if display: change_hooks_display[key] = callable + else: change_hooks_apply[key] = callable -static func hook_changed_init(key: String, callable: Callable): - hook_changed(key, callable) +static func hook_changed_init(key: String, display: bool, callable: Callable): + hook_changed(key, display, callable) callable.call(Global.get_setting(key)) static var change_hooks_display = {} -- cgit v1.2.3-70-g09d2