ajout de panneaux de contrôles, de paramètres et refactorisation de la gestion de l'audio
This commit is contained in:
53
gui/menu/settings/scripts/settings.gd
Normal file
53
gui/menu/settings/scripts/settings.gd
Normal file
@@ -0,0 +1,53 @@
|
||||
@tool
|
||||
extends Control
|
||||
class_name GuiSettings
|
||||
|
||||
@onready var settings : SettingsData = GameInfo.game_data.settings
|
||||
|
||||
@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()
|
||||
if not Engine.is_editor_hint():
|
||||
%SettingsWindow.close_window()
|
||||
show()
|
||||
|
||||
func open_settings():
|
||||
%SettingsWindow.open_window()
|
||||
|
||||
func close_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
|
||||
|
||||
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):
|
||||
settings.music_volume = min(1.0, value)
|
||||
|
||||
func _on_env_slider_value_changed(value: float):
|
||||
settings.ambiance_volume = min(1.0, value)
|
||||
|
||||
func _on_sfx_slider_value_changed(value: float):
|
||||
settings.sfx_volume = min(1.0, value)
|
||||
1
gui/menu/settings/scripts/settings.gd.uid
Normal file
1
gui/menu/settings/scripts/settings.gd.uid
Normal file
@@ -0,0 +1 @@
|
||||
uid://bms0xtv8vh2qg
|
||||
137
gui/menu/settings/settings.tscn
Normal file
137
gui/menu/settings/settings.tscn
Normal file
@@ -0,0 +1,137 @@
|
||||
[gd_scene load_steps=6 format=3 uid="uid://g6lbgg1fhc25"]
|
||||
|
||||
[ext_resource type="Script" uid="uid://bms0xtv8vh2qg" path="res://gui/menu/settings/scripts/settings.gd" id="1_7t8mv"]
|
||||
[ext_resource type="PackedScene" uid="uid://brxrl7sipyy6k" path="res://gui/menu/window/window.tscn" id="1_gkn1k"]
|
||||
[ext_resource type="Theme" uid="uid://bgcmd213j6gk1" path="res://gui/ressources/default_theme.tres" id="2_7t8mv"]
|
||||
[ext_resource type="PackedScene" uid="uid://cvjqp3oewr3rv" path="res://gui/menu/window/content_title.tscn" id="3_rbiwc"]
|
||||
[ext_resource type="PackedScene" uid="uid://d3agt2njfgddb" path="res://gui/menu/window/content_label.tscn" id="4_rbiwc"]
|
||||
|
||||
[node name="Settings" type="Control"]
|
||||
process_mode = 3
|
||||
layout_mode = 3
|
||||
anchors_preset = 15
|
||||
anchor_right = 1.0
|
||||
anchor_bottom = 1.0
|
||||
grow_horizontal = 2
|
||||
grow_vertical = 2
|
||||
mouse_filter = 1
|
||||
script = ExtResource("1_7t8mv")
|
||||
|
||||
[node name="SettingsWindow" parent="." instance=ExtResource("1_gkn1k")]
|
||||
unique_name_in_owner = true
|
||||
process_mode = 3
|
||||
layout_mode = 1
|
||||
offset_left = -349.99994
|
||||
offset_right = 350.00006
|
||||
mouse_filter = 0
|
||||
title = "SETTINGS"
|
||||
|
||||
[node name="WindowTitle" parent="SettingsWindow/WindowHeader/MarginContainer" index="0"]
|
||||
text = "SETTINGS"
|
||||
|
||||
[node name="MarginContainer" type="MarginContainer" parent="SettingsWindow/WindowContent/MarginContainer/ContentContainer" index="0"]
|
||||
layout_mode = 2
|
||||
size_flags_horizontal = 3
|
||||
size_flags_vertical = 3
|
||||
theme_override_constants/margin_left = 5
|
||||
theme_override_constants/margin_top = 0
|
||||
|
||||
[node name="SettingsContent" type="VBoxContainer" parent="SettingsWindow/WindowContent/MarginContainer/ContentContainer/MarginContainer"]
|
||||
layout_mode = 2
|
||||
size_flags_horizontal = 3
|
||||
size_flags_vertical = 3
|
||||
|
||||
[node name="LanguageTitle" parent="SettingsWindow/WindowContent/MarginContainer/ContentContainer/MarginContainer/SettingsContent" instance=ExtResource("3_rbiwc")]
|
||||
layout_mode = 2
|
||||
title = "LANGUAGE"
|
||||
|
||||
[node name="LanguageSettings" type="GridContainer" parent="SettingsWindow/WindowContent/MarginContainer/ContentContainer/MarginContainer/SettingsContent"]
|
||||
layout_mode = 2
|
||||
columns = 2
|
||||
|
||||
[node name="LanguageText" parent="SettingsWindow/WindowContent/MarginContainer/ContentContainer/MarginContainer/SettingsContent/LanguageSettings" instance=ExtResource("4_rbiwc")]
|
||||
layout_mode = 2
|
||||
|
||||
[node name="LanguageOptionButton" type="OptionButton" parent="SettingsWindow/WindowContent/MarginContainer/ContentContainer/MarginContainer/SettingsContent/LanguageSettings"]
|
||||
unique_name_in_owner = true
|
||||
layout_mode = 2
|
||||
size_flags_horizontal = 3
|
||||
size_flags_vertical = 4
|
||||
theme = ExtResource("2_7t8mv")
|
||||
selected = 0
|
||||
item_count = 2
|
||||
popup/item_0/text = "English"
|
||||
popup/item_0/id = 0
|
||||
popup/item_1/text = "Français"
|
||||
popup/item_1/id = 1
|
||||
|
||||
[node name="SoundTitle" parent="SettingsWindow/WindowContent/MarginContainer/ContentContainer/MarginContainer/SettingsContent" instance=ExtResource("3_rbiwc")]
|
||||
layout_mode = 2
|
||||
title = "SOUND"
|
||||
|
||||
[node name="SoundSliders" type="GridContainer" parent="SettingsWindow/WindowContent/MarginContainer/ContentContainer/MarginContainer/SettingsContent"]
|
||||
layout_mode = 2
|
||||
columns = 2
|
||||
|
||||
[node name="MusicText" parent="SettingsWindow/WindowContent/MarginContainer/ContentContainer/MarginContainer/SettingsContent/SoundSliders" instance=ExtResource("4_rbiwc")]
|
||||
layout_mode = 2
|
||||
text = "MUSIC_VOLUME"
|
||||
|
||||
[node name="MusicSlider" type="HSlider" parent="SettingsWindow/WindowContent/MarginContainer/ContentContainer/MarginContainer/SettingsContent/SoundSliders"]
|
||||
unique_name_in_owner = true
|
||||
layout_mode = 2
|
||||
size_flags_horizontal = 3
|
||||
size_flags_vertical = 3
|
||||
theme = ExtResource("2_7t8mv")
|
||||
max_value = 1.0
|
||||
step = 0.01
|
||||
value = 1.0
|
||||
|
||||
[node name="EvironmentText" parent="SettingsWindow/WindowContent/MarginContainer/ContentContainer/MarginContainer/SettingsContent/SoundSliders" instance=ExtResource("4_rbiwc")]
|
||||
layout_mode = 2
|
||||
text = "ENVIRONMENT_VOLUME"
|
||||
|
||||
[node name="EnvSlider" type="HSlider" parent="SettingsWindow/WindowContent/MarginContainer/ContentContainer/MarginContainer/SettingsContent/SoundSliders"]
|
||||
unique_name_in_owner = true
|
||||
layout_mode = 2
|
||||
size_flags_vertical = 1
|
||||
max_value = 1.0
|
||||
step = 0.01
|
||||
|
||||
[node name="SFXText" parent="SettingsWindow/WindowContent/MarginContainer/ContentContainer/MarginContainer/SettingsContent/SoundSliders" instance=ExtResource("4_rbiwc")]
|
||||
layout_mode = 2
|
||||
text = "SFX_VOLUME"
|
||||
|
||||
[node name="SFXSlider" type="HSlider" parent="SettingsWindow/WindowContent/MarginContainer/ContentContainer/MarginContainer/SettingsContent/SoundSliders"]
|
||||
unique_name_in_owner = true
|
||||
layout_mode = 2
|
||||
size_flags_vertical = 1
|
||||
max_value = 1.0
|
||||
step = 0.01
|
||||
|
||||
[node name="VideoTitle" parent="SettingsWindow/WindowContent/MarginContainer/ContentContainer/MarginContainer/SettingsContent" instance=ExtResource("3_rbiwc")]
|
||||
layout_mode = 2
|
||||
title = "VIDEO"
|
||||
|
||||
[node name="VideoSettings" type="GridContainer" parent="SettingsWindow/WindowContent/MarginContainer/ContentContainer/MarginContainer/SettingsContent"]
|
||||
layout_mode = 2
|
||||
columns = 2
|
||||
|
||||
[node name="FullScreenText" parent="SettingsWindow/WindowContent/MarginContainer/ContentContainer/MarginContainer/SettingsContent/VideoSettings" instance=ExtResource("4_rbiwc")]
|
||||
layout_mode = 2
|
||||
text = "FULLSCREEN"
|
||||
|
||||
[node name="FullScreenCheckBox" type="CheckBox" parent="SettingsWindow/WindowContent/MarginContainer/ContentContainer/MarginContainer/SettingsContent/VideoSettings"]
|
||||
unique_name_in_owner = true
|
||||
layout_mode = 2
|
||||
size_flags_horizontal = 10
|
||||
size_flags_vertical = 4
|
||||
theme = ExtResource("2_7t8mv")
|
||||
|
||||
[connection signal="item_selected" from="SettingsWindow/WindowContent/MarginContainer/ContentContainer/MarginContainer/SettingsContent/LanguageSettings/LanguageOptionButton" to="." method="_on_language_option_button_item_selected"]
|
||||
[connection signal="value_changed" from="SettingsWindow/WindowContent/MarginContainer/ContentContainer/MarginContainer/SettingsContent/SoundSliders/MusicSlider" to="." method="_on_music_slider_value_changed"]
|
||||
[connection signal="value_changed" from="SettingsWindow/WindowContent/MarginContainer/ContentContainer/MarginContainer/SettingsContent/SoundSliders/EnvSlider" to="." method="_on_env_slider_value_changed"]
|
||||
[connection signal="value_changed" from="SettingsWindow/WindowContent/MarginContainer/ContentContainer/MarginContainer/SettingsContent/SoundSliders/SFXSlider" to="." method="_on_sfx_slider_value_changed"]
|
||||
[connection signal="toggled" from="SettingsWindow/WindowContent/MarginContainer/ContentContainer/MarginContainer/SettingsContent/VideoSettings/FullScreenCheckBox" to="." method="_on_full_screen_check_box_toggled"]
|
||||
|
||||
[editable path="SettingsWindow"]
|
||||
Reference in New Issue
Block a user