@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...") stage = EventManager.get_stage(event) visible = not stage in hide_if_on_stage 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)