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
+54 -12
View File
@@ -6,6 +6,18 @@ const MUSIC_BUS_ID = 1
const SFX_BUS_ID = 2
const AMBIANCE_BUS_ID = 3
const DEFAULT_MASTER_VOLUME := 1.0
const DEFAULT_MUSIC_VOLUME := 0.7
const DEFAULT_AMBIANCE_VOLUME := 0.7
const DEFAULT_SFX_VOLUME := 0.5
const DEFAULT_WINDOW_MODE := DisplayServer.WINDOW_MODE_FULLSCREEN
const DEFAULT_UI_SIZE := 1.0
const DEFAULT_FOV := 75.0
const DEFAULT_DIFFICULTY := 1
const DEFAULT_AUTO_PICKUP := true
const DEFAULT_MOUSE_SENSIVITY := 0.2
const DEFAULT_ZOOM := 1.0
signal language_changed(settings : SettingsData)
signal sound_changed(settings : SettingsData)
signal video_changed(settings : SettingsData)
@@ -13,6 +25,26 @@ signal game_changed(settings : SettingsData)
signal fov_changed(value : float)
signal twitch_changed(settings : SettingsData)
func reset_settings() -> void:
language = OS.get_locale_language()
master_volume = DEFAULT_MASTER_VOLUME
music_volume = DEFAULT_MUSIC_VOLUME
ambiance_volume = DEFAULT_AMBIANCE_VOLUME
sfx_volume = DEFAULT_SFX_VOLUME
window_mode = DEFAULT_WINDOW_MODE
ui_size = DEFAULT_UI_SIZE
fov = DEFAULT_FOV
story_mode_difficulty = DEFAULT_DIFFICULTY
auto_pickup = DEFAULT_AUTO_PICKUP
mouse_sensivity = DEFAULT_MOUSE_SENSIVITY
zoom = DEFAULT_ZOOM
closed_help_containers = []
activate_twitch_integration = false
func reset_controls() -> void:
action_remapped = []
input_remapped = []
#region ------------------ Language ------------------
const AVAILABLE_LANGUAGES = [
@@ -31,34 +63,44 @@ const AVAILABLE_LANGUAGES_LABEL = [
#region ------------------ Sound ------------------
@export var master_volume : float = 1.0 :
@export var master_volume := DEFAULT_MASTER_VOLUME :
set(v):
master_volume = v
sound_changed.emit(self)
@export var music_volume : float = 0.7 :
@export var music_volume := DEFAULT_MUSIC_VOLUME :
set(v):
music_volume = v
sound_changed.emit(self)
@export var ambiance_volume : float = 0.7 :
@export var ambiance_volume := DEFAULT_AMBIANCE_VOLUME :
set(v):
ambiance_volume = v
sound_changed.emit(self)
@export var sfx_volume : float = 0.5 :
@export var sfx_volume := DEFAULT_SFX_VOLUME :
set(v):
sfx_volume = v
sound_changed.emit(self)
#region ------------------ Video ------------------
@export var full_screen : bool = true :
@export var window_mode := DEFAULT_WINDOW_MODE :
set(v):
full_screen = v
window_mode = v
video_changed.emit(self)
@export var ui_size : float = 1. :
@export var window_size := Vector2i(800, 450):
set(v):
window_size = v
video_changed.emit(self)
@export var window_pos := Vector2i(50, 50):
set(v):
window_pos = v
video_changed.emit(self)
@export var ui_size := DEFAULT_UI_SIZE :
set(v):
ui_size = v
video_changed.emit(self)
@@ -70,7 +112,7 @@ const AVAILABLE_LANGUAGES_LABEL = [
@export var action_remapped : Array[String] = []
@export var input_remapped : Array[InputEvent] = []
@export var fov := 75. :
@export var fov := DEFAULT_FOV :
set(v):
fov = v
fov_changed.emit(fov)
@@ -84,17 +126,17 @@ const AVAILABLE_DIFFICULTY = [
"CHALLENGE_MODE"
]
@export var story_mode_difficulty := 1 # Voir AVAILABLE_DIFFICULTY
@export var story_mode_difficulty := DEFAULT_DIFFICULTY # Voir AVAILABLE_DIFFICULTY
@export var auto_pickup := true
@export var auto_pickup := DEFAULT_AUTO_PICKUP
@export var mouse_sensivity := 0.2
@export var mouse_sensivity := DEFAULT_MOUSE_SENSIVITY
const MAX_ZOOM = 2.
const MIN_ZOOM = 0.5
# Not in settings pannel
@export var zoom : float = 1. :
@export var zoom := DEFAULT_ZOOM :
set(v):
zoom = min(MAX_ZOOM,max(MIN_ZOOM,v))
game_changed.emit(self)