extends Node2D # @export var locale := "": # set(val): # TranslationServer.set_locale(val) # locale = val @onready var vignette = %Vignette as ColorRect func _ready() -> void: %UILayer.layer = GlobalConfig.CANVAS_LAYER_UI %ColorRectTop.visible = true %ColorRectBottom.visible = true # focus_mode = Control.FOCUS_CLICK # settings.exited.connect(grab_focus) var debug_button_last_press_msec := 0 var debug_button_pressed_count := 0 func _unhandled_input(event: InputEvent) -> void: if event.is_action_pressed("escape"): get_viewport().set_input_as_handled() SceneManager.show_panel() # SceneManager.show_settings() elif event.is_action_pressed("bag"): get_viewport().set_input_as_handled() SceneManager.show_bag() elif event.is_action_pressed("memory"): get_viewport().set_input_as_handled() SceneManager.show_memory() elif event.is_action_pressed("note"): get_viewport().set_input_as_handled() SceneManager.show_note() elif event.is_action_pressed("panel"): get_viewport().set_input_as_handled() SceneManager.show_panel() elif event.is_action_pressed("debugging"): if GlobalConfig.DEBUG: get_viewport().set_input_as_handled() SceneManager.show_debugging() else: # 连续按 5 次开启 debug mode var time = Time.get_ticks_msec() if time - debug_button_last_press_msec < 500: debug_button_pressed_count += 1 else: debug_button_pressed_count = 1 debug_button_last_press_msec = time if debug_button_pressed_count >= 5: get_viewport().set_input_as_handled() # 不写入配置 GlobalConfig.DEBUG = true SceneManager.show_debugging() var vignette_tween: Tween func tween_vignette(ratio := 0.5, duration := 0.3, color := Color.RED): if vignette_tween and vignette_tween.is_valid(): vignette_tween.kill() vignette_tween = create_tween() vignette_tween.tween_property( vignette.material, "shader_parameter/vignette_ratio", ratio, duration ) vignette_tween.parallel().tween_property( vignette.material, "shader_parameter/vignette_rgb", color, duration )