public bool IsDurationActive(Duration duration) { Type TheStateClass = duration.GetNeededState(); AgencyState TheState = GetStateOfType(TheStateClass); if (TheState == null) { return(false); } else { return(TheState.Active); } }
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); } }
private void ManageDurationFromState(AgencyState state) { if (Halted) { return; } Type DurationType = state.GetDurationClass(); if (DurationType != null) { if (state.Active) { StartDuration(DurationType); } else { StopDuration(DurationType); } } }