public void ToggleIntegratedDecoupler() { integratedDecoupler++; if (integratedDecoupler > DecouplerType.EnabledStagingDisabled) { integratedDecoupler = DecouplerType.none; } SetAllStatus(integratedDecoupler); }
void SetAllStatus(DecouplerType decouplerType, bool inEditorModified = false, bool doSymmetry = true) { for (int i = 0; i < partsInSymmetry.Count; i++) { IntegratedDecoupler symIntegratedDecoupler = partsInSymmetry[i]; SetStatus(decouplerType, symIntegratedDecoupler); } Log.Info("SetStatus 1"); //if (!inEditorModified) GameEvents.onEditorShipModified.Fire(EditorLogic.fetch.ship); Log.Info("SetStatus 1"); }
/// <summary> /// Set the decoupler status /// </summary> /// <param name="status"></param> /// <param name="symIntegratedDecoupler"></param> void SetStatus(DecouplerType status, IntegratedDecoupler symIntegratedDecoupler) { Part counterpart = symIntegratedDecoupler.part; ModuleToggleCrossfeed symCrossfeedToggleModule = counterpart.FindModuleImplementing <ModuleToggleCrossfeed>(); symIntegratedDecoupler.integratedDecoupler = status; if (integratedDecoupler != DecouplerType.none) { enableDecoupler(symIntegratedDecoupler, symCrossfeedToggleModule); } else { disableDecoupler(symIntegratedDecoupler, symCrossfeedToggleModule); } SetEvents(status, symIntegratedDecoupler.decouplerModule, symCrossfeedToggleModule); }
void SetEvents(DecouplerType decouplerType, ModuleDecouple decouplerModule, ModuleToggleCrossfeed crossfeedToggleModule) { bool status = (decouplerType != DecouplerType.none); crossfeedToggleModule.Events["ToggleEvent"].guiActive = status; crossfeedToggleModule.Events["ToggleEvent"].active = status; crossfeedToggleModule.Actions["ToggleAction"].active = status; crossfeedToggleModule.Actions["EnableAction"].active = status; crossfeedToggleModule.Actions["DisableAction"].active = status; //crossfeedToggleModule.Actions["ToggleStaging"].active = false; #if false if (decouplerModule != null && (topNode != null || topNode01 != null || topNode02 != null)) { decouplerModule.part.UpdateStageability(true, true); } else { Log.Error("No ModuleDecouple to update"); } #endif }