xiandie/scene/entity/ux/content_inspector.gd
2025-06-26 01:53:16 +08:00

53 lines
1.2 KiB
GDScript

extends Control
class_name ContentInspector
signal exit
@onready var label = $TipContainer/Label as Label
var tip_can_show = "Q: " + tr("ui_退出") + " " + "E: " + tr("ui_阅读")
var tip_can_hide = "Q: " + tr("ui_退出") + " " + "E: " + tr("ui_收起")
var displaying = false
var blinking_tween: Tween
func _ready() -> void:
_setup_content()
func _setup_content():
for c in get_children():
if c.name == "TipContainer":
continue
c.visible = displaying
# reset_tips
if displaying:
label.text = tip_can_hide
else:
label.text = tip_can_show
if blinking_tween and blinking_tween.is_valid():
blinking_tween.kill()
# tween tips
blinking_tween = create_tween()
blinking_tween.tween_property(label, "modulate:a", 0.8, 2.0)
blinking_tween.tween_property(label, "modulate:a", 1.0, 2.0)
blinking_tween.set_loops(100000)
func _unhandled_input(event: InputEvent) -> void:
if event.is_action_pressed("interact"):
if not visible:
visible = true
displaying = false
_setup_content()
else:
displaying = not displaying
_setup_content()
get_viewport().set_input_as_handled()
# elif event.is_action_pressed("cancel"):
# exit.emit()
# visible = false
# get_viewport().set_input_as_handled()