Пример #1
0
    public bool IsDurationActive(Duration duration)
    {
        Type TheStateClass = duration.GetNeededState();

        AgencyState TheState = GetStateOfType(TheStateClass);

        if (TheState == null)
        {
            return(false);
        }
        else
        {
            return(TheState.Active);
        }
    }
Пример #2
0
    private void AddState(Type stateType)
    {
        // We will only add a new instance of this state type if no such instance already exists.
        Boolean StateAlreadyExists = false;

        foreach (AgencyState state in States)
        {
            if (state.GetType() == stateType)
            {
                StateAlreadyExists = true;
                break;
            }
        }

        if (!StateAlreadyExists)
        {
            AgencyState state = (AgencyState)Activator.CreateInstance(stateType);
            States.Add(state);
            AddChild(state);
        }
    }
Пример #3
0
    private void ManageDurationFromState(AgencyState state)
    {
        if (Halted)
        {
            return;
        }

        Type DurationType = state.GetDurationClass();

        if (DurationType != null)
        {
            if (state.Active)
            {
                StartDuration(DurationType);
            }
            else
            {
                StopDuration(DurationType);
            }
        }
    }