xiandie/scene/ux/note/note_event.gd

48 lines
1.3 KiB
GDScript3
Raw Normal View History

2025-07-02 11:58:36 +00:00
@tool
class_name HandnoteEvent2D
extends Sprite2D
# 当前事件
@export var event: StringName
@export var hide_if_on_stage: Array[int] = []
@export_tool_button("复制 greater setter") var copy_greater_setter = _copy_greater_setter
@export_tool_button("复制 setter") var copy_setter = _copy_setter
@export_tool_button("复制 getter") var copy_getter = _copy_getter
var stage := 0
func _ready() -> void:
if Engine.is_editor_hint():
return
if event == &"":
printerr("[HandnoteEvent2D] event is not set. continue processing...")
2025-07-02 16:32:37 +00:00
stage = EventManager.get_stage(event)
visible = not stage in hide_if_on_stage
2025-07-02 11:58:36 +00:00
var blot_out_node = get_node_or_null("BlotOut")
if blot_out_node:
# 0 初始化隐藏1 开始显示2 划掉3 结束隐藏
blot_out_node.visible = Engine.is_editor_hint() or stage == 2
###### TOOL BUTTON
func _copy_greater_setter():
var text = 'EventManager.set_stage_if_greater(&"%s", 1)' % event
DisplayServer.clipboard_set(text)
print("Copied event greater setter: %s" % text)
func _copy_setter():
var text = 'EventManager.set_stage(&"%s", 1)' % event
DisplayServer.clipboard_set(text)
print("Copied event setter: %s" % text)
func _copy_getter():
var text = 'EventManager.get_stage(&"%s")' % event
DisplayServer.clipboard_set(text)
print("Copied event getter: %s" % text)