Files
gymkhana-actions/game/ui/commons/options/options.gd
Dennis Ploeger c8958e7454 Issue 377 (#383)
* feat: Implements speech fixes #377

* docs: Automatic update of API docs

* chore: Updated speech translation.

Co-authored-by: Dennis Ploeger <develop@dieploegers.de>
Co-authored-by: dploeger <dploeger@users.noreply.github.com>
2021-09-06 08:52:16 +02:00

87 lines
2.4 KiB
GDScript

extends Control
signal back_button_pressed
onready var settings_changed = false
var backup_settings
# A list of languages already added to the language selection
var _loaded_languages: Array = []
func _ready() -> void:
var _flags_container: HBoxContainer = \
$CenterContainer/VBoxContainer/MarginContainer/options/flags
for child in _flags_container.get_children():
_flags_container.remove_child(child)
_loaded_languages = []
for lang in TranslationServer.get_loaded_locales():
if not lang in _loaded_languages:
_loaded_languages.append(lang)
var _lang = TextureRect.new()
_lang.texture = load(
"res://game/ui/commons/options/flags/%s.png" % lang
)
_flags_container.add_child(_lang)
_lang.connect("gui_input", self, "_on_language_input", [lang])
func show():
backup_settings = escoria.settings.duplicate()
initialize_options(escoria.settings)
visible = true
func initialize_options(p_settings):
var _options = $CenterContainer/VBoxContainer/MarginContainer/options
_options.get_node("general_volume").value = p_settings["master_volume"]
_options.get_node("sound_volume").value = p_settings["sfx_volume"]
_options.get_node("music_volume").value = p_settings["music_volume"]
_options.get_node("speech_volume").value = p_settings["speech_volume"]
func _on_language_input(event: InputEvent, language: String):
if event.is_pressed():
TranslationServer.set_locale(language)
escoria.settings["text_lang"] = language
settings_changed = true
func _on_sound_volume_changed(value):
escoria.settings["sfx_volume"] = value
escoria._on_settings_loaded(escoria.settings)
settings_changed = true
func _on_music_volume_changed(value):
escoria.settings["music_volume"] = value
escoria._on_settings_loaded(escoria.settings)
settings_changed = true
func _on_general_volume_changed(value):
escoria.settings["master_volume"] = value
escoria._on_settings_loaded(escoria.settings)
settings_changed = true
func _on_apply_pressed():
escoria.save_manager.save_settings()
settings_changed = false
emit_signal("back_button_pressed")
func _on_back_pressed():
escoria.settings = backup_settings
escoria._on_settings_loaded(escoria.settings)
emit_signal("back_button_pressed")
func _on_speech_volume_value_changed(value: float) -> void:
escoria.settings["speech_volume"] = value
escoria._on_settings_loaded(escoria.settings)
settings_changed = true