internal void AddTransition(IState state, IInvokableTransition transition, IEventDelegate parentStateMachine) { this.SetParentStateMachine(parentStateMachine, state); OptimizingList <IInvokableTransition> transitions; if (!this.transitions.TryGetValue(state, out transitions)) { transitions = new OptimizingList <IInvokableTransition>(); } var firstThatWillAlwaysOccur = transitions.FirstOrDefault(x => x.WillAlwaysOccur); if (firstThatWillAlwaysOccur != null) { throw new ArgumentException($"{transition} will never occur from {state}: {firstThatWillAlwaysOccur} was added first, and will always happen"); } transitions.Add(transition); this.transitions[state] = transitions; }
internal void AddTransition(IState state, IInvokableTransition transition, IEventDelegate parentStateMachine) { this.innerEvent.SetParentStateMachine(parentStateMachine, state, this); this.innerEvent.AddTransition(state, transition); }
internal void AddTransition(IState state, IInvokableTransition transition) { this.innerEvent.AddTransition(state, transition); }