55 lines
1.5 KiB
GDScript
55 lines
1.5 KiB
GDScript
@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)
|