private void LoadStates() { var states = _builder.GetStates(); if (states != null) { _metadata = _builder.GetMetadata <PlainStateMachineBuilderMetadata>(MetadataKey); var initialStateId = _builder.GetInitialStateId(); for (int i = 0; i < states.Length; i++) { var current = states[i]; for (int j = 0; j < _metadata.StateNodesMetadata.Count; j++) { if (PlainStateMachineBuilderHelper.AreEquals(_metadata.StateNodesMetadata[j].StateId, current.StateId)) { AddNodeFrom(states[i], _metadata.StateNodesMetadata[j]); break; } } } var initialNode = StateNodeOf(initialStateId); if (initialNode != null) { SetInitialStateNode(initialNode); } } }
private void RemoveTransitionsRelatedTo(StateNode node) { for (int i = 0; i < _transitions.Count; i++) { if (PlainStateMachineBuilderHelper.AreEquals(node.StateId, _transitions[i].StateFrom) || PlainStateMachineBuilderHelper.AreEquals(node.StateId, _transitions[i].StateTo)) { RemoveTransition(_transitions[i]); } } }
private StateNode GetNodeOf(StateInfo stateInfo) { for (int i = 0; i < _nodes.Count; i++) { var current = _nodes[i]; if (PlainStateMachineBuilderHelper.AreEquals(current.StateId, stateInfo.StateId)) { return(current); } } return(null); }