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>(); }
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); } }
protected State FindStateWithoutOutputConnectionToFsm(FsmBase fsm) { State notConnectedState = null; foreach (State state in _stateList.Values) { if (!state.HasOutputConnectionToFsm(fsm)) { notConnectedState = state; break; } } return(notConnectedState); }
public void ReceiveSignalFrom(FsmBase fsm) { base.BaseReceiveSignalFrom(fsm); }
public void SendSignalTo(FsmBase fsm) { base.BaseSendSignalTo(fsm); }
protected FsmBase AddFsmBase(FsmBase fsm) { _fsmList.Add(fsm); return(fsm); }
protected void BaseReceiveSignalFrom(FsmBase fsm) { fsm.BaseSendSignalTo(this); }
public bool HasOutputConnectionToFsm(FsmBase fsm) { return(fsm.HasInputConnectionFromState(this)); }