extends Node var config: Config = Config.new() func _ready() -> void: Save.load(config) toggle_fullscreen() func _process(_delta: float) -> void: if Input.is_action_just_pressed("fullscreen"): config.fullscreen = !config.fullscreen Save.save(config) toggle_fullscreen() func _notification(what: int) -> void: if what == Window.NOTIFICATION_APPLICATION_FOCUS_OUT: Input.mouse_mode = Input.MOUSE_MODE_VISIBLE func _unhandled_input(event: InputEvent) -> void: if event is InputEventMouse: Input.mouse_mode = Input.MOUSE_MODE_VISIBLE elif !event.is_action("escape"): Input.mouse_mode = Input.MOUSE_MODE_HIDDEN func toggle_fullscreen() -> void: if config.fullscreen: if OS.get_name() == "Windows": DisplayServer.window_set_mode(DisplayServer.WINDOW_MODE_EXCLUSIVE_FULLSCREEN) else: DisplayServer.window_set_mode(DisplayServer.WINDOW_MODE_FULLSCREEN) else: DisplayServer.window_set_mode(DisplayServer.WINDOW_MODE_WINDOWED)