extends Node signal game_data_updated(g : GameData) var game_data : GameData : set(v): game_data = v game_data_updated.emit(v) func _init(): if not game_data: game_data = GameData.new() update_language_settings(game_data.settings) update_video_settings(game_data.settings) game_data.settings.language_changed.connect(_on_settings_language_changed) game_data.settings.video_changed.connect(_on_settings_video_changed) func _on_settings_video_changed(s : SettingsData): update_video_settings(s) func _on_settings_language_changed(s : SettingsData): update_language_settings(s) func update_language_settings(s : SettingsData): TranslationServer.set_locale(s.language) func update_video_settings(s : SettingsData): DisplayServer.window_set_mode(DisplayServer.WINDOW_MODE_FULLSCREEN if s.full_screen else DisplayServer.WINDOW_MODE_WINDOWED) func update_input(action : String, old_event : InputEvent, event : InputEvent): InputMap.action_erase_event(action, old_event) InputMap.action_add_event(action, event)