reset settings button + saving window mode + saving settings in main menu

This commit is contained in:
Altaezio
2026-07-21 16:09:41 +02:00
parent bc77604fc9
commit 825a41f236
8 changed files with 136 additions and 25 deletions
+36 -5
View File
@@ -2,7 +2,7 @@
extends Control
class_name GuiSettings
@onready var settings : SettingsData = GameInfo.settings_data
@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
@@ -20,11 +20,30 @@ func _ready():
%SettingsWindow.closed.connect(
func():
GameInfo.save_settings()
hide()
)
TwitchConnection.pseudo_gathered_updated.connect(
func (_p):update_twitch_pseudo()
func(_p): update_twitch_pseudo()
)
hide()
func _process(_delta: float) -> void:
if settings:
var window_mode := DisplayServer.window_get_mode()
if window_mode != settings.window_mode:
settings.window_mode = window_mode
GameInfo.save_settings()
if window_mode == DisplayServer.WINDOW_MODE_WINDOWED:
var window := get_tree().root.get_window()
var changed := false
if settings.window_size != window.size:
settings.window_size = window.size
changed = true
if settings.window_pos != window.position:
settings.window_pos = window.position
changed = true
if changed:
GameInfo.save_settings()
func open_settings():
setup_languages()
@@ -40,6 +59,7 @@ func open_settings():
func close_settings():
GameInfo.save_settings()
%SettingsWindow.close_window()
hide()
func setup_languages():
var optionButton := (%LanguageOptionButton as OptionButton)
@@ -55,7 +75,7 @@ func setup_sound():
%SFXSlider.value = settings.sfx_volume
func setup_video():
%FullScreenCheckBox.button_pressed = settings.full_screen
%FullScreenCheckBox.button_pressed = settings.window_mode == DisplayServer.WINDOW_MODE_FULLSCREEN
%UiSizeSlider.value = settings.ui_size
func setup_controls():
@@ -82,7 +102,7 @@ func _on_language_option_button_item_selected(index: int):
func _on_full_screen_check_box_toggled(toggled_on: bool):
settings.full_screen = toggled_on
settings.window_mode = DisplayServer.WINDOW_MODE_FULLSCREEN if toggled_on else DisplayServer.WINDOW_MODE_WINDOWED
func _on_master_slider_drag_ended(_value_changed: bool) -> void:
%MasterTestPlayer.play()
@@ -122,3 +142,14 @@ func _on_twitch_channel_line_edit_editing_toggled(toggled_on: bool):
func _on_story_mode_difficulty_option_button_item_selected(index: int):
settings.story_mode_difficulty = index
func _on_reset_pressed() -> void:
settings.reset_settings()
setup_languages()
setup_sound()
setup_video()
setup_controls()
setup_difficulty()
setup_twitch()
update_twitch_pseudo()
GameInfo.save_settings()