extends Node # Reads / writes the SettingsData held by Global.database. Applies locale, # resolution, and fullscreen state on startup and on any setter call. func _ready() -> void: apply_language(translate_int_to_locale(get_setting_language())) apply_resolution() apply_fullscreen() func apply_language(locale: String) -> void: TranslationServer.set_locale(locale) func translate_int_to_locale(id: int) -> String: match id: 0: return "en" 1: return "fr" return "en" func apply_resolution() -> void: var res := get_setting_resolution() get_window().content_scale_size = Vector2i(int(res[0]), int(res[1])) func apply_fullscreen() -> void: get_window().mode = Window.MODE_EXCLUSIVE_FULLSCREEN if get_setting_fullscreen() else Window.MODE_WINDOWED func _data() -> SettingsData: return Global.database.settings func get_setting_language() -> int: return _data().langue func set_setting_language(value: int) -> void: _data().langue = value Global.database.save() apply_language(translate_int_to_locale(value)) func get_setting_gyrosocpe() -> bool: return _data().gyroscope func set_setting_gyroscope(value: bool) -> void: _data().gyroscope = value Global.database.save() func get_setting_ambient_sound() -> bool: return _data().ambient_sound func set_setting_ambient_sound(value: bool) -> void: _data().ambient_sound = value Global.database.save() func get_setting_resolution() -> PackedStringArray: return _data().resolution_split() func set_setting_resolution(value: String) -> void: _data().resolution = value Global.database.save() apply_resolution() func get_setting_fullscreen() -> bool: return _data().fullscreen func set_setting_fullscreen(value: bool) -> void: _data().fullscreen = value Global.database.save() apply_fullscreen() func get_setting_version() -> String: return "v" + _data().version