xiandie/scene/main.gd

72 lines
2.0 KiB
GDScript3
Raw Normal View History

2024-12-23 01:29:31 +00:00
extends Node2D
# @export var locale := "":
# set(val):
# TranslationServer.set_locale(val)
# locale = val
2024-12-24 01:16:06 +00:00
2025-07-01 11:40:30 +00:00
@onready var vignette = %Vignette as ColorRect
2025-01-08 00:51:09 +00:00
2024-12-23 01:29:31 +00:00
func _ready() -> void:
%UILayer.layer = GlobalConfig.CANVAS_LAYER_UI
2025-01-06 08:06:20 +00:00
%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()
2025-06-27 14:52:46 +00:00
SceneManager.show_panel()
# SceneManager.show_settings()
elif event.is_action_pressed("bag"):
2025-06-27 14:52:46 +00:00
get_viewport().set_input_as_handled()
SceneManager.show_bag()
2025-06-27 14:52:46 +00:00
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()
2025-06-27 14:52:46 +00:00
SceneManager.show_note()
elif event.is_action_pressed("panel"):
get_viewport().set_input_as_handled()
2025-06-27 14:52:46 +00:00
SceneManager.show_panel()
2025-07-18 11:52:49 +00:00
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()
2025-07-01 11:40:30 +00:00
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
)