extends Resource class_name SettingsData const MUSIC_BUS_ID = 1 const SFX_BUS_ID = 2 const AMBIANCE_BUS_ID = 3 signal language_changed(settings : SettingsData) signal sound_changed(settings : SettingsData) signal video_changed(settings : SettingsData) signal game_changed(settings : SettingsData) signal fov_changed(value : float) #region ------------------ Language ------------------ const AVAILABLE_LANGUAGES = [ "en", "fr", ] const AVAILABLE_LANGUAGES_LABEL = [ "English", "Français", ] @export var language : String = OS.get_locale_language() : set(v): language = v language_changed.emit(self) #region ------------------ Sound ------------------ @export var music_volume : float = 0.7 : set(v): music_volume = v sound_changed.emit(self) @export var ambiance_volume : float = 0.7 : set(v): ambiance_volume = v sound_changed.emit(self) @export var sfx_volume : float = 0.5 : set(v): sfx_volume = v sound_changed.emit(self) #region ------------------ Video ------------------ @export var full_screen : bool = true : set(v): full_screen = v video_changed.emit(self) #region ------------------ Controls ------------------ @export var action_remapped : Array[String] = [] @export var input_remapped : Array[InputEvent] = [] @export var fov := 75. : set(v): fov = v fov_changed.emit(fov) #region ------------------ Game ------------------ @export var auto_pickup := true @export var mouse_sensivity := 0.2 const MAX_ZOOM = 2. const MIN_ZOOM = 0.5 # Not in settings pannel @export var zoom : float = 1. : set(v): zoom = min(MAX_ZOOM,max(MIN_ZOOM,v)) game_changed.emit(self) @export var closed_help_containers = [] func is_help_container_closed(help_container_name : String) -> bool: return help_container_name in closed_help_containers func close_help_container(help_container_name : String): if not help_container_name in closed_help_containers: closed_help_containers.append(help_container_name) game_changed.emit(self) func open_help_container(help_container_name : String): if help_container_name in closed_help_containers: closed_help_containers.erase(help_container_name) game_changed.emit(self)