diff options
| author | metamuffin <metamuffin@disroot.org> | 2024-09-07 04:16:34 +0200 | 
|---|---|---|
| committer | metamuffin <metamuffin@disroot.org> | 2024-09-07 04:16:34 +0200 | 
| commit | 7f559afc6307d628ca56de175486323d587d71a8 (patch) | |
| tree | cd62b0bdefe2ef0c98bf88eef9aff1dc2580f287 /client | |
| parent | a97f429c6a0ead9eb084efbd276bd999bf9c9a7f (diff) | |
| download | hurrycurry-7f559afc6307d628ca56de175486323d587d71a8.tar hurrycurry-7f559afc6307d628ca56de175486323d587d71a8.tar.bz2 hurrycurry-7f559afc6307d628ca56de175486323d587d71a8.tar.zst | |
strings for inputs and some fixes
Diffstat (limited to 'client')
| -rw-r--r-- | client/global.gd | 64 | ||||
| -rw-r--r-- | client/settings.gd | 114 | 
2 files changed, 56 insertions, 122 deletions
| 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) | 
