protected virtual void InitializeStateMachineCore() { stateMachineCore = new StateMachineCore <IStateNodeService>(UpdateStateNodeStatus, false); stateNodeList.StateNodes.ForEach(node => stateMachineCore.RegisterStateNode(node, new StateNodeCore <IStateNodeService>(node, stateMachineCore))); var stateNode = stateNodeList.GetStateNode(stateNodeList.FirstState.GetType()); if (stateNode != null) { CurrentState = stateNode; PreviousState = stateNode; StartCoroutine(STMCore.StartStateMachine(stateNode)); } }
public virtual void UpdateState <NODE_TYPE>() where NODE_TYPE : IStateNodeService { var stateNode = stateNodeList.GetStateNode <NODE_TYPE>(); if (stateNode != null) { bool isSuccess = STMCore.TryMoveState(stateNode); if (isSuccess) { PreviousState = CurrentState; CurrentState = stateNode; } } }
public virtual void UpdateState(Type type) { var stateNode = stateNodeList.GetStateNode(type); if (stateNode != null) { bool isSuccess = STMCore.TryMoveState(stateNode); if (isSuccess) { PreviousState = CurrentState; CurrentState = stateNode; } } }
public virtual void ShutdownSTM() { STMCore.Shutdown(); }