42 lines
893 B
GDScript3
42 lines
893 B
GDScript3
|
extends Node2D
|
||
|
class_name Event2D
|
||
|
|
||
|
# 前置依赖事件,为空时意味着无前置事件
|
||
|
@export var pre_event: String
|
||
|
# 当前事件
|
||
|
@export var event: String
|
||
|
|
||
|
var prev_stage := 0
|
||
|
var stage := 0
|
||
|
|
||
|
|
||
|
func _ready() -> void:
|
||
|
stage = EventManager.get_stage(event)
|
||
|
if pre_event:
|
||
|
prev_stage = EventManager.get_stage(pre_event)
|
||
|
SceneManager.ground_ready.connect(_on_ground_ready)
|
||
|
EventManager.stage_updated.connect(_on_global_stage_updated)
|
||
|
|
||
|
|
||
|
func _on_global_stage_updated(e: StringName, s: int):
|
||
|
if e == pre_event:
|
||
|
prev_stage = s
|
||
|
print("[Event2D] Pre-event stage updated: %s, stage: %s" % [pre_event, prev_stage])
|
||
|
_on_pre_stage_updated()
|
||
|
elif e == event:
|
||
|
stage = s
|
||
|
print("[Event2D] Event stage updated: %s, stage: %s" % [event, stage])
|
||
|
_on_stage_updated()
|
||
|
|
||
|
|
||
|
func _on_ground_ready(ground: Ground2D):
|
||
|
pass
|
||
|
|
||
|
|
||
|
func _on_pre_stage_updated():
|
||
|
pass
|
||
|
|
||
|
|
||
|
func _on_stage_updated():
|
||
|
pass
|