Esempio n. 1
0
 //根据转换条件获取要跳到的下一个状态
 public StateEnum GetOutputState(TransitionEnum trans)
 {
     if (stateDic.ContainsKey(trans))
     {
         return(stateDic[trans]);
     }
     return(StateEnum.Null);
 }
Esempio n. 2
0
 public Part(string name, int typeid, string w_express, string h_express, TransitionEnum w_transition, TransitionEnum h_transition, TransitionEnum v_transition, int colorIndex)
 {
     Name              = name;
     Type              = typeid;
     this.w_express    = w_express;
     this.h_express    = h_express;
     this.w_transition = w_transition;
     this.h_transition = h_transition;
     this.v_transition = v_transition;
     ColorIndex        = colorIndex;
 }
Esempio n. 3
0
 public static TransitionDelegate GetTransitionDelegate(TransitionEnum a_TransitionEnum)
 {
     switch (a_TransitionEnum) {
         case TransitionEnum.LinearInOut:
             return (LinearInOut);
         case TransitionEnum.SmoothInOut:
             return (SmoothInOut);
         case TransitionEnum.LinearInSmoothOut:
             return (LinearInSmoothOut);
         case TransitionEnum.SmoothInLinearOut:
             return (SmoothInLinearOut);
         default:
             return (LinearInOut);
     }
 }
Esempio n. 4
0
        public void RemoveTransition(TransitionEnum trans)
        {
            if (trans == TransitionEnum.Null)
            {
                Debug.LogError("FSMState ERROR: NullTransition is not allowed");
                return;
            }

            if (stateDic.ContainsKey(trans))
            {
                stateDic.Remove(trans);
            }
            else
            {
                Debug.LogError("FSMState ERROR: Transition " + trans.ToString() + " passed to " + stateName.ToString() + " was not on the state's transition list");
            }
        }
        private Part ReadPartFromNode(XmlElement node)
        {
            string         name = node.Attributes.GetNamedItem("name").Value;
            int            tp   = int.Parse(node.Attributes.GetNamedItem("type").Value);
            string         w    = node.Attributes.GetNamedItem("w_express").Value;
            string         h    = node.Attributes.GetNamedItem("h_express").Value;
            string         v    = node.Attributes.GetNamedItem("v_transition").Value;
            TransitionEnum wt   = (TransitionEnum)Enum.Parse(typeof(TransitionEnum), node.Attributes.GetNamedItem("w_transition").Value);
            TransitionEnum ht   = (TransitionEnum)Enum.Parse(typeof(TransitionEnum), node.Attributes.GetNamedItem("h_transition").Value);
            TransitionEnum vt   = (TransitionEnum)Enum.Parse(typeof(TransitionEnum), node.Attributes.GetNamedItem("v_transition").Value);

            //node.SelectSingleNode()

            //Part res = new Part(name,tp,w,h,wt,ht,vt);

            ;

            throw new NotImplementedException();
        }
Esempio n. 6
0
        public void AddTransition(TransitionEnum trans, StateEnum stateName)
        {
            if (trans == TransitionEnum.Null)
            {
                Debug.LogError("FSMState ERROR: NullTransition is not allowed for a real transition");
                return;
            }

            if (stateName == StateEnum.Null)
            {
                Debug.LogError("FSMState ERROR: NullStateID is not allowed for a real ID");
                return;
            }

            if (stateDic.ContainsKey(trans))
            {
                Debug.LogError("FSMState ERROR: State " + this.stateName.ToString() + " already has transition " + trans.ToString() +
                               "Impossible to assign to another state");
                return;
            }

            stateDic.Add(trans, stateName);
        }
Esempio n. 7
0
        public void ChangeState(TransitionEnum trans)
        {
            if (trans == TransitionEnum.Null)
            {
                Debug.LogError("FSM ERROR: NullTransition is not allowed for a real transition");
                return;
            }

            StateEnum nextState = currentState.GetOutputState(trans);

            if (nextState == StateEnum.Null)
            {
                Debug.LogError("FSM ERROR: State " + currentStateEnum.ToString() + " does not have a target state " +
                               " for transition " + trans.ToString());
                return;
            }

            currentStateEnum = nextState;

            if (!stateDic.ContainsKey(nextState))
            {
                Debug.LogError("FSM ERROR: State " + currentStateEnum.ToString() + " does not have a target state " +
                               " for transition " + trans.ToString());
                return;
            }

            currentState.OnLeaveState();

            //Debug.LogError("上一个状态已经离开 " + currentState.StateName.ToString());

            currentState = stateDic[nextState];

            //Debug.LogError("下一个状态即将进入 " + currentState.StateName.ToString());

            currentState.OnEnterState();
        }
 public void StartTransition(TransitionEnum transition)
 {
     throw new NotImplementedException();
 }
 public void StartTransition(TransitionEnum transition)
 {
     m_SwitcherParser.StartTransition(transition);
 }
Esempio n. 10
0
		public void TransitionProc(TransitionEnum transition, Signal signal, StateData submachineState)
		{
	        if (m_StateMachineImpl == null)
	            return;
		
	
			switch (transition) 
			{
				case TransitionEnum.DriveDistance_ENUM_INITIAL_10__TO__FORWARDSTATE_5:
					m_StateMachineImpl.currentTransition.SetTransition((int)transition, submachineState, "DriveDistance_Initial_10__TO__ForwardState_5", "{349C5E01-7C43-4303-AB4B-888A0D4917F2},");
					Initial_10__TO__ForwardState_5(signal, submachineState); 
					break;
				case TransitionEnum.DriveDistance_ENUM_FORWARDSTATE__TO__STOPSTATE_6:
					m_StateMachineImpl.currentTransition.SetTransition((int)transition, submachineState, "DriveDistance_ForwardState__TO__StopState_6", "{8083DC99-F5F9-4020-8F9A-8B14BF7FC814},");
					ForwardState__TO__StopState_6(signal, submachineState); 
					break;
			}
	
			m_StateMachineImpl.currentTransition.SetTransition((int)TransitionEnum.NOTRANSITION, null, "", "");
		}