/// <summary> /// Triggers the failure controlled by the failure module /// </summary> public override void DoFailure() { base.DoFailure(); if (engineStates == null) { engineStates = new Dictionary <int, CachedEngineState>(); } engineStates.Clear(); foreach (EngineHandler engine in engines) { int id = engine.engine.Module.GetInstanceID(); CachedEngineState engineState = new CachedEngineState(); engineState.allowShutdown = engine.engine.allowShutdown; engineState.numIgnitions = engine.engine.GetIgnitionCount(); engine.engine.Shutdown(); var numIgnitionsToRemove = 1; if (severity.ToLowerInvariant() == "major") { numIgnitionsToRemove = -1; // For some reason, need to disable GUI as well engine.engine.Events["Activate"].active = false; engine.engine.Events["Shutdown"].active = false; engine.engine.Events["Activate"].guiActive = false; engine.engine.Events["Shutdown"].guiActive = false; } engineStates.Add(id, engineState); engine.engine.RemoveIgnitions(numIgnitionsToRemove); } }
/// <summary> /// Triggers the failure controlled by the failure module /// </summary> public override void DoFailure() { base.DoFailure(); if (engineStates == null) engineStates = new Dictionary<int, CachedEngineState>(); engineStates.Clear(); foreach (EngineHandler engine in engines) { int id = engine.engine.Module.GetInstanceID(); CachedEngineState engineState = new CachedEngineState(); engineState.allowShutdown = engine.engine.allowShutdown; engine.engine.Shutdown(); engineStates.Add(id, engineState); } }
/// <summary> /// Triggers the failure controlled by the failure module /// </summary> public override void DoFailure() { base.DoFailure(); if (engineStates == null) { engineStates = new Dictionary <int, CachedEngineState>(); } engineStates.Clear(); foreach (EngineHandler engine in engines) { int id = engine.engine.Module.GetInstanceID(); CachedEngineState engineState = new CachedEngineState(); engineState.allowShutdown = engine.engine.allowShutdown; engine.engine.Shutdown(); engineStates.Add(id, engineState); } }