Files
seeding-planets/gui/menu/settings/scripts/settings.gd
Zacharie Guet af91337017 Dev démo 1.3
* Ajout d'un paramètre pour la taille de l'UI
* Changement de la traduction anglaise de la fourche en "pitchfork" et correction de
* Réparation de bug suite à la montée de version de Godot en 4.7
2026-06-19 10:42:34 +02:00

88 lines
2.5 KiB
GDScript

@tool
extends Control
class_name GuiSettings
@onready var settings : SettingsData = GameInfo.settings_data
@export_tool_button("Open", "Callable") var open_action = open_settings
@export_tool_button("Close", "Callable") var close_action = close_settings
func _ready():
setup_languages()
setup_sound()
setup_video()
setup_controls()
show()
%SettingsWindow.hide()
%SettingsWindow.closed.connect(
func():
GameInfo.save_settings()
)
func open_settings():
setup_languages()
setup_sound()
setup_controls()
show()
%SettingsWindow.open_window()
func close_settings():
GameInfo.save_settings()
%SettingsWindow.close_window()
func setup_languages():
var optionButton := (%LanguageOptionButton as OptionButton)
optionButton.clear()
for language in SettingsData.AVAILABLE_LANGUAGES_LABEL:
optionButton.add_item(language)
optionButton.selected = SettingsData.AVAILABLE_LANGUAGES.find(settings.language)
func setup_sound():
%MusicSlider.value = settings.music_volume
%EnvSlider.value = settings.ambiance_volume
%SFXSlider.value = settings.sfx_volume
func setup_video():
%FullScreenCheckBox.button_pressed = settings.full_screen
%UiSizeSlider.value = settings.ui_size
func setup_controls():
%AutoPickupCheckBox.button_pressed = settings.auto_pickup
%FovSlider.value = settings.fov
%SensibilitySlider.value = settings.mouse_sensivity
func _on_language_option_button_item_selected(index: int):
settings.language = SettingsData.AVAILABLE_LANGUAGES[index]
func _on_full_screen_check_box_toggled(toggled_on: bool):
settings.full_screen = toggled_on
func _on_music_slider_value_changed(value: float):
if value != settings.music_volume:
%MusicTestPlayer.play()
settings.music_volume = min(1.0, value)
func _on_env_slider_value_changed(value: float):
if value != settings.ambiance_volume:
%AudioStreamPlayer.play()
settings.ambiance_volume = min(1.0, value)
func _on_sfx_slider_value_changed(value: float):
if value != settings.sfx_volume:
%SfxTestPlayer.play()
settings.sfx_volume = min(1.0, value)
func _on_auto_pickup_check_box_toggled(toggled_on: bool):
settings.auto_pickup = toggled_on
func _on_fov_slider_value_changed(value):
if is_node_ready():
settings.fov = value
func _on_sensibility_slider_value_changed(value: float):
settings.mouse_sensivity = value
func _on_ui_size_slider_value_changed(value: float):
settings.ui_size = %UiSizeSlider.value