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/settings.gd | 176 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 176 insertions(+) create mode 100644 client/settings.gd (limited to 'client/settings.gd') diff --git a/client/settings.gd b/client/settings.gd new file mode 100644 index 00000000..1c03ca5a --- /dev/null +++ b/client/settings.gd @@ -0,0 +1,176 @@ +# Hurry Curry! - a game about cooking +# Copyright 2024 metamuffin +# Copyright 2024 tpart +# Copyright 2024 nokoe +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as published by +# the Free Software Foundation, version 3 of the License only. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . +# +extends Node +class_name Settings + +static func get_root(): + return SettingsRoot.new([ + SettingsCategory.new("gameplay", [ + ToggleSetting.new("interpolate_camera_rotation", false), + ToggleSetting.new("invert_camera", false), + ToggleSetting.new("usernames", true), + ToggleSetting.new("setup_complete", false), + ToggleSetting.new("tutorial_started", false), + ToggleSetting.new("latch_boost", true), + ]), + SettingsCategory.new("graphics", [ + PresetRow.new("preset", { + "low": { + "ui_blur": true, + "aa": 0, + "ssao": false, + "taa": false, + "shadows": false, + "glow": false, + "grass_amount": 0, + "lq_trees": true + }, + "medium": { + "ui_blur": true, + "aa": 1, + "ssao": false, + "taa": false, + "shadows": true, + "glow": false, + "grass_amount": 0, + "lq_trees": false + }, + "high": { + "ui_blur": true, + "aa": 2, + "ssao": true, + "taa": false, + "shadows": true, + "glow": true, + "grass_amount": 16, + "lq_trees": false + } + }), + DropdownSetting.new("fullscreen", "keep", ["keep", "always", "never"]), + DropdownSetting.new("aa", "ms2x" if Global.on_high_end() else "disabled", ["disabled", "fx", "ms2x", "ms4x"]), + ToggleSetting.new("ssao", true if Global.on_high_end() else false), + ToggleSetting.new("taa", false), + DropdownSetting.new("gi", "disabled", ["disabled", "sdfgi", "voxelgi"]), + ToggleSetting.new("shadows", true if Global.on_high_end() else false), + ToggleSetting.new("glow", true if Global.on_high_end() else false), + RangeSetting.new("grass_amount", 16 if Global.on_high_end() else 0, 0, 32, false), + ToggleSetting.new("lq_trees", false if Global.on_high_end() else true), + ToggleSetting.new("debug_info", false), + ToggleSetting.new("ui_blur", true) + ]), + SettingsCategory.new("audio", [ + RangeSetting.new("master_volume", 0, -30, 0), + RangeSetting.new("music_volume", 0, -30, 0), + RangeSetting.new("sfx_volume", 0, -30, 0), + ]), + SettingsCategory.new("ui", [ + DropdownSetting.new("touch_controls", 0, ["automatic", "enabled", "disabled"]), + DropdownSetting.new("language", "system", Global.languages.map(func(e): return e[1])), + DropdownSetting.new("ui_scale_mode", "resize", ["resize", "disabled"]), + RangeSetting.new("ui_scale_factor", 1. if not Global.on_mobile() else 1.5, 0.5, 1.5, 3), + ]), + SettingsCategory.new("input", + InputManager.input_map_to_settings(InputManager.default_input_map) + ), + SettingsCategory.new("other", [ + TextSetting.new("server_binary", ""), + TextSetting.new("server_data", ""), + ]) + ]) + +static func hook_changed(key: String, callable): + change_hooks[key] = callable + +static var change_hooks = { + "graphics.aa": h_aa, + "graphics.taa": h_taa, +} + +static func h_aa(mode): + match mode: + "disabled": + Global.get_viewport().msaa_2d = Viewport.MSAA_DISABLED + Global.get_viewport().msaa_3d = Viewport.MSAA_DISABLED + Global.get_viewport().screen_space_aa = Viewport.SCREEN_SPACE_AA_DISABLED + "fx": + Global.get_viewport().msaa_2d = Viewport.MSAA_DISABLED + Global.get_viewport().msaa_3d = Viewport.MSAA_DISABLED + Global.get_viewport().screen_space_aa = Viewport.SCREEN_SPACE_AA_FXAA + "ms2x": + Global.get_viewport().msaa_2d = Viewport.MSAA_2X + Global.get_viewport().msaa_3d = Viewport.MSAA_2X + Global.get_viewport().screen_space_aa = Viewport.SCREEN_SPACE_AA_DISABLED + "ms4x": + Global.get_viewport().msaa_2d = Viewport.MSAA_4X + Global.get_viewport().msaa_3d = Viewport.MSAA_4X + Global.get_viewport().screen_space_aa = Viewport.SCREEN_SPACE_AA_DISABLED + +static func h_taa(enabled): + Global.get_viewport().use_taa = enabled + +# func apply_settings(): +# update_fullscreen() +# update_language() + +# # Temporal Anti-aliasing + +# # UI scale mode +# match get_setting("ui_scale_mode"): +# 0: +# get_tree().root.content_scale_mode = Window.CONTENT_SCALE_MODE_CANVAS_ITEMS +# 1: +# get_tree().root.content_scale_mode = Window.CONTENT_SCALE_MODE_DISABLED + +# # UI scale factor +# get_tree().root.content_scale_factor = get_setting("ui_scale_factor") + +# # Hints +# if not get_setting("tutorial_started"): +# for k in profile["hints"].keys(): +# set_hint(k, false) + +# # Sets all volumes +# Sound.set_volume(0, get_setting("master_volume")) +# Sound.set_volume(1, get_setting("music_volume")) +# Sound.set_volume(2, get_setting("sfx_volume")) + +# # Touch controls +# match get_setting("touch_controls"): +# # 0: Automatically adjusted +# 1: # Enabled +# using_touch = true +# 2: # Disabled +# using_touch = false +# using_touch_change.emit() + +# # Input settings +# InputManager.apply_input_map(InputManager.settings_dictionary_to_input_map(get_category_settings("input"))) + +# settings_changed.emit() + +# func update_language(): +# var language = languages[get_setting("language")][0] +# if language == "system": language = OS.get_locale_language() +# TranslationServer.set_locale(language) + +# func update_fullscreen(): +# match get_setting("fullscreen"): +# 0: pass +# 1: DisplayServer.window_set_mode(DisplayServer.WINDOW_MODE_FULLSCREEN) +# 2: if DisplayServer.window_get_mode() == DisplayServer.WINDOW_MODE_FULLSCREEN: +# DisplayServer.window_set_mode(DisplayServer.WINDOW_MODE_WINDOWED) -- cgit v1.2.3-70-g09d2 From ad0630639977a7d14700cc2958b9aad52889a298 Mon Sep 17 00:00:00 2001 From: tpart Date: Sat, 7 Sep 2024 00:43:44 +0200 Subject: Fix settings application in light and environment --- client/map/auto_setup/environment_setup.gd | 16 ++++++---------- client/map/auto_setup/light_setup.gd | 9 ++++----- client/menu/setup.tscn | 2 +- client/settings.gd | 6 +++++- 4 files changed, 16 insertions(+), 17 deletions(-) (limited to 'client/settings.gd') diff --git a/client/map/auto_setup/environment_setup.gd b/client/map/auto_setup/environment_setup.gd index 49f93ccb..73c3ee32 100644 --- a/client/map/auto_setup/environment_setup.gd +++ b/client/map/auto_setup/environment_setup.gd @@ -22,13 +22,9 @@ func set_sky(sky_name: String): environment.sky.sky_material = load("res://map/environment/presets/%s_sky.tres" % sky_name) func _ready(): - pass - #Global.settings_changed.connect(apply_settings) - -# TODO -#func apply_settings(): - #environment.ssao_enabled = Global.get_setting("graphics.ssao") - #environment.sdfgi_enabled = Global.get_setting("graphics.gi") == "sdfgi" and allow_sdfgi - #environment.glow_enabled = Global.get_setting("graphics.glow") - #if !Global.on_vulkan(): - #environment.environment.tonemap_exposure = 0.5 + 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) + + 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 b42b3662..4da2886e 100644 --- a/client/map/auto_setup/light_setup.gd +++ b/client/map/auto_setup/light_setup.gd @@ -19,13 +19,12 @@ class_name LightSetup @export var completely_disable_light_if_shadows_disabled := false func _ready(): - apply_settings() - Global.settings_changed.connect(apply_settings) + Settings.hook_changed_init("graphics.shadows", apply_settings) -func apply_settings(): +func apply_settings(setting: bool): if completely_disable_light_if_shadows_disabled: - visible = Global.get_setting("graphics.shadows") - shadow_enabled = Global.get_setting("graphics.shadows") + visible = setting + shadow_enabled = setting func set_sky(sky_name: String): match sky_name: diff --git a/client/menu/setup.tscn b/client/menu/setup.tscn index 9d8e4975..53c4565e 100644 --- a/client/menu/setup.tscn +++ b/client/menu/setup.tscn @@ -209,8 +209,8 @@ layout_mode = 2 [node name="LineEdit" type="LineEdit" parent="ScrollContainer/Control/TextureRect/PaperMargin/Contents/PositionEntry"] custom_minimum_size = Vector2(300, 30) layout_mode = 2 -theme_override_colors/font_color = Color(0.458824, 0, 0, 1) theme_override_colors/font_uneditable_color = Color(0.458824, 0, 0, 1) +theme_override_colors/font_color = Color(0.458824, 0, 0, 1) editable = false [node name="LineEdit2" type="Label" parent="ScrollContainer/Control/TextureRect/PaperMargin/Contents/PositionEntry/LineEdit"] diff --git a/client/settings.gd b/client/settings.gd index 1c03ca5a..662fb280 100644 --- a/client/settings.gd +++ b/client/settings.gd @@ -93,9 +93,13 @@ static func get_root(): ]) ]) -static func hook_changed(key: String, callable): +static func hook_changed(key: String, callable: Callable): change_hooks[key] = callable +static func hook_changed_init(key: String, callable: Callable): + hook_changed(key, callable) + callable.call(Global.get_setting(key)) + static var change_hooks = { "graphics.aa": h_aa, "graphics.taa": h_taa, -- cgit v1.2.3-70-g09d2 From fd737a6399cd201f5f3a22df5db27fac095e63bf Mon Sep 17 00:00:00 2001 From: tpart Date: Sat, 7 Sep 2024 00:49:22 +0200 Subject: Add scale mode hook --- client/settings.gd | 21 ++++++++++----------- 1 file changed, 10 insertions(+), 11 deletions(-) (limited to 'client/settings.gd') diff --git a/client/settings.gd b/client/settings.gd index 662fb280..cb8f9cf0 100644 --- a/client/settings.gd +++ b/client/settings.gd @@ -81,8 +81,8 @@ static func get_root(): SettingsCategory.new("ui", [ DropdownSetting.new("touch_controls", 0, ["automatic", "enabled", "disabled"]), DropdownSetting.new("language", "system", Global.languages.map(func(e): return e[1])), - DropdownSetting.new("ui_scale_mode", "resize", ["resize", "disabled"]), - RangeSetting.new("ui_scale_factor", 1. if not Global.on_mobile() else 1.5, 0.5, 1.5, 3), + 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), ]), SettingsCategory.new("input", InputManager.input_map_to_settings(InputManager.default_input_map) @@ -103,6 +103,7 @@ static func hook_changed_init(key: String, callable: Callable): static var change_hooks = { "graphics.aa": h_aa, "graphics.taa": h_taa, + "ui.scale_mode": h_scale_mode, } static func h_aa(mode): @@ -127,19 +128,17 @@ static func h_aa(mode): static func h_taa(enabled): Global.get_viewport().use_taa = enabled +static func h_scale_mode(mode: int): + match mode: + 0: + Global.get_tree().root.content_scale_mode = Window.CONTENT_SCALE_MODE_CANVAS_ITEMS + 1: + Global.get_tree().root.content_scale_mode = Window.CONTENT_SCALE_MODE_DISABLED + # func apply_settings(): # update_fullscreen() # update_language() -# # Temporal Anti-aliasing - -# # UI scale mode -# match get_setting("ui_scale_mode"): -# 0: -# get_tree().root.content_scale_mode = Window.CONTENT_SCALE_MODE_CANVAS_ITEMS -# 1: -# get_tree().root.content_scale_mode = Window.CONTENT_SCALE_MODE_DISABLED - # # UI scale factor # get_tree().root.content_scale_factor = get_setting("ui_scale_factor") -- cgit v1.2.3-70-g09d2 From 7f559afc6307d628ca56de175486323d587d71a8 Mon Sep 17 00:00:00 2001 From: metamuffin Date: Sat, 7 Sep 2024 04:16:34 +0200 Subject: strings for inputs and some fixes --- client/global.gd | 64 +++++++------------------- client/settings.gd | 114 +++++++++++++++++------------------------------ locale/ar.ini | 14 +++--- locale/de.ini | 14 +++--- locale/en.ini | 73 +++++++++++++++++------------- locale/es.ini | 14 +++--- locale/eu.ini | 14 +++--- locale/fi.ini | 14 +++--- locale/fr.ini | 14 +++--- locale/he.ini | 14 +++--- locale/ja.ini | 14 +++--- locale/pl.ini | 14 +++--- locale/pt.ini | 14 +++--- locale/tools/src/main.rs | 23 +++++++++- locale/tr.ini | 14 +++--- locale/zh_Hans.ini | 14 +++--- locale/zh_Hant.ini | 14 +++--- 17 files changed, 210 insertions(+), 246 deletions(-) (limited to 'client/settings.gd') diff --git a/client/global.gd b/client/global.gd index e85bf697..6d41dc31 100644 --- a/client/global.gd +++ b/client/global.gd @@ -38,7 +38,7 @@ var default_profile := { "has_seen_join_while_running": false } } -var languages := language_array() + var using_joypad := false var using_touch := false @@ -136,20 +136,21 @@ func on_vulkan() -> bool: return ProjectSettings.get_setting("rendering/rendering_device/driver") == "vulkan" func get_setting(key: String): - if !Global.settings.has(key): + if !settings.has(key): push_error("Tried to access setting \"%s\", which does not exist (missing key)" % key) return null - return Global.settings[key] + return settings[key] func set_setting_unchecked(key: String, value): - if value is Array: - Global.settings[key] = value.duplicate(true) - else: - Global.settings[key] = value - Global.save_settings() + value = value.duplicate(true) if value is Array else value + if key in settings 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) + save_settings() func set_setting(key: String, value): - if !Global.settings.has(key): + if !settings.has(key): push_error("Tried to set setting \"%s\", which does not yet exist (missing key)" % key) return else: set_setting_unchecked(key, value) @@ -208,43 +209,8 @@ func find_menu(node: Node) -> Menu: if node is Menu: return node else: return find_menu(node.get_parent()) -const NATIVE_LANGUAGE_NAMES = { - "en": "English", - "de": "Deutsch", - "fr": "Français", - "es": "Español", - "eu": "euskara", - "ja": "日本語", - "he": "עִברִית", - "tr": "Türkçe", - "fi": "suomen", - "ar": "العربية", - "zh_Hans": "中文 (简化字)", - "zh_Hant": "中文 (繁體字)", - "pl": "Polski", - "pt": "Português", -} - -func language_display(l: String): return "%s (%s)" % [NATIVE_LANGUAGE_NAMES[l], l] -func language_array() -> Array: - var lang: Array = [["system", tr("System default")]] - var to_order: Array = [] - for l in TranslationServer.get_loaded_locales(): - to_order.append([l, language_display(l)]) - to_order.append(["en", language_display("en")]) - to_order = sort_language_array(to_order) - for i in to_order: - lang.append(i) - return lang - -func sort_language_array(lang: Array) -> Array: - var sorting_array: Array = [] - var sorted_lang: Array = [] - for i in lang.size(): - sorting_array.append(lang[i][0]) - sorting_array.sort() - for shorthand in sorting_array: - for arr in lang: - if arr[0] == shorthand: - sorted_lang.append(arr) - return sorted_lang +func language_list(): + var a = TranslationServer.get_loaded_locales() + a.sort() + a.insert(0, "system") + return a diff --git a/client/settings.gd b/client/settings.gd index cb8f9cf0..ade51262 100644 --- a/client/settings.gd +++ b/client/settings.gd @@ -30,36 +30,9 @@ static func get_root(): ]), SettingsCategory.new("graphics", [ PresetRow.new("preset", { - "low": { - "ui_blur": true, - "aa": 0, - "ssao": false, - "taa": false, - "shadows": false, - "glow": false, - "grass_amount": 0, - "lq_trees": true - }, - "medium": { - "ui_blur": true, - "aa": 1, - "ssao": false, - "taa": false, - "shadows": true, - "glow": false, - "grass_amount": 0, - "lq_trees": false - }, - "high": { - "ui_blur": true, - "aa": 2, - "ssao": true, - "taa": false, - "shadows": true, - "glow": true, - "grass_amount": 16, - "lq_trees": false - } + "low": {"ui_blur": true, "aa": "disabled", "ssao": false, "taa": false, "shadows": false, "glow": false, "grass_amount": 0, "lq_trees": true}, + "medium": {"ui_blur": true, "aa": "fx", "ssao": false, "taa": false, "shadows": true, "glow": false, "grass_amount": 0, "lq_trees": false}, + "high": {"ui_blur": true, "aa": "ms2x", "ssao": true, "taa": false, "shadows": true, "glow": true, "grass_amount": 16, "lq_trees": false} }), DropdownSetting.new("fullscreen", "keep", ["keep", "always", "never"]), DropdownSetting.new("aa", "ms2x" if Global.on_high_end() else "disabled", ["disabled", "fx", "ms2x", "ms4x"]), @@ -80,7 +53,7 @@ static func get_root(): ]), SettingsCategory.new("ui", [ DropdownSetting.new("touch_controls", 0, ["automatic", "enabled", "disabled"]), - DropdownSetting.new("language", "system", Global.languages.map(func(e): return e[1])), + 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), ]), @@ -94,16 +67,23 @@ static func get_root(): ]) static func hook_changed(key: String, callable: Callable): - change_hooks[key] = callable + change_hooks_display[key] = callable static func hook_changed_init(key: String, callable: Callable): hook_changed(key, callable) callable.call(Global.get_setting(key)) -static var change_hooks = { +static var change_hooks_display = {} +static var change_hooks_apply = { "graphics.aa": h_aa, "graphics.taa": h_taa, + "graphics.fullscreen": h_fullscreen, "ui.scale_mode": h_scale_mode, + "ui.scale_factor": h_scale_factor, + "ui.language": h_language, + "audio.master_volume": h_volume_master, + "audio.music_volume": h_volume_music, + "audio.sfx_volume": h_volume_sfx, } static func h_aa(mode): @@ -128,52 +108,40 @@ static func h_aa(mode): static func h_taa(enabled): Global.get_viewport().use_taa = enabled -static func h_scale_mode(mode: int): +static func h_scale_mode(mode: String): match mode: - 0: - Global.get_tree().root.content_scale_mode = Window.CONTENT_SCALE_MODE_CANVAS_ITEMS - 1: - Global.get_tree().root.content_scale_mode = Window.CONTENT_SCALE_MODE_DISABLED + "scale": 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 -# func apply_settings(): -# update_fullscreen() -# update_language() +static func h_scale_factor(value: float): + Global.get_tree().root.content_scale_factor = value -# # UI scale factor -# get_tree().root.content_scale_factor = get_setting("ui_scale_factor") +static func h_volume_master(value: float): Sound.set_volume(0, value) +static func h_volume_music(value: float): Sound.set_volume(1, value) +static func h_volume_sfx(value: float): Sound.set_volume(2, value) -# # Hints +static func h_touch(mode: String): + match mode: + "enabled": Global.using_touch = true + "disabled": Global.using_touch = false + 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) + +static func h_fullscreen(mode: String): + match mode: + "keep": pass + "always": DisplayServer.window_set_mode(DisplayServer.WINDOW_MODE_FULLSCREEN) + "never": if DisplayServer.window_get_mode() == DisplayServer.WINDOW_MODE_FULLSCREEN: + DisplayServer.window_set_mode(DisplayServer.WINDOW_MODE_WINDOWED) + +# TODO whatever this does # if not get_setting("tutorial_started"): # for k in profile["hints"].keys(): # set_hint(k, false) -# # Sets all volumes -# Sound.set_volume(0, get_setting("master_volume")) -# Sound.set_volume(1, get_setting("music_volume")) -# Sound.set_volume(2, get_setting("sfx_volume")) - -# # Touch controls -# match get_setting("touch_controls"): -# # 0: Automatically adjusted -# 1: # Enabled -# using_touch = true -# 2: # Disabled -# using_touch = false -# using_touch_change.emit() - -# # Input settings +# TODO update input map for *all* input with a single hook # InputManager.apply_input_map(InputManager.settings_dictionary_to_input_map(get_category_settings("input"))) - -# settings_changed.emit() - -# func update_language(): -# var language = languages[get_setting("language")][0] -# if language == "system": language = OS.get_locale_language() -# TranslationServer.set_locale(language) - -# func update_fullscreen(): -# match get_setting("fullscreen"): -# 0: pass -# 1: DisplayServer.window_set_mode(DisplayServer.WINDOW_MODE_FULLSCREEN) -# 2: if DisplayServer.window_get_mode() == DisplayServer.WINDOW_MODE_FULLSCREEN: -# DisplayServer.window_set_mode(DisplayServer.WINDOW_MODE_WINDOWED) diff --git a/locale/ar.ini b/locale/ar.ini index 5e4869c9..90b67a3f 100644 --- a/locale/ar.ini +++ b/locale/ar.ini @@ -86,7 +86,7 @@ c.settings.graphics.fullscreen.always=دائماً c.settings.graphics.fullscreen.keep=كما هو c.settings.graphics.fullscreen.never=أبداً c.settings.gameplay= -c.settings.gameplay.extend_boost=قم دائمًا بتمديد الجري إلى أقصى مدة +c.settings.gameplay.latch_boost=قم دائمًا بتمديد الجري إلى أقصى مدة c.settings.graphics.gi=إضاءة عالمية c.settings.graphics.gi.sdfgi=SDFGI c.settings.graphics.gi.voxelgi=Voxel GI @@ -104,10 +104,10 @@ c.settings.graphics.preset.high=عالي c.settings.graphics.preset.low=ضعيف c.settings.graphics.preset.medium=متوسط c.settings.other.server_data=دليل الـserver data (اتركوه فارغًا للبحث التلقائي) -c.settings.other.server_path=ملف للـserver binary (اتركوه فارغًا للبحث في PATH) -c.settings.other.server_path.placeholder=مسار الملف +c.settings.other.server_binary=ملف للـserver binary (اتركوه فارغًا للبحث في PATH) +c.settings.other.server_binary.placeholder=مسار الملف c.settings.graphics.shadows=ظلال -c.settings.gameplay.smooth_camera=سلّس حركة الكاميرا +c.settings.gameplay.interpolate_camera_rotation=سلّس حركة الكاميرا c.settings.ui=الإسم c.settings.ui.scale_factor=عامل حجم واجهة المستخدم c.settings.ui.scale_mode=طريقة تحجيم واجهة المستخدم @@ -139,14 +139,14 @@ unknown464=- unknown476=مفتاح الإزاحة/ العالي/SHIFT unknown484=عصا التحكم اليسرى unknown488=مفتاح الفراغ/SPACE -unknown49=عكّس حركة الكاميرا +c.settings.gameplay.invert_camera=عكّس حركة الكاميرا unknown494=اضغطوا على %s لالتقاط الأغراض واضغطوا باستمرار على %s للتفاعل مع الأدوات unknown506=مفتاحا صفحة لأعلى(PageUp)/صفحة لأسفل(PageDown) unknown510=استخدموا %s لتدوير الكاميرا unknown514=مفاتيح الأسهم(Arrow keys) unknown518=عصا التحكم اليمنى unknown524=يمكن إظهار/إخفاء الأسماء في الإعدادات -unknown53=اسماء اللاعبين +c.settings.gameplay.usernames=اسماء اللاعبين unknown530=اضغطوا على %s وانقروا على "انضم إلى اللعبة" للانضمام إلى اللعبة أثناء تشغيلها unknown534=مفتاح الهروب/Esc unknown538=زر القائمة/الهمبرغر/Menu @@ -157,7 +157,7 @@ unknown576=الاصوات c.settings.gameplay.setup_completed=تم الانتهاء من الإعداد الأولي. (إزيلوا علامة الإختيار وأعدوا التشغيل لإعادة الدخول) unknown622=يجب عليكم ملء جميع الحقول. unknown626=حسنا -unknown63=بدأ البرنامج التعليمي +c.settings.gameplay.tutorial_started=بدأ البرنامج التعليمي unknown732= unknown736= unknown740=مشاهدين diff --git a/locale/de.ini b/locale/de.ini index 4a52d1c8..e557a635 100644 --- a/locale/de.ini +++ b/locale/de.ini @@ -86,7 +86,7 @@ c.settings.graphics.fullscreen.always=Immer c.settings.graphics.fullscreen.keep=Beibehalten c.settings.graphics.fullscreen.never=Nie c.settings.gameplay=Spiel -c.settings.gameplay.extend_boost=Schub immer bis zum Anschlag verlängern +c.settings.gameplay.latch_boost=Schub immer bis zum Anschlag verlängern c.settings.graphics.gi=Globale Beleuchtung c.settings.graphics.gi.sdfgi=SDFGI c.settings.graphics.gi.voxelgi=Voxel GlobaleBeleuchtung @@ -104,10 +104,10 @@ c.settings.graphics.preset.high=Hoch c.settings.graphics.preset.low=Niedrig c.settings.graphics.preset.medium=Mittel c.settings.other.server_data=Server Datenverzeichnis (leer lassen, um automatisch zu erkennen) -c.settings.other.server_path=Pfad zum Server (leer lassen, um PATH zu durchsuchen) -c.settings.other.server_path.placeholder=Pfad eingeben +c.settings.other.server_binary=Pfad zum Server (leer lassen, um PATH zu durchsuchen) +c.settings.other.server_binary.placeholder=Pfad eingeben c.settings.graphics.shadows=Schatten aktivieren -c.settings.gameplay.smooth_camera=Kameradrehung glätten +c.settings.gameplay.interpolate_camera_rotation=Kameradrehung glätten c.settings.ui=Benutzeroberfläche c.settings.ui.scale_factor=Benutzeroberflächen Skalierungs Faktor c.settings.ui.scale_mode=Benutzeroberflächen Skalierungs Modus @@ -139,14 +139,14 @@ unknown464=- unknown476=UMSCHALTEN unknown484=linken Stick unknown488=LEERTASTE -unknown49=Kamerabewegung invertieren +c.settings.gameplay.invert_camera=Kamerabewegung invertieren unknown494=Drücke %s, um Gegenstände aufzuheben und halte %s gedrückt, um mit Utensilien zu interagieren unknown506=BildHoch/BildRunter unknown510=Nutze %s, um die Kameraansicht zurückzusetzen unknown514=Pfeiltasten unknown518=rechten Stick unknown524=Die Anzeige von Nutzernamen kann in den Einstellungen ein- und ausgeschaltet werden -unknown53=Benutzernamen anzeigen +c.settings.gameplay.usernames=Benutzernamen anzeigen unknown530=Drücken Sie %s und klicken Sie „Beitreten“, um beizutreten, während das Spiel läuft unknown534=ESCAPE unknown538=Menü-Knopf @@ -157,7 +157,7 @@ unknown576=Soundeffekte c.settings.gameplay.setup_completed=Ersteinrichtung abgeschlossen (Deaktivieren und Spiel neu starten zum Neueinrichten) unknown622=Sie müssen alle verlangten Felder ausfüllen. unknown626=Akzeptieren -unknown63=Anleitung gestartet +c.settings.gameplay.tutorial_started=Anleitung gestartet unknown732=Zurück unknown736=Nächstes unknown740=Beitreten / Zuschauen diff --git a/locale/en.ini b/locale/en.ini index 38dcff81..3f094e84 100644 --- a/locale/en.ini +++ b/locale/en.ini @@ -1,21 +1,4 @@ [hurrycurry] -c.controls.boost=Boost movement -c.controls.camera_down=Rotate camera downwards -c.controls.camera_left=Rotate camera to the left -c.controls.camera_reset=Reset camera view -c.controls.camera_right=Rotate camera to the right -c.controls.camera_up=Rotate camera upwards -c.controls.chat=Toggle chat -c.controls.fullscreen=Toggle fullscreen -c.controls.interact=Interact -c.controls.move_backward=Move backwards -c.controls.move_forward=Move forwards -c.controls.move_left=Move left -c.controls.move_right=Move right -c.controls.zoom_in_discrete=Zoom in (discrete) -c.controls.zoom_in=Zoom in -c.controls.zoom_out_discrete=Zoom out (discrete) -c.controls.zoom_out=Zoom out c.credits.developed_by=developed by c.credits.thanks=Thank You For Playing c.credits.title=Hurry Curry! - a game about cooking @@ -75,12 +58,16 @@ c.settings.audio.master_volume=Master Volume c.settings.audio.music_volume=Music Volume c.settings.audio.sfx_volume=SFX Volume c.settings.audio=Audio -c.settings.graphics.debug_info=Display debug info (Framerate, etc.) -c.settings.gameplay.extend_boost=Always extend boost to maximum duration +c.settings.gameplay.interpolate_camera_rotation=Smooth camera rotation +c.settings.gameplay.invert_camera=Invert camera movement +c.settings.gameplay.latch_boost=Always extend boost to maximum duration +c.settings.gameplay.setup_completed=Initial setup complete. (Uncheck and restart to reenter) +c.settings.gameplay.tutorial_started=Tutorial started +c.settings.gameplay.usernames=Show username tags c.settings.gameplay=Gameplay -c.settings.graphics.glow=Enable glow c.settings.graphics.aa=Anti-aliasing c.settings.graphics.ao=Ambient occlusion +c.settings.graphics.debug_info=Display debug info (Framerate, etc.) c.settings.graphics.fullscreen.always=Always c.settings.graphics.fullscreen.keep=Keep c.settings.graphics.fullscreen.never=Never @@ -88,14 +75,18 @@ c.settings.graphics.fullscreen=Fullscreen 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 c.settings.graphics.preset.high=High 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.taa=Temporal Anti-Aliasing +c.settings.graphics.ui_blur=Enable UI blur c.settings.graphics=Graphics -c.settings.graphics.grass_amount=3D grass amount per grass tile c.settings.input.add=Add new c.settings.input.joypad_axis=Joypad axis %s c.settings.input.joypad=%s (Joypad) @@ -103,16 +94,38 @@ c.settings.input.keyboard=%s (Keyboard) c.settings.input.mouse_button=Mouse button %s 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.right=Move Right +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.zoom_in_discrete=Zoom in (discrete) +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=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=Other c.settings.ui.language.system=System default c.settings.ui.language=Language -c.settings.other=Other -c.settings.other.server_data=Server data directory (leave empty to auto-detect) -c.settings.other.server_path.placeholder=Enter path -c.settings.other.server_path=Server binary (leave empty to search PATH) -c.settings.graphics.shadows=Enable shadows -c.settings.gameplay.smooth_camera=Smooth camera rotation -c.settings.graphics.ui_blur=Enable UI blur c.settings.ui.scale_factor=UI scale factor c.settings.ui.scale_mode.resize=Resize c.settings.ui.scale_mode=UI scale mode @@ -147,14 +160,12 @@ unknown464=- unknown476=SHIFT unknown484=left stick unknown488=SPACE -unknown49=Invert camera movement unknown494=Press %s to pick up items and hold %s to interact with tools unknown506=PageUp/PageDown unknown510=Use %s to rotate the camera view unknown514=arrow keys unknown518=right stick unknown524=Username tags can be enabled/disabled in the settings -unknown53=Show username tags unknown530=Press %s and click "Join" to join the game while it is running unknown534=ESCAPE unknown538=Menu button @@ -163,11 +174,9 @@ unknown564=Server and client versions do not match. Server: %d.%d, Client: %d.%d unknown568=Hairstyle %d unknown572=Models unknown576=Sounds -c.settings.gameplay.setup_completed=Initial setup complete. (Uncheck and restart to reenter) unknown598=[/table]%n%n%n unknown622=You must fill out all requested fields. unknown626=Accept -unknown63=Tutorial started unknown732=Previous unknown736=Next unknown740=Join / Spectate diff --git a/locale/es.ini b/locale/es.ini index 8af6d014..4bbbe45b 100644 --- a/locale/es.ini +++ b/locale/es.ini @@ -86,7 +86,7 @@ c.settings.graphics.fullscreen.always=Siempre c.settings.graphics.fullscreen.keep=Mantener c.settings.graphics.fullscreen.never=Jamás c.settings.gameplay= -c.settings.gameplay.extend_boost=Siempre extienda el impulso a la duración máxima +c.settings.gameplay.latch_boost=Siempre extienda el impulso a la duración máxima c.settings.graphics.gi=Iluminación global c.settings.graphics.gi.sdfgi=SDFGI c.settings.graphics.gi.voxelgi=Voxel GI @@ -104,10 +104,10 @@ c.settings.graphics.preset.high=Alto c.settings.graphics.preset.low=Bajo c.settings.graphics.preset.medium=Medio c.settings.other.server_data=Directorio de datos del servidor (deja vacío para detectar automáticamente) -c.settings.other.server_path=Binario del servidor (deja vacío para buscar RUTA) -c.settings.other.server_path.placeholder=Pone ruta +c.settings.other.server_binary=Binario del servidor (deja vacío para buscar RUTA) +c.settings.other.server_binary.placeholder=Pone ruta c.settings.graphics.shadows=Activar sombras -c.settings.gameplay.smooth_camera=Interpolar la rotación de la cámara +c.settings.gameplay.interpolate_camera_rotation=Interpolar la rotación de la cámara c.settings.ui=Nombre de usuario c.settings.ui.scale_factor=Escala de interfaz de usuario c.settings.ui.scale_mode=Modo d’escala de interfaz de usuario @@ -139,14 +139,14 @@ unknown464=- unknown476=CAMBIO unknown484=palo izquierdo unknown488=BARRA ESPACIADORA -unknown49=Invertir el movimiento de la cámara +c.settings.gameplay.invert_camera=Invertir el movimiento de la cámara unknown494=Presione %s para recoger elementos y mantenga presionado %s para interactuar con útiles unknown506=RePág/AvPág unknown510=Usa %s para restablecer la cámara unknown514=teclas de flechas unknown518=palo derecho unknown524=Los nombres de usuarios se pueden habilitar/deshabilitar en la configuración -unknown53=Mostrar nombres de usuarios +c.settings.gameplay.usernames=Mostrar nombres de usuarios unknown530=Presiona %s y haz clic en "Unirse" para unirte al juego unknown534=ESCAPAR unknown538=Botón de menú @@ -157,7 +157,7 @@ unknown576=Sonidos c.settings.gameplay.setup_completed=Configuración inicial completa. (Desmarque y recomenza para reentrar) unknown622=Debes completar todos los requisitos. unknown626=Aceptar -unknown63=Tutorial comenzó +c.settings.gameplay.tutorial_started=Tutorial comenzó unknown732= unknown736= unknown740=Observar diff --git a/locale/eu.ini b/locale/eu.ini index 534dda8c..e88c3589 100644 --- a/locale/eu.ini +++ b/locale/eu.ini @@ -86,7 +86,7 @@ c.settings.graphics.fullscreen.always=Beti c.settings.graphics.fullscreen.keep=Mantendu c.settings.graphics.fullscreen.never=Inoiz ez c.settings.gameplay=Jokoa -c.settings.gameplay.extend_boost=Beti luzatu bultzada iraupen luzeenera +c.settings.gameplay.latch_boost=Beti luzatu bultzada iraupen luzeenera c.settings.graphics.gi=Argiztapen orokorra c.settings.graphics.gi.sdfgi=SDFGI c.settings.graphics.gi.voxelgi=Voxel GI @@ -104,10 +104,10 @@ c.settings.graphics.preset.high=Altua c.settings.graphics.preset.low=Baxua c.settings.graphics.preset.medium=Erdikoa c.settings.other.server_data=Zerbitzariaren datu direktorioa (hutsik utzi automatikoki bilatzeko) -c.settings.other.server_path=Zerbitzari exekutagarria (hutsik utzi PATH-en bilatzeko) -c.settings.other.server_path.placeholder=Sartu bidea +c.settings.other.server_binary=Zerbitzari exekutagarria (hutsik utzi PATH-en bilatzeko) +c.settings.other.server_binary.placeholder=Sartu bidea c.settings.graphics.shadows=Gaitu itzalak -c.settings.gameplay.smooth_camera=Kamera biraketa leuna +c.settings.gameplay.interpolate_camera_rotation=Kamera biraketa leuna c.settings.ui=Erab. Interfazea c.settings.ui.scale_factor=UI eskalatze faktorea c.settings.ui.scale_mode=UI eskalatze modua @@ -139,14 +139,14 @@ unknown464=- unknown476=SHIFT unknown484=ezker palanka unknown488=HUTSUNEA -unknown49=Kamera mugimendua alderantzikatu +c.settings.gameplay.invert_camera=Kamera mugimendua alderantzikatu unknown494=Sakatu %s objektuak hartzeko eta eutsi %s tresnekin lan egiteko unknown506=PageUp/PageDown unknown510=Erabili %s kamera bista biratzeko unknown514=gezi teklak unknown518=eskuin palanka unknown524=Erabiltzaile etiketak ezarpenetan gaitu/desgaitu daitezke -unknown53=Erakutsi erabiltzaile izen etiketak +c.settings.gameplay.usernames=Erakutsi erabiltzaile izen etiketak unknown530=Sakatu %s eta klikatu "Batu" martxan dagoen joko batean batzeko unknown534=ESCAPE unknown538=Menu botoia @@ -157,7 +157,7 @@ unknown576=Soinuak c.settings.gameplay.setup_completed=Hasierako konfigurazioa osatuta. (Marka kendu eta berrabiarazi berriz sartzeko) unknown622=Eskatutako eremu guztiak bete behar dituzu. unknown626=Onartu -unknown63=Tutoriala hasi da +c.settings.gameplay.tutorial_started=Tutoriala hasi da unknown732=Aurrekoa unknown736=Hurrengoa unknown740=Batu / Ikusi diff --git a/locale/fi.ini b/locale/fi.ini index 271d533e..0ea8e48e 100644 --- a/locale/fi.ini +++ b/locale/fi.ini @@ -86,7 +86,7 @@ c.settings.graphics.fullscreen.always= c.settings.graphics.fullscreen.keep= c.settings.graphics.fullscreen.never= c.settings.gameplay= -c.settings.gameplay.extend_boost= +c.settings.gameplay.latch_boost= c.settings.graphics.gi= c.settings.graphics.gi.sdfgi= c.settings.graphics.gi.voxelgi= @@ -104,10 +104,10 @@ c.settings.graphics.preset.high= c.settings.graphics.preset.low= c.settings.graphics.preset.medium= c.settings.other.server_data= -c.settings.other.server_path= -c.settings.other.server_path.placeholder= +c.settings.other.server_binary= +c.settings.other.server_binary.placeholder= c.settings.graphics.shadows= -c.settings.gameplay.smooth_camera= +c.settings.gameplay.interpolate_camera_rotation= c.settings.ui= c.settings.ui.scale_factor= c.settings.ui.scale_mode= @@ -139,14 +139,14 @@ unknown464= unknown476= unknown484= unknown488= -unknown49= +c.settings.gameplay.invert_camera= unknown494= unknown506= unknown510= unknown514= unknown518= unknown524= -unknown53= +c.settings.gameplay.usernames= unknown530= unknown534= unknown538= @@ -157,7 +157,7 @@ unknown576= c.settings.gameplay.setup_completed= unknown622= unknown626= -unknown63= +c.settings.gameplay.tutorial_started= unknown732= unknown736= unknown740= diff --git a/locale/fr.ini b/locale/fr.ini index 836989aa..dede783a 100644 --- a/locale/fr.ini +++ b/locale/fr.ini @@ -86,7 +86,7 @@ c.settings.graphics.fullscreen.always=Toujours c.settings.graphics.fullscreen.keep=Garder c.settings.graphics.fullscreen.never=Jamais c.settings.gameplay= -c.settings.gameplay.extend_boost=Toujours prolonger le boost jusqu’à la durée maximale +c.settings.gameplay.latch_boost=Toujours prolonger le boost jusqu’à la durée maximale c.settings.graphics.gi=Luminosité générale c.settings.graphics.gi.sdfgi=SDFGI c.settings.graphics.gi.voxelgi=IG Voxel @@ -104,10 +104,10 @@ c.settings.graphics.preset.high=Élevé c.settings.graphics.preset.low=Faible c.settings.graphics.preset.medium=Moyen c.settings.other.server_data=Répertoire de données du serveur (laisser vide pour la détection automatique) -c.settings.other.server_path=Binaire du serveur (laisser vide pour rechercher le chemin) -c.settings.other.server_path.placeholder=Entrez le chemin +c.settings.other.server_binary=Binaire du serveur (laisser vide pour rechercher le chemin) +c.settings.other.server_binary.placeholder=Entrez le chemin c.settings.graphics.shadows=Activer les ombres -c.settings.gameplay.smooth_camera=Interpoler la rotation de la caméra +c.settings.gameplay.interpolate_camera_rotation=Interpoler la rotation de la caméra c.settings.ui=Nom d’utilisateur c.settings.ui.scale_factor=Taille de l’interface utilisateur c.settings.ui.scale_mode=Mode d’échelle de l’interface utilisateur @@ -139,14 +139,14 @@ unknown464=- unknown476=MAJUSCULE unknown484=stick gauche unknown488=BARRE D’ESPACE -unknown49=Inverser le mouvement de caméra +c.settings.gameplay.invert_camera=Inverser le mouvement de caméra unknown494=Appuyez sur %s pour attraper des objets et maintenez %s enfoncé pour interagir avec les outils unknown506=Page précédente/Page suivante unknown510=Utilisez %s pour orienter le point de vue de la caméra unknown514=Touches fléchées unknown518=stick droit unknown524=Les noms d’utilisateurs peuvent être activées/désactivées dans les paramètres -unknown53=Montrer les noms d’utilisateur +c.settings.gameplay.usernames=Montrer les noms d’utilisateur unknown530=Appuyez sur %s et cliquez sur "Rejoindre" pour rejoindre le partie lorsqu’elle est en route unknown534=ÉCHAP unknown538=Bouton de menu @@ -157,7 +157,7 @@ unknown576=Sons c.settings.gameplay.setup_completed=Configuration initiale terminée. (Décochez et recommencer pour entrer à nouveau) unknown622=Vous devez remplir tous les champs requis. unknown626=Accepter -unknown63=Tutoriel commencé +c.settings.gameplay.tutorial_started=Tutoriel commencé unknown732= unknown736= unknown740=Regarder diff --git a/locale/he.ini b/locale/he.ini index e20a6a24..bd8ab350 100644 --- a/locale/he.ini +++ b/locale/he.ini @@ -86,7 +86,7 @@ c.settings.graphics.fullscreen.always=תמיד c.settings.graphics.fullscreen.keep=שמור c.settings.graphics.fullscreen.never=אף פעם c.settings.gameplay= -c.settings.gameplay.extend_boost=תמיד הארך דחיפה לזמן המירבי +c.settings.gameplay.latch_boost=תמיד הארך דחיפה לזמן המירבי c.settings.graphics.gi=תאורה גלובאלית c.settings.graphics.gi.sdfgi=SDFGI c.settings.graphics.gi.voxelgi= @@ -104,10 +104,10 @@ c.settings.graphics.preset.high=גבוה c.settings.graphics.preset.low=נמוך c.settings.graphics.preset.medium= c.settings.other.server_data=תקיית המידע של השרת (השאר ריק על מנת לזהות אוטומטית) -c.settings.other.server_path=קובץ הרצה של השרת (השאר ריק על מנת לחפש ב PATH) -c.settings.other.server_path.placeholder=הכנס נתיב +c.settings.other.server_binary=קובץ הרצה של השרת (השאר ריק על מנת לחפש ב PATH) +c.settings.other.server_binary.placeholder=הכנס נתיב c.settings.graphics.shadows=אפשר צללים -c.settings.gameplay.smooth_camera= +c.settings.gameplay.interpolate_camera_rotation= c.settings.ui=שם משתמש c.settings.ui.scale_factor= c.settings.ui.scale_mode= @@ -139,14 +139,14 @@ unknown464= unknown476=SHIFT unknown484=ג'ויסטיק שמאלי unknown488=רווח -unknown49=הפוך תזוזת מצלמה +c.settings.gameplay.invert_camera=הפוך תזוזת מצלמה unknown494= unknown506=PageUp/PageDown unknown510= unknown514=חיצים unknown518=ג'ויסטיק ימני unknown524= -unknown53=הראה שמות משתמשים +c.settings.gameplay.usernames=הראה שמות משתמשים unknown530= unknown534=Escape unknown538=כפתור התפריט @@ -157,7 +157,7 @@ unknown576= c.settings.gameplay.setup_completed=אתחול ראשוני נגמר. (הורד סימון והדלק מחדש על מנת להכנס מחדש) unknown622=אנא מלאו את כל השדות הנדרשים. unknown626=אשר -unknown63=הדרכה התחילה +c.settings.gameplay.tutorial_started=הדרכה התחילה unknown732= unknown736= unknown740=צפייה diff --git a/locale/ja.ini b/locale/ja.ini index a6597d93..bfa36fe3 100644 --- a/locale/ja.ini +++ b/locale/ja.ini @@ -86,7 +86,7 @@ c.settings.graphics.fullscreen.always=いつも c.settings.graphics.fullscreen.keep=保つ c.settings.graphics.fullscreen.never=決して c.settings.gameplay= -c.settings.gameplay.extend_boost=ブーストを常に最大限に拡張する +c.settings.gameplay.latch_boost=ブーストを常に最大限に拡張する c.settings.graphics.gi=グローバルイルミネーション c.settings.graphics.gi.sdfgi=SDFGI c.settings.graphics.gi.voxelgi=Voxel GI @@ -104,10 +104,10 @@ c.settings.graphics.preset.high=高 c.settings.graphics.preset.low=悪い c.settings.graphics.preset.medium=正常 c.settings.other.server_data=サーバーデータディレクトリ(させて空の -> 自動検出) -c.settings.other.server_path=サーバーバイナリ(させて空の ->「パス」) -c.settings.other.server_path.placeholder=パスを入力 +c.settings.other.server_binary=サーバーバイナリ(させて空の ->「パス」) +c.settings.other.server_binary.placeholder=パスを入力 c.settings.graphics.shadows=影を有効に -c.settings.gameplay.smooth_camera=カメラの回転を補間 +c.settings.gameplay.interpolate_camera_rotation=カメラの回転を補間 c.settings.ui=ユーザー名 c.settings.ui.scale_factor=UIスケール c.settings.ui.scale_mode=UIスケール @@ -139,14 +139,14 @@ unknown464=- unknown476=「シフト」 unknown484=左スティック unknown488=「スペース」 -unknown49=カメラの動きを反転 +c.settings.gameplay.invert_camera=カメラの動きを反転 unknown494=%s キーを押すとアイテムを拾い、 %s キーを押したままにするとツールを操作できます unknown506=ページアップ/ページダウン unknown510=カメラをリセットするには %s を使用して unknown514=矢印キー unknown518=右スティック unknown524=ユーザー名は設定で有効/無効にできます -unknown53=ユーザー名を表示 +c.settings.gameplay.usernames=ユーザー名を表示 unknown530=ゲームに参加するには、 %s を押して「参加」をクリック unknown534=「エスケープ」 unknown538=メニューボタン @@ -157,7 +157,7 @@ unknown576=サウンド c.settings.gameplay.setup_completed=初期設定完了。(チェックを外して再起動して) unknown622=要求されたフィールドをすべて入力する必要があります。 unknown626=アクセプト -unknown63=チュートリアルを開始 +c.settings.gameplay.tutorial_started=チュートリアルを開始 unknown732= unknown736= unknown740=観戦 diff --git a/locale/pl.ini b/locale/pl.ini index 7c12a3d7..dd07997a 100644 --- a/locale/pl.ini +++ b/locale/pl.ini @@ -86,7 +86,7 @@ c.settings.graphics.fullscreen.always=Zawsze c.settings.graphics.fullscreen.keep=Zachowaj c.settings.graphics.fullscreen.never=Nigdy c.settings.gameplay= -c.settings.gameplay.extend_boost=Zawsze wydłużaj przyspieszenie do maksymalnego czasu trwania +c.settings.gameplay.latch_boost=Zawsze wydłużaj przyspieszenie do maksymalnego czasu trwania c.settings.graphics.gi=Globalne oświetlenie c.settings.graphics.gi.sdfgi=SDF c.settings.graphics.gi.voxelgi=Oświetlenie wokselowe @@ -104,10 +104,10 @@ c.settings.graphics.preset.high=Wysokie c.settings.graphics.preset.low=Niskie c.settings.graphics.preset.medium=Średnie c.settings.other.server_data=Folder danych serwera (pozostaw puste aby wykryć automatycznie) -c.settings.other.server_path=Plik wykonywalny serwera (pozostaw puste aby przeszukać ścieżkę PATH) -c.settings.other.server_path.placeholder=Podaj ścieżkę +c.settings.other.server_binary=Plik wykonywalny serwera (pozostaw puste aby przeszukać ścieżkę PATH) +c.settings.other.server_binary.placeholder=Podaj ścieżkę c.settings.graphics.shadows=Cienie -c.settings.gameplay.smooth_camera=Gładki obrót kamery +c.settings.gameplay.interpolate_camera_rotation=Gładki obrót kamery c.settings.ui=Nazwa użytkownika c.settings.ui.scale_factor=Stopień skalowania interfejsu c.settings.ui.scale_mode=Skalowanie interfejsu @@ -139,14 +139,14 @@ unknown464=- unknown476=SHIFT unknown484=lewy dżojstik unknown488=SPACJA -unknown49=Odwrócone sterowanie kamerą +c.settings.gameplay.invert_camera=Odwrócone sterowanie kamerą unknown494=Wciśnij %s aby podnieść przedmioty i przytrzymaj %s aby użyć narzędzia unknown506=PageUp/PageDown unknown510=Użyj %s aby obrócić kamerę unknown514=klawisze strzałek unknown518=prawy dżojstik unknown524=Tagi z nazwą użytkownika możesz włączyć/wyłączyć w ustawieniach -unknown53=Pokazywanie tagów z nazwą użytkownika +c.settings.gameplay.usernames=Pokazywanie tagów z nazwą użytkownika unknown530=Wciśnij %s i wybierz "Dołącz" aby dołączyć do gry w toku unknown534=ESCAPE unknown538=przycisk menu @@ -157,7 +157,7 @@ unknown576=Oprawa dźwiękowa c.settings.gameplay.setup_completed=Konfiguracja wstępna ukończona. (Odznacz i zrestartuj aby wykonać ponownie) unknown622=Musisz wypełnić wymagane pola. unknown626=Zatwierdź -unknown63=Tutorial rozpoczęty +c.settings.gameplay.tutorial_started=Tutorial rozpoczęty unknown732= unknown736= unknown740=Oglądaj diff --git a/locale/pt.ini b/locale/pt.ini index 271d533e..0ea8e48e 100644 --- a/locale/pt.ini +++ b/locale/pt.ini @@ -86,7 +86,7 @@ c.settings.graphics.fullscreen.always= c.settings.graphics.fullscreen.keep= c.settings.graphics.fullscreen.never= c.settings.gameplay= -c.settings.gameplay.extend_boost= +c.settings.gameplay.latch_boost= c.settings.graphics.gi= c.settings.graphics.gi.sdfgi= c.settings.graphics.gi.voxelgi= @@ -104,10 +104,10 @@ c.settings.graphics.preset.high= c.settings.graphics.preset.low= c.settings.graphics.preset.medium= c.settings.other.server_data= -c.settings.other.server_path= -c.settings.other.server_path.placeholder= +c.settings.other.server_binary= +c.settings.other.server_binary.placeholder= c.settings.graphics.shadows= -c.settings.gameplay.smooth_camera= +c.settings.gameplay.interpolate_camera_rotation= c.settings.ui= c.settings.ui.scale_factor= c.settings.ui.scale_mode= @@ -139,14 +139,14 @@ unknown464= unknown476= unknown484= unknown488= -unknown49= +c.settings.gameplay.invert_camera= unknown494= unknown506= unknown510= unknown514= unknown518= unknown524= -unknown53= +c.settings.gameplay.usernames= unknown530= unknown534= unknown538= @@ -157,7 +157,7 @@ unknown576= c.settings.gameplay.setup_completed= unknown622= unknown626= -unknown63= +c.settings.gameplay.tutorial_started= unknown732= unknown736= unknown740= diff --git a/locale/tools/src/main.rs b/locale/tools/src/main.rs index 1ae59c83..1082581e 100644 --- a/locale/tools/src/main.rs +++ b/locale/tools/src/main.rs @@ -31,6 +31,23 @@ enum Args { }, } +static NATIVE_LANGUAGE_NAMES: &[(&'static str, &'static str)] = &[ + ("en", "English"), + ("de", "Deutsch"), + ("fr", "Français"), + ("es", "Español"), + ("eu", "euskara"), + ("ja", "日本語"), + ("he", "עִברִית"), + ("tr", "Türkçe"), + ("fi", "suomen"), + ("ar", "العربية"), + ("zh_Hans", "中文 (简化字)"), + ("zh_Hant", "中文 (繁體字)"), + ("pl", "Polski"), + ("pt", "Português"), +]; + fn main() -> Result<()> { let args = Args::parse(); match args { @@ -39,9 +56,13 @@ fn main() -> Result<()> { input, output, } => { - let ini = load_ini(&input)?; + let mut ini = load_ini(&input)?; let id_map = id_map.map(|path| load_ini(&path)).transpose()?; + for &(code, name) in NATIVE_LANGUAGE_NAMES { + ini.insert(format!("c.settings.ui.language.{code}"), name.to_owned()); + } + File::create(output)?.write_all( format!( r#" diff --git a/locale/tr.ini b/locale/tr.ini index 271d533e..0ea8e48e 100644 --- a/locale/tr.ini +++ b/locale/tr.ini @@ -86,7 +86,7 @@ c.settings.graphics.fullscreen.always= c.settings.graphics.fullscreen.keep= c.settings.graphics.fullscreen.never= c.settings.gameplay= -c.settings.gameplay.extend_boost= +c.settings.gameplay.latch_boost= c.settings.graphics.gi= c.settings.graphics.gi.sdfgi= c.settings.graphics.gi.voxelgi= @@ -104,10 +104,10 @@ c.settings.graphics.preset.high= c.settings.graphics.preset.low= c.settings.graphics.preset.medium= c.settings.other.server_data= -c.settings.other.server_path= -c.settings.other.server_path.placeholder= +c.settings.other.server_binary= +c.settings.other.server_binary.placeholder= c.settings.graphics.shadows= -c.settings.gameplay.smooth_camera= +c.settings.gameplay.interpolate_camera_rotation= c.settings.ui= c.settings.ui.scale_factor= c.settings.ui.scale_mode= @@ -139,14 +139,14 @@ unknown464= unknown476= unknown484= unknown488= -unknown49= +c.settings.gameplay.invert_camera= unknown494= unknown506= unknown510= unknown514= unknown518= unknown524= -unknown53= +c.settings.gameplay.usernames= unknown530= unknown534= unknown538= @@ -157,7 +157,7 @@ unknown576= c.settings.gameplay.setup_completed= unknown622= unknown626= -unknown63= +c.settings.gameplay.tutorial_started= unknown732= unknown736= unknown740= diff --git a/locale/zh_Hans.ini b/locale/zh_Hans.ini index e5003956..e1dbaafa 100644 --- a/locale/zh_Hans.ini +++ b/locale/zh_Hans.ini @@ -86,7 +86,7 @@ c.settings.graphics.fullscreen.always=始终 c.settings.graphics.fullscreen.keep=保持 c.settings.graphics.fullscreen.never=从不 c.settings.gameplay=游戏玩法 -c.settings.gameplay.extend_boost=始终将加速延长至最大持续时间 +c.settings.gameplay.latch_boost=始终将加速延长至最大持续时间 c.settings.graphics.gi=全局照明 c.settings.graphics.gi.sdfgi=有符号距离场全局照明 c.settings.graphics.gi.voxelgi=体素全局照明 @@ -104,10 +104,10 @@ c.settings.graphics.preset.high=高 c.settings.graphics.preset.low=低 c.settings.graphics.preset.medium=中 c.settings.other.server_data=服务器数据目录(留空以自动检测) -c.settings.other.server_path=服务器二进制文件(留空以搜索路径) -c.settings.other.server_path.placeholder=输入路径 +c.settings.other.server_binary=服务器二进制文件(留空以搜索路径) +c.settings.other.server_binary.placeholder=输入路径 c.settings.graphics.shadows=启用阴影 -c.settings.gameplay.smooth_camera=平滑的摄像头旋转 +c.settings.gameplay.interpolate_camera_rotation=平滑的摄像头旋转 c.settings.ui=用户界面 c.settings.ui.scale_factor=用户界面比例系数 c.settings.ui.scale_mode=用户界面缩放模式 @@ -139,14 +139,14 @@ unknown464=- unknown476=Shift unknown484=左摇杆 unknown488=空格键 -unknown49=反转摄像头移动 +c.settings.gameplay.invert_camera=反转摄像头移动 unknown494=按下 %s 可拾取物品,按住 %s 可与工具交互 unknown506=向上/向下翻页 unknown510=使用 %s 旋转摄像头视图 unknown514=方向键 unknown518=右摇杆 unknown524=可以在设置中启用/禁用用户名标签 -unknown53=显示用户名标签 +c.settings.gameplay.usernames=显示用户名标签 unknown530=按 %s 并单击“加入”以在游戏运行时加入游戏 unknown534=Esc unknown538=菜单按钮 @@ -157,7 +157,7 @@ unknown576=声音 c.settings.gameplay.setup_completed=初始设置完成。(取消选中并重启以重新进入) unknown622=您必须填写所有要求的字段。 unknown626=接受 -unknown63=教程已开始 +c.settings.gameplay.tutorial_started=教程已开始 unknown732=上一个 unknown736=下一个 unknown740=加入/旁观 diff --git a/locale/zh_Hant.ini b/locale/zh_Hant.ini index 61aaa15a..047c59f6 100644 --- a/locale/zh_Hant.ini +++ b/locale/zh_Hant.ini @@ -86,7 +86,7 @@ c.settings.graphics.fullscreen.always=總是 c.settings.graphics.fullscreen.keep=保留 c.settings.graphics.fullscreen.never=永不 c.settings.gameplay= -c.settings.gameplay.extend_boost=總是將加速延長至最長持續時間 +c.settings.gameplay.latch_boost=總是將加速延長至最長持續時間 c.settings.graphics.gi=全域照明 c.settings.graphics.gi.sdfgi=有符號距離場全域照明(SDFGI) c.settings.graphics.gi.voxelgi=Voxel 全域照明 @@ -104,10 +104,10 @@ c.settings.graphics.preset.high=高 c.settings.graphics.preset.low=低 c.settings.graphics.preset.medium=中 c.settings.other.server_data=伺服器資料目錄(留空以自動偵測) -c.settings.other.server_path=伺服器二進制檔案(留空以搜尋 PATH) -c.settings.other.server_path.placeholder=輸入路徑 +c.settings.other.server_binary=伺服器二進制檔案(留空以搜尋 PATH) +c.settings.other.server_binary.placeholder=輸入路徑 c.settings.graphics.shadows=啟用陰影 -c.settings.gameplay.smooth_camera=平滑的相機旋轉 +c.settings.gameplay.interpolate_camera_rotation=平滑的相機旋轉 c.settings.ui=使用者名稱 c.settings.ui.scale_factor=介面比例系數 c.settings.ui.scale_mode=介面縮放模式 @@ -139,14 +139,14 @@ unknown464=- unknown476=SHIFT unknown484=左搖桿 unknown488=空白鍵 -unknown49=反相相機移動 +c.settings.gameplay.invert_camera=反相相機移動 unknown494=按下 %s 來拾取物品並按住 %s 來與工具互動 unknown506=PageUp/PageDown unknown510=使用 %s 來旋轉相機視角 unknown514=方向鍵 unknown518=右搖桿 unknown524=可以在設定中啟用/停用使用者名稱標籤 -unknown53=顯示使用者名稱標籤 +c.settings.gameplay.usernames=顯示使用者名稱標籤 unknown530=按下 %s 並點擊「加入」以在遊戲運行時加入 unknown534=ESCAPE unknown538=選單按鈕 @@ -157,7 +157,7 @@ unknown576=聲音 c.settings.gameplay.setup_completed=初始設定完成。(取消勾選並重新啟動以重新進入) unknown622=你必須填寫所有要求的欄位。 unknown626=接受 -unknown63=教程已啟動 +c.settings.gameplay.tutorial_started=教程已啟動 unknown732= unknown736= unknown740=旁觀 -- 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/settings.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 7144115b819c843e568be449c07c43a5172a5d86 Mon Sep 17 00:00:00 2001 From: metamuffin Date: Sat, 7 Sep 2024 11:43:49 +0200 Subject: apply settings after startup --- client/global.gd | 3 ++- client/settings.gd | 4 ++++ 2 files changed, 6 insertions(+), 1 deletion(-) (limited to 'client/settings.gd') diff --git a/client/global.gd b/client/global.gd index 47d9da06..7629b05d 100644 --- a/client/global.gd +++ b/client/global.gd @@ -55,7 +55,6 @@ var focused_node: Control func _ready(): profile = load_dict("user://profile", default_profile) - settings_tree = Settings.get_root() load_settings("user://settings") get_viewport().gui_focus_changed.connect(Sound.play_hover_maybe) @@ -120,7 +119,9 @@ func load_settings(path: String): else: print("No settings file found.") settings = {} + settings_tree = Settings.get_root() settings_tree.check() + Settings.apply_initial() save_settings() func on_mobile() -> bool: diff --git a/client/settings.gd b/client/settings.gd index bfa25a00..828ecb62 100644 --- a/client/settings.gd +++ b/client/settings.gd @@ -86,6 +86,10 @@ static var change_hooks_apply = { "audio.sfx_volume": h_volume_sfx, } +static func apply_initial(): + for key in change_hooks_apply.keys(): + change_hooks_apply[key].call(Global.get_setting(key)) + static func h_aa(mode): match mode: "disabled": -- 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/settings.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 From 5e105902f0abfaba01bc878956fe3c9a096aa455 Mon Sep 17 00:00:00 2001 From: metamuffin Date: Sat, 7 Sep 2024 14:11:05 +0200 Subject: wildcard hooks --- client/global.gd | 5 ++--- client/settings.gd | 13 ++++++++++--- 2 files changed, 12 insertions(+), 6 deletions(-) (limited to 'client/settings.gd') diff --git a/client/global.gd b/client/global.gd index 7629b05d..0923b457 100644 --- a/client/global.gd +++ b/client/global.gd @@ -144,10 +144,9 @@ 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 typeof(settings[key]) == typeof(value) and settings[key] == value: return + if key in settings and typeof(settings[key]) == typeof(value) and not value is Array 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) + Settings.trigger_hook(key, value) save_settings() func set_setting(key: String, value): diff --git a/client/settings.gd b/client/settings.gd index 5501f1ab..341db7cc 100644 --- a/client/settings.gd +++ b/client/settings.gd @@ -66,6 +66,11 @@ static func get_root(): ]) ]) +static func trigger_hook(key: String, 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) + if key.find(".") != -1: trigger_hook(key.rsplit(".", false, 1)[0], null) + static func hook_changed(key: String, display: bool, callable: Callable): if display: change_hooks_display[key] = callable else: change_hooks_apply[key] = callable @@ -76,6 +81,7 @@ static func hook_changed_init(key: String, display: bool, callable: Callable): static var change_hooks_display = {} static var change_hooks_apply = { + "input": h_input, "graphics.aa": h_aa, "graphics.taa": h_taa, "graphics.fullscreen": h_fullscreen, @@ -142,10 +148,11 @@ static func h_fullscreen(mode: String): "never": if DisplayServer.window_get_mode() == DisplayServer.WINDOW_MODE_FULLSCREEN: DisplayServer.window_set_mode(DisplayServer.WINDOW_MODE_WINDOWED) +static func h_input(_x): + pass + # InputManager.apply_input_map(InputManager.settings_dictionary_to_input_map()) + # TODO whatever this does # if not get_setting("tutorial_started"): # for k in profile["hints"].keys(): # set_hint(k, false) - -# TODO update input map for *all* input with a single hook -# InputManager.apply_input_map(InputManager.settings_dictionary_to_input_map(get_category_settings("input"))) -- cgit v1.2.3-70-g09d2 From 7ae48041d88ac32cd0892a78125103cbdccd7dab Mon Sep 17 00:00:00 2001 From: metamuffin Date: Sat, 7 Sep 2024 14:44:26 +0200 Subject: hook input changes --- client/menu/settings/input/input_manager.gd | 7 ------- client/settings.gd | 11 +++++++++-- 2 files changed, 9 insertions(+), 9 deletions(-) (limited to 'client/settings.gd') diff --git a/client/menu/settings/input/input_manager.gd b/client/menu/settings/input/input_manager.gd index 784b4974..d216884b 100644 --- a/client/menu/settings/input/input_manager.gd +++ b/client/menu/settings/input/input_manager.gd @@ -38,13 +38,6 @@ func input_map_to_settings(map: Dictionary) -> Array: entries.append(InputSetting.new(k, events)) return entries -func settings_dictionary_to_input_map(settings: Dictionary) -> Dictionary: - var map := {} - for k in settings.keys(): - var setting: InputSetting = settings[k] - map[k] = setting.get_value() - return map - func change_input_map_action(action_name: String, events: Array, save: bool = true): if !InputMap.has_action(action_name): push_error("Action %s does not exist" % action_name, false) diff --git a/client/settings.gd b/client/settings.gd index 341db7cc..2c3ae9a5 100644 --- a/client/settings.gd +++ b/client/settings.gd @@ -79,6 +79,14 @@ static func hook_changed_init(key: String, display: bool, callable: Callable): hook_changed(key, display, callable) callable.call(Global.get_setting(key)) +static func get_category_dict(prefix: String): + var map = {} + for k in Global.settings.keys(): + var kn = k.trim_prefix(prefix+".") + if kn == k: continue + map[kn] = Global.get_setting(k) + return map + static var change_hooks_display = {} static var change_hooks_apply = { "input": h_input, @@ -149,8 +157,7 @@ static func h_fullscreen(mode: String): DisplayServer.window_set_mode(DisplayServer.WINDOW_MODE_WINDOWED) static func h_input(_x): - pass - # InputManager.apply_input_map(InputManager.settings_dictionary_to_input_map()) + InputManager.apply_input_map(Settings.get_category_dict("input")) # TODO whatever this does # if not get_setting("tutorial_started"): -- cgit v1.2.3-70-g09d2