/// <summary> /// Clone constructor /// </summary> private StateRepresentation(TState state, IEnumerable <KeyValuePair <TTrigger, ICollection <TriggerBehaviour> > > triggerBehaviours, IEnumerable <Action <Transition, object[]> > entryActions, IEnumerable <Action <Transition> > exitActions, StateRepresentation superstate, IEnumerable <StateRepresentation> substates) { _state = state; foreach (var behaviour in triggerBehaviours) { _triggerBehaviours.Add(behaviour); } foreach (var action in entryActions) { _entryActions.Add(action); } foreach (var action in exitActions) { _exitActions.Add(action); } if (superstate != null) { _superstate = superstate.Clone(); } foreach (var substate in substates) { _substates.Add(substate.Clone()); } }