public void AddTransitionTo(StateNode other, TransitionTrigger trigger) { if (trigger == null) { StateNodeEntered = null; StateNodeEntered += () => Goto(other); } else { trigger.OnTrigger += () => { if (Active) { trigger.FireBeforeTransition(); if (trigger.Valid) { Goto(other); trigger.FireAfterTransition(); } } }; } }
private void Goto(StateNode other) { this.Leave(); other.Enter(); }