72 lines
2.0 KiB
GDScript
72 lines
2.0 KiB
GDScript
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_savings()
|
|
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_savings()
|
|
|
|
|
|
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
|
|
)
|