private void ProcessorModeChanged() { switch (ProcessorMode) { case ProcessorModes.READY: if (SafeHouse.Config.StartOnArchive) { shared.VolumeMgr.SwitchTo(Archive); } else { shared.VolumeMgr.SwitchTo(HardDisk); } firstUpdate = true; // handle booting the cpu on the next FixedUpdate if (shared.Interpreter != null) { shared.Interpreter.SetInputLock(false); } if (shared.Window != null) { shared.Window.IsPowered = true; } foreach (var w in shared.ManagedWindows) { w.IsPowered = true; } break; case ProcessorModes.OFF: case ProcessorModes.STARVED: if (shared.Cpu != null) { shared.Cpu.BreakExecution(true); } if (shared.Interpreter != null) { shared.Interpreter.SetInputLock(true); } if (shared.Window != null) { shared.Window.IsPowered = false; } if (shared.SoundMaker != null) { shared.SoundMaker.StopAllVoices(); } foreach (var w in shared.ManagedWindows) { w.IsPowered = false; } kOSVesselModule vesselModule = kOSVesselModule.GetInstance(shared.Vessel); if (!vesselModule.AnyProcessorReady()) { vesselModule.OnAllProcessorsStarved(); } break; } }
public void TurnOffSasMessage(kOSVesselModule requestor) { vesselsAskingForSasMsg.Remove(requestor); }
public void TurnOnSasMessage(kOSVesselModule requestor) { vesselsAskingForSasMsg.Add(requestor); }