public static FiniteStateMachineTransition <EventType> Generate(List <FiniteStateMachineState <EventType> > states, int start, int end, bool inverted, Type eventType, FiniteStateMachineTransitionCondition <EventType> .FiniteStateMachineTransitionConditionDelegate checkDelegate, FiniteStateMachineTransition <EventType> .TransitionFinishedDelegate finishedDelegate) { List <FiniteStateMachineTransitionCondition <EventType> > transitionConditionList = new List <FiniteStateMachineTransitionCondition <EventType> >(); transitionConditionList.Add(new FiniteStateMachineTransitionCondition <EventType>() { EventTypeObject = eventType, CheckDelegate = checkDelegate }); FiniteStateMachineTransition <EventType> machineTransition1 = new FiniteStateMachineTransition <EventType>(); machineTransition1.SourceState = states[start]; machineTransition1.TargetState = states[end]; machineTransition1.TransitionConditions = transitionConditionList; machineTransition1.Finished = finishedDelegate; int num = inverted ? 1 : 0; machineTransition1.Inverted = num != 0; FiniteStateMachineTransition <EventType> machineTransition2 = machineTransition1; states[start].Outgoing.Add(machineTransition2); return(machineTransition2); }
public static FiniteStateMachineTransition <EventType> Generate(List <FiniteStateMachineState <EventType> > states, int start, int end, Type eventType, FiniteStateMachineTransitionCondition <EventType> .FiniteStateMachineTransitionConditionDelegate checkDelegate, FiniteStateMachineTransition <EventType> .TransitionFinishedDelegate finishedDelegate) { return(FiniteStateMachineTransition <EventType> .Generate(states, start, end, false, eventType, checkDelegate, finishedDelegate)); }