34 lines
1.0 KiB
GDScript
34 lines
1.0 KiB
GDScript
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)
|
|
|