@tool @icon("res://addons/reedscene/prop/icon/prop_trans_icon.svg") extends Node class_name ReedTransition @export var from_state_id: int = -1 @export var effects: Array[ReedPropEffect] = [] ## runtime only @export var runtime_only: bool = true ##Transtion能否被触发 func can_trigger(from: ReedPropState, ctx: Dictionary) -> bool: if from == null: return false if from_state_id != -1 and from.state_id != from_state_id: return false if runtime_only and ctx.get("is_load", false): return false return true ##执行Transition的逻辑 func execute(from: ReedPropState, to: ReedPropState, ctx: Dictionary) -> bool: # Effect 不需要知道 from/to,但 Transition 需要用 to 拿目标对象 var owner : Node= to._owner var prop_comp : Node= to._owner_prop_comp for e in effects: e.apply(owner, prop_comp, ctx) return true