55 lines
1.5 KiB
GDScript3
55 lines
1.5 KiB
GDScript3
|
@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 event != &"":
|
|||
|
name = "Event_" + event
|
|||
|
if Engine.is_editor_hint():
|
|||
|
return
|
|||
|
stage = EventManager.get_stage(event)
|
|||
|
if event == &"":
|
|||
|
printerr("[HandnoteEvent2D] event is not set. continue processing...")
|
|||
|
refresh_visibility()
|
|||
|
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
|
|||
|
|
|||
|
|
|||
|
func refresh_visibility() -> void:
|
|||
|
var should_show = not stage in hide_if_on_stage
|
|||
|
if visible != should_show:
|
|||
|
visible = should_show
|
|||
|
|
|||
|
|
|||
|
###### 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)
|