public override void OnUpdate() { base.OnUpdate(); if (vessel == null || PresetsHandler.current == null) { return; } SABenabled = PresetsHandler.current.allow_sab; if (SABenabled && SABbrakes == vessel.ActionGroups[KSPActionGroup.Brakes]) { SABenabled = false; } module = part.Modules.GetModules <ModuleAeroSurface>().First(); float temperature = (float)part.skinTemperature / module.uncasedTemp * 100f; if (SABenabled) { if (temperature >= PresetsHandler.current.sab_highT && SABbrakes != vessel.ActionGroups[KSPActionGroup.Brakes]) { SABstart = true; } else if (temperature < PresetsHandler.current.sab_lowT) { SABstart = false; } } SAB(); }
public void FixedUpdate() { if (HighLogic.LoadedScene != GameScenes.FLIGHT) { return; } AeroSurfaceModule = part.FindModuleImplementing <ModuleAeroSurface>(); if (null == AeroSurfaceModule) { return; } if (true == plusEnabled) { if (false == AeroSurfaceModule.deploy) { if (part.vessel.ctrlState.pitch > 0.01 || part.vessel.ctrlState.pitch < -0.01) { if (part.vessel.ctrlState.yaw > 0.01 || part.vessel.ctrlState.yaw < -0.01) { AeroSurfaceModule.deflectionLiftCoeff = deflectionLiftCoeff; } } else { AeroSurfaceModule.deflectionLiftCoeff = 0f; } } else { AeroSurfaceModule.deflectionLiftCoeff = deflectionLiftCoeff; } if (FlightGlobals.getStaticPressure(part.transform.position) < 0.0001f) { if (vacuumRange > 0.01f) { vacuumRange -= 0.05f; } else { vacuumRange = 0.01f; } } else { if (vacuumRange < 1.0f) { vacuumRange += 0.05f; } else { vacuumRange = 1.0f; } } AeroSurfaceModule.ctrlSurfaceRange = ctrlSurfaceRange * vacuumRange; } }
private float vacuumRange = 1.0f; // disables flight controls when in vacuum #endregion Fields #region Methods public void FixedUpdate() { if (HighLogic.LoadedScene != GameScenes.FLIGHT) { return; } AeroSurfaceModule = part.FindModuleImplementing<ModuleAeroSurface>(); if (null == AeroSurfaceModule) { return; } if (true == plusEnabled) { if (false == AeroSurfaceModule.deploy) { if (part.vessel.ctrlState.pitch > 0.01 || part.vessel.ctrlState.pitch < -0.01) { if (part.vessel.ctrlState.yaw > 0.01 || part.vessel.ctrlState.yaw < -0.01) { AeroSurfaceModule.deflectionLiftCoeff = deflectionLiftCoeff; } } else { AeroSurfaceModule.deflectionLiftCoeff = 0f; } } else { AeroSurfaceModule.deflectionLiftCoeff = deflectionLiftCoeff; } if (FlightGlobals.getStaticPressure(part.transform.position) < 0.0001f) { if (vacuumRange > 0.01f) { vacuumRange -= 0.05f; } else { vacuumRange = 0.01f; } } else { if (vacuumRange < 1.0f) { vacuumRange += 0.05f; } else { vacuumRange = 1.0f; } } AeroSurfaceModule.ctrlSurfaceRange = ctrlSurfaceRange * vacuumRange; } }
public override void OnStart(StartState state) { Debug.Log(moduleName + ".Start(): v01.06"); base.OnStart(state); AeroSurfaceModule = part.FindModuleImplementing <ModuleAeroSurface>(); if (null == AeroSurfaceModule) { Debug.LogWarning(moduleName + ".Start(): Did not find Aero Surface Module."); return; } SetupStockPlus(); }
public override void OnUpgrade(ConfigNode node, LoadContext loadContext, ConfigNode parentNode) { ConfigNode[] nodes = node.GetNodes("MODULE"); int num = nodes.Length; while (num-- > 0) { string value = nodes[num].GetValue("name"); if (value == "ModuleAeroSurface") { ModuleAeroSurface baseModule = GetBaseModule(node, loadContext); ConvertAeroAuthority(nodes[num], baseModule); ConvertAeroAuthorityAxisGroup(nodes[num]); } } }
//============================================================================================================================================ public void EngageAero() { //FAR Compatibility =) //Skip this if FAR isn't being used if (assemblyFARUsed == true) { foreach (Part EnabledPart in EnabledPartList) { if (EnabledPart.Modules.Contains ("FARControllableSurface")) { AeroFARModuleReference = EnabledPart.Modules ["FARControllableSurface"]; if (AeroFARModuleReference.Fields.GetValue ("isSpoiler").ToString() == "True") { RoboBrakes_AeroEnabledCount++; BaseActionList BAL = new BaseActionList (EnabledPart, AeroFARModuleReference); foreach (BaseAction BA in BAL) { if ((RoboBrakes_AUTOMATICBRAKE_ACTIVE == true && RoboBrakes_AEROAUTO == true) | (RoboBrakes_OVERRIDEBRAKE_ACTIVE == true && RoboBrakes_AEROOVERRIDE == true)) { if (BA.guiName == "Activate Spoiler") { KSPActionParam AP = new KSPActionParam (KSPActionGroup.None, KSPActionType.Activate); BA.Invoke (AP); } } else { if (BA.guiName == "Activate Spoiler") { KSPActionParam AP = new KSPActionParam (KSPActionGroup.None, KSPActionType.Deactivate); BA.Invoke (AP); } } } } } } } foreach (Part EnabledPart in EnabledPartList) { //--------------------------------------------------------------------------------------------------------------------- //Control Surface Module if (EnabledPart.Modules.Contains ("ModuleControlSurface")) { ModuleControlSurface MCS = new ModuleControlSurface (); MCS = EnabledPart.FindModuleImplementing<ModuleControlSurface> (); RoboBrakes_AeroEnabledCount++; BaseActionList BAL = new BaseActionList (EnabledPart, MCS); foreach (BaseAction BA in BAL) { if ((RoboBrakes_AUTOMATICBRAKE_ACTIVE == true && RoboBrakes_AEROAUTO == true) | (RoboBrakes_OVERRIDEBRAKE_ACTIVE == true && RoboBrakes_AEROOVERRIDE == true)) { if (BA.guiName == "Extend") { KSPActionParam AP = new KSPActionParam (KSPActionGroup.None, KSPActionType.Activate); BA.Invoke (AP); } } else { if (BA.guiName == "Retract") { KSPActionParam AP = new KSPActionParam (KSPActionGroup.None, KSPActionType.Activate); BA.Invoke (AP); } } } } //--------------------------------------------------------------------------------------------------------------------- //Module Aero Surface if (EnabledPart.Modules.Contains ("ModuleAeroSurface")) { ModuleAeroSurface MAS = new ModuleAeroSurface (); MAS = EnabledPart.FindModuleImplementing<ModuleAeroSurface> (); RoboBrakes_AeroEnabledCount++; BaseActionList BAL = new BaseActionList (EnabledPart, MAS); foreach (BaseAction BA in BAL) { if ((RoboBrakes_AUTOMATICBRAKE_ACTIVE == true && RoboBrakes_AEROAUTO == true) | (RoboBrakes_OVERRIDEBRAKE_ACTIVE == true && RoboBrakes_AEROOVERRIDE == true)) { if (BA.guiName == "Extend") { KSPActionParam AP = new KSPActionParam (KSPActionGroup.None, KSPActionType.Activate); BA.Invoke (AP); } } else { if (BA.guiName == "Retract") { KSPActionParam AP = new KSPActionParam (KSPActionGroup.None, KSPActionType.Activate); BA.Invoke (AP); } } } } } }
public override void OnStart(StartState state) { Debug.Log(moduleName + ".Start(): v01.06"); base.OnStart(state); AeroSurfaceModule = part.FindModuleImplementing<ModuleAeroSurface>(); if (null == AeroSurfaceModule) { Debug.LogWarning(moduleName + ".Start(): Did not find Aero Surface Module."); return; } SetupStockPlus(); }