extends Control signal back_to_main_menu @onready var master_slider = $SettingsContainer/MasterVolumeContainer/MasterVolumeSlider @onready var music_slider = $SettingsContainer/MusicVolumeContainer/MusicVolumeSlider @onready var sfx_slider = $SettingsContainer/SFXVolumeContainer/SFXVolumeSlider @onready var language_selector = $SettingsContainer/LanguageContainer/LanguageSelector var language_codes = [] func _ready(): print("SettingsMenu ready") # Load current settings into sliders master_slider.value = SettingsManager.get_setting("master_volume") music_slider.value = SettingsManager.get_setting("music_volume") sfx_slider.value = SettingsManager.get_setting("sfx_volume") # Connect slider signals master_slider.value_changed.connect(_on_master_volume_changed) music_slider.value_changed.connect(_on_music_volume_changed) sfx_slider.value_changed.connect(_on_sfx_volume_changed) # Setup language selector from JSON data setup_language_selector() update_text() func _on_master_volume_changed(value: float): SettingsManager.set_setting("master_volume", value) print("Master volume changed to: ", value) func _on_music_volume_changed(value: float): SettingsManager.set_setting("music_volume", value) print("Music volume changed to: ", value) func _on_sfx_volume_changed(value: float): SettingsManager.set_setting("sfx_volume", value) print("SFX volume changed to: ", value) func _input(event): if event.is_action_pressed("ui_cancel") or event.is_action_pressed("ui_menu_toggle"): print("ESC pressed in settings") back_to_main_menu.emit() get_viewport().set_input_as_handled() func _on_back_button_pressed(): print("Back button pressed") back_to_main_menu.emit() func setup_language_selector(): var languages_data = SettingsManager.get_languages_data() if languages_data.has("languages"): language_selector.clear() language_codes.clear() for lang_code in languages_data.languages.keys(): language_codes.append(lang_code) var display_name = languages_data.languages[lang_code]["display_name"] language_selector.add_item(display_name) # Set current language selection var current_lang = SettingsManager.get_setting("language") var lang_index = language_codes.find(current_lang) if lang_index >= 0: language_selector.selected = lang_index # Remove the old get_language_index function and update this one: func _on_language_selector_item_selected(index: int): if index < language_codes.size(): var selected_lang = language_codes[index] SettingsManager.set_setting("language", selected_lang) print("Language changed to: ", selected_lang) LocalizationManager.change_language(selected_lang) func update_text(): # Update all the label texts when language changes $SettingsContainer/SettingsTitle.text = tr("settings_title") $SettingsContainer/MasterVolumeContainer/MasterVolume.text = tr("master_volume") $SettingsContainer/MusicVolumeContainer/MusicVolume.text = tr("music_volume") $SettingsContainer/SFXVolumeContainer/SFXVolume.text = tr("sfx_volume") $SettingsContainer/LanguageContainer/LanguageLabel.text = tr("language") $BackButtonContainer/BackButton.text = tr("back")