/// <summary> /// Allows enabling/disabling electric generators (and fuel cells) /// </summary> /// <param name="state"></param> public void ButtonEnableElectricGenerator(bool state) { if (vessel != null) { foreach (PartModule pm in ElectricGenerators(vessel)) { if (pm is ModuleGenerator) { ModuleGenerator gen = pm as ModuleGenerator; if (state) { gen.Activate(); } else { gen.Shutdown(); } } else if (pm is ModuleResourceConverter) { ModuleResourceConverter gen = pm as ModuleResourceConverter; if (state) { gen.StartResourceConverter(); } else { gen.StopResourceConverter(); } } } } }
protected virtual void updateExperimentState() { if (isGUIVisible) { //Check auto restart field. if (!rerunnable && Fields["autoRestartExperiment"].guiActive && HighLogic.LoadedSceneIsEditor || HighLogic.LoadedSceneIsFlight) { Fields["autoRestartExperiment"].guiActive = false; Fields["autoRestartExperiment"].guiActiveEditor = false; } } //If we're not in flight, then we're done. if (HighLogic.LoadedSceneIsFlight == false) { return; } //Base class actions and events are always disabled. Events["DeployExperiment"].active = false; Events["DeployExperimentExternal"].active = false; Actions["DeployAction"].active = false; //If the experiment isn't running then we're done. if (!isRunning && isGUIVisible) { //Check for reset if (isCompleted && !rerunnable && (resettable || resettableOnEVA) && !Events["ResetExperiment"].active && !Events["ResetExperimentExternal"].active && !Events["StartExperiment"].active) { Events["StartExperiment"].active = true; } return; } //If the experiment has been completed then stop the experiment from running. if (isCompleted) { StopExperiment(); if (isGUIVisible) { Events["ReviewDataEvent"].active = true; Events["TransferDataEvent"].active = true; if (!rerunnable) { Events["StartExperiment"].active = false; } } status = "Completed"; if (autoRestartExperiment) { ResetExperiment(); StartExperiment(); } else { ModuleResourceConverter converter = this.part.FindModuleImplementing <ModuleResourceConverter>(); if (converter != null && converter.IsActivated) { converter.StopResourceConverter(); } } return; } //Check for completion. We do this if the GUI is visible (we're not being managed by an experiment lab) if (isGUIVisible) { CheckCompletion(); } }