42 lines
893 B
GDScript
42 lines
893 B
GDScript
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
|