xiandie/scene/main.gd

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("savings"):
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
)