Пример #1
0
 public State(FsmBase parent, string name, int positionY, string associatedValue, bool removable = true, float threshold = 1, float amplificationOfState = 1)
 {
     Parent                = parent;
     Name                  = name;
     PositionY             = positionY;
     AssociatedValue       = associatedValue;
     Removable             = removable;
     _threshold            = threshold;
     _amplificationOfState = amplificationOfState;
     _inputConnectionList  = new List <InputConnection>();
 }
Пример #2
0
 protected void BaseSendSignalTo(FsmBase fsm)
 {
     //Add triggers for all states to different states (no competetion between states from same fsm)
     foreach (State state in _stateList.Values)
     {
         State notConnectedState = fsm.FindStateWithoutOutputConnectionToFsm(this);
         if (notConnectedState == null)
         {
             notConnectedState = fsm.AddState("", state.AssociatedValue);
         }
         state.AddOutputConnection(notConnectedState, StateEventEnum.Remain, 1.0f, 0.0f);
     }
 }
Пример #3
0
        protected State FindStateWithoutOutputConnectionToFsm(FsmBase fsm)
        {
            State notConnectedState = null;

            foreach (State state in _stateList.Values)
            {
                if (!state.HasOutputConnectionToFsm(fsm))
                {
                    notConnectedState = state;
                    break;
                }
            }
            return(notConnectedState);
        }
Пример #4
0
 public void ReceiveSignalFrom(FsmBase fsm)
 {
     base.BaseReceiveSignalFrom(fsm);
 }
Пример #5
0
 public void SendSignalTo(FsmBase fsm)
 {
     base.BaseSendSignalTo(fsm);
 }
Пример #6
0
 protected FsmBase AddFsmBase(FsmBase fsm)
 {
     _fsmList.Add(fsm);
     return(fsm);
 }
Пример #7
0
 protected void BaseReceiveSignalFrom(FsmBase fsm)
 {
     fsm.BaseSendSignalTo(this);
 }
Пример #8
0
 public bool HasOutputConnectionToFsm(FsmBase fsm)
 {
     return(fsm.HasInputConnectionFromState(this));
 }