public static void LoadConfigs() { config = KSP.IO.PluginConfiguration.CreateForType <FARDebugOptions>(); config.load(); FARDebugValues.displayForces = Convert.ToBoolean(config.GetValue("displayForces", "false")); FARDebugValues.displayCoefficients = Convert.ToBoolean(config.GetValue("displayCoefficients", "false")); FARDebugValues.displayShielding = Convert.ToBoolean(config.GetValue("displayShielding", "false")); FARDebugValues.useSplinesForSupersonicMath = Convert.ToBoolean(config.GetValue("useSplinesForSupersonicMath", "true")); FARDebugValues.allowStructuralFailures = Convert.ToBoolean(config.GetValue("allowStructuralFailures", "true")); FARAeroStress.LoadStressTemplates(); FARPartClassification.LoadClassificationTemplates(); FARAeroUtil.LoadAeroDataFromConfig(); }
public static void SaveConfigs() { config.SetValue("displayForces", FARDebugValues.displayForces.ToString()); config.SetValue("displayCoefficients", FARDebugValues.displayCoefficients.ToString()); config.SetValue("displayShielding", FARDebugValues.displayShielding.ToString()); config.SetValue("useSplinesForSupersonicMath", FARDebugValues.useSplinesForSupersonicMath.ToString()); config.SetValue("allowStructuralFailures", FARDebugValues.allowStructuralFailures.ToString()); FARAeroUtil.SaveCustomAeroDataToConfig(); FARPartClassification.SaveCustomClassificationTemplates(); FARAeroStress.SaveCustomStressTemplates(); config.save(); }
public static void LoadConfigs() { config = KSP.IO.PluginConfiguration.CreateForType <FAREditorGUI>(); config.load(); FARControlSys.windowPos = config.GetValue("FlightWindowPos", new Rect(100, 100, 150, 100)); FARControlSys.AutopilotWinPos = config.GetValue("AutopilotWinPos", new Rect()); FARControlSys.HelpWindowPos = config.GetValue("HelpWindowPos", new Rect()); FARControlSys.FlightDataPos = config.GetValue("FlightDataPos", new Rect()); FARControlSys.FlightDataHelpPos = config.GetValue("FlightDataHelpPos", new Rect()); FARControlSys.AirSpeedPos = config.GetValue("AirSpeedPos", new Rect()); FARControlSys.AirSpeedHelpPos = config.GetValue("AirSpeedHelpPos", new Rect()); FARControlSys.AeroForceTintingPos = config.GetValue("AeroForceTintingPos", new Rect()); //FARControlSys.minimize = config.GetValue<bool>("FlightGUIBool", false); FARControlSys.k_wingleveler_str = config.GetValue("k_wingleveler", "0.05"); FARControlSys.k_wingleveler = Convert.ToDouble(FARControlSys.k_wingleveler_str); FARControlSys.kd_wingleveler_str = config.GetValue("kd_wingleveler", "0.002"); FARControlSys.kd_wingleveler = Convert.ToDouble(FARControlSys.kd_wingleveler_str); FARControlSys.k_yawdamper_str = config.GetValue("k_yawdamper", "0.1"); FARControlSys.k_yawdamper = Convert.ToDouble(FARControlSys.k_yawdamper_str); FARControlSys.k_pitchdamper_str = config.GetValue("k_pitchdamper", "0.25"); FARControlSys.k_pitchdamper = Convert.ToDouble(FARControlSys.k_pitchdamper_str); FARControlSys.k2_pitchdamper_str = config.GetValue("k2_pitchdamper", "0.06"); FARControlSys.k2_pitchdamper = Convert.ToDouble(FARControlSys.k2_pitchdamper_str); FARControlSys.scaleVelocity_str = config.GetValue("scaleVelocity", "150"); FARControlSys.scaleVelocity = Convert.ToDouble(FARControlSys.scaleVelocity_str); FARControlSys.alt_str = config.GetValue("alt", "0"); FARControlSys.alt = Convert.ToDouble(FARControlSys.alt_str); FARControlSys.upperLim_str = config.GetValue("upperLim", "25"); FARControlSys.upperLim = Convert.ToDouble(FARControlSys.upperLim_str); FARControlSys.lowerLim_str = config.GetValue("lowerLim", "-25"); FARControlSys.lowerLim = Convert.ToDouble(FARControlSys.lowerLim_str); FARControlSys.k_limiter_str = config.GetValue("k_limiter", "0.25"); FARControlSys.k_limiter = Convert.ToDouble(FARControlSys.k_limiter_str); FARControlSys.unitMode = (FARControlSys.SurfaceVelUnit)config.GetValue("unitMode", 0); FARControlSys.velMode = (FARControlSys.SurfaceVelMode)config.GetValue("velMode", 0); FARDebugValues.displayForces = Convert.ToBoolean(config.GetValue("displayForces", "false")); FARDebugValues.displayCoefficients = Convert.ToBoolean(config.GetValue("displayCoefficients", "false")); FARDebugValues.displayShielding = Convert.ToBoolean(config.GetValue("displayShielding", "false")); FARDebugValues.useSplinesForSupersonicMath = Convert.ToBoolean(config.GetValue("useSplinesForSupersonicMath", "true")); FARDebugValues.allowStructuralFailures = Convert.ToBoolean(config.GetValue("allowStructuralFailures", "true")); FARAeroStress.LoadStressTemplates(); FARPartClassification.LoadClassificationTemplates(); FARAeroUtil.LoadAeroDataFromConfig(); }
public static void LoadConfigs() { config = KSP.IO.PluginConfiguration.CreateForType <FAREditorGUI>(); config.load(); FARDebugValues.displayForces = Convert.ToBoolean(config.GetValue("displayForces", "false")); FARDebugValues.displayCoefficients = Convert.ToBoolean(config.GetValue("displayCoefficients", "false")); FARDebugValues.displayShielding = Convert.ToBoolean(config.GetValue("displayShielding", "false")); FAREditorGUI.windowPos = config.GetValue("windowPos", new Rect()); //FAREditorGUI.minimize = config.GetValue("EditorGUIBool", true); if (FAREditorGUI.windowPos.y < 75) { FAREditorGUI.windowPos.y = 75; } FARPartClassification.LoadClassificationTemplates(); FARAeroUtil.LoadAeroDataFromConfig(); }
public static void SaveConfigs() { config.SetValue("displayForces", FARDebugValues.displayForces.ToString()); config.SetValue("displayCoefficients", FARDebugValues.displayCoefficients.ToString()); config.SetValue("displayShielding", FARDebugValues.displayShielding.ToString()); config.SetValue("useSplinesForSupersonicMath", FARDebugValues.useSplinesForSupersonicMath.ToString()); config.SetValue("allowStructuralFailures", FARDebugValues.allowStructuralFailures.ToString()); config.SetValue("useBlizzyToolbar", FARDebugValues.useBlizzyToolbar.ToString()); FARDebugValues.useBlizzyToolbar &= ToolbarManager.ToolbarAvailable; FARAeroUtil.SaveCustomAeroDataToConfig(); FARPartClassification.SaveCustomClassificationTemplates(); FARAeroStress.SaveCustomStressTemplates(); FARActionGroupConfiguration.SaveConfigruration(); FAREditorGUI.SaveCustomColors(); config.save(); }
public static void LoadConfigs() { config = KSP.IO.PluginConfiguration.CreateForType <FARDebugOptions>(); config.load(); FARDebugValues.displayForces = Convert.ToBoolean(config.GetValue("displayForces", "false")); FARDebugValues.displayCoefficients = Convert.ToBoolean(config.GetValue("displayCoefficients", "false")); FARDebugValues.displayShielding = Convert.ToBoolean(config.GetValue("displayShielding", "false")); FARDebugValues.useSplinesForSupersonicMath = Convert.ToBoolean(config.GetValue("useSplinesForSupersonicMath", "true")); FARDebugValues.allowStructuralFailures = Convert.ToBoolean(config.GetValue("allowStructuralFailures", "true")); FARDebugValues.useBlizzyToolbar = Convert.ToBoolean(config.GetValue("useBlizzyToolbar", "false")); FARAeroStress.LoadStressTemplates(); FARPartClassification.LoadClassificationTemplates(); FARAeroUtil.LoadAeroDataFromConfig(); FARActionGroupConfiguration.LoadConfiguration(); FAREditorGUI.LoadColors(); ReColorTexture(ref FAREditorGUI.clColor, ref cLTexture); ReColorTexture(ref FAREditorGUI.cdColor, ref cDTexture); ReColorTexture(ref FAREditorGUI.cmColor, ref cMTexture); ReColorTexture(ref FAREditorGUI.l_DColor, ref l_DTexture); }
private bool FindPartsWithoutFARModel(List <Part> editorShip) { bool returnValue = false; for (int i = 0; i < editorShip.Count; i++) { Part p = editorShip[i]; if (p == null) { continue; } if (p != null && FARAeroUtil.IsNonphysical(p) && p.physicalSignificance != Part.PhysicalSignificance.NONE) { MonoBehaviour.print(p + ": FAR correcting physical significance to fix CoM in editor"); p.physicalSignificance = Part.PhysicalSignificance.NONE; } string title = p.partInfo.title.ToLowerInvariant(); if (p.Modules.Contains("FARBasicDragModel")) { List <PartModule> modulesToRemove = new List <PartModule>(); for (int j = 0; j < p.Modules.Count; j++) { PartModule m = p.Modules[j]; if (!(m is FARBasicDragModel)) { continue; } FARBasicDragModel d = m as FARBasicDragModel; if (d.CdCurve == null || d.ClPotentialCurve == null || d.ClViscousCurve == null || d.CmCurve == null) { modulesToRemove.Add(m); } } if (modulesToRemove.Count > 0) { for (int j = 0; j < modulesToRemove.Count; j++) { PartModule m = modulesToRemove[j]; p.RemoveModule(m); Debug.Log("Removing Incomplete FAR Drag Module"); } if (p.Modules.Contains("FARPayloadFairingModule")) { p.RemoveModule(p.Modules["FARPayloadFairingModule"]); } if (p.Modules.Contains("FARCargoBayModule")) { p.RemoveModule(p.Modules["FARCargoBayModule"]); } if (p.Modules.Contains("FARControlSys")) { p.RemoveModule(p.Modules["FARControlSys"]); } } } if (p is StrutConnector || p is FuelLine || p is ControlSurface || p is Winglet || FARPartClassification.ExemptPartFromGettingDragModel(p, title)) { continue; } FARPartModule q = p.GetComponent <FARPartModule>(); if (q != null && !(q is FARControlSys)) { continue; } bool updatedModules = false; if (FARPartClassification.PartIsCargoBay(p, title)) { if (!p.Modules.Contains("FARCargoBayModule")) { p.AddModule("FARCargoBayModule"); p.Modules["FARCargoBayModule"].OnStart(PartModule.StartState.Editor); FARAeroUtil.AddBasicDragModuleWithoutDragPropertySetup(p); p.Modules["FARBasicDragModel"].OnStart(PartModule.StartState.Editor); updatedModules = true; } } if (!updatedModules) { if (FARPartClassification.PartIsPayloadFairing(p, title)) { if (!p.Modules.Contains("FARPayloadFairingModule")) { p.AddModule("FARPayloadFairingModule"); p.Modules["FARPayloadFairingModule"].OnStart(PartModule.StartState.Editor); FARAeroUtil.AddBasicDragModuleWithoutDragPropertySetup(p); p.Modules["FARBasicDragModel"].OnStart(PartModule.StartState.Editor); updatedModules = true; } } if (!updatedModules && !p.Modules.Contains("FARBasicDragModel")) { FARAeroUtil.AddBasicDragModuleWithoutDragPropertySetup(p); p.Modules["FARBasicDragModel"].OnStart(PartModule.StartState.Editor); updatedModules = true; } } returnValue |= updatedModules; FARPartModule b = p.GetComponent <FARPartModule>(); if (b != null) { b.VesselPartList = editorShip; //This prevents every single part in the ship running this due to VesselPartsList not being initialized } } for (int i = 0; i < editorShip.Count; i++) { Part p = editorShip[i]; FARBasicDragModel d = p.GetComponent <FARBasicDragModel>(); if (d != null) { d.UpdatePropertiesWithShapeChange(); } } return(returnValue); }
private void FindPartsWithoutFARModel(Vessel v) { for (int i = 0; i < v.Parts.Count; i++) { Part p = v.Parts[i]; if (p == null) { continue; } string title = p.partInfo.title.ToLowerInvariant(); if (p.Modules.Contains("FARBasicDragModel")) { List <PartModule> modulesToRemove = new List <PartModule>(); for (int j = 0; j < p.Modules.Count; j++) { PartModule m = p.Modules[j]; if (!(m is FARBasicDragModel)) { continue; } FARBasicDragModel d = m as FARBasicDragModel; if (d.CdCurve == null || d.ClPotentialCurve == null || d.ClViscousCurve == null || d.CmCurve == null) { modulesToRemove.Add(m); } } if (modulesToRemove.Count > 0) { for (int j = 0; j < modulesToRemove.Count; j++) { PartModule m = modulesToRemove[j]; p.RemoveModule(m); Debug.Log("Removing Incomplete FAR Drag Module"); } if (p.Modules.Contains("FARPayloadFairingModule")) { p.RemoveModule(p.Modules["FARPayloadFairingModule"]); } if (p.Modules.Contains("FARCargoBayModule")) { p.RemoveModule(p.Modules["FARCargoBayModule"]); } if (p.Modules.Contains("FARControlSys")) { p.RemoveModule(p.Modules["FARControlSys"]); } } } if (p is StrutConnector || p is FuelLine || p is ControlSurface || p is Winglet || FARPartClassification.ExemptPartFromGettingDragModel(p, title)) { continue; } if (p.Modules.Contains("ModuleCommand") && !p.Modules.Contains("FARControlSys")) { p.AddModule("FARControlSys"); PartModule m = p.Modules["FARControlSys"]; m.OnStart(PartModule.StartState.Flying); //Debug.Log("Added FARControlSys to " + p.partInfo.title); } FARPartModule q = p.GetComponent <FARPartModule>(); if (q != null && !(q is FARControlSys)) { continue; } bool updatedModules = false; if (FARPartClassification.PartIsCargoBay(p, title)) { if (!p.Modules.Contains("FARCargoBayModule")) { p.AddModule("FARCargoBayModule"); PartModule m = p.Modules["FARCargoBayModule"]; m.OnStart(PartModule.StartState.Flying); FARAeroUtil.AddBasicDragModule(p); m = p.Modules["FARBasicDragModel"]; m.OnStart(PartModule.StartState.Flying); updatedModules = true; } } if (!updatedModules) { if (FARPartClassification.PartIsPayloadFairing(p, title)) { if (!p.Modules.Contains("FARPayloadFairingModule")) { p.AddModule("FARPayloadFairingModule"); PartModule m = p.Modules["FARPayloadFairingModule"]; m.OnStart(PartModule.StartState.Flying); FARAeroUtil.AddBasicDragModule(p); m = p.Modules["FARBasicDragModel"]; m.OnStart(PartModule.StartState.Flying); updatedModules = true; } } if (!updatedModules && !p.Modules.Contains("FARBasicDragModel")) { FARAeroUtil.AddBasicDragModule(p); PartModule m = p.Modules["FARBasicDragModel"]; m.OnStart(PartModule.StartState.Flying); updatedModules = true; } } //returnValue |= updatedModules; FARPartModule b = p.GetComponent <FARPartModule>(); if (b != null) { b.VesselPartList = p.vessel.Parts; //This prevents every single part in the ship running this due to VesselPartsList not being initialized } } UpdateFARPartModules(v); }
private void FindPartsWithoutFARModel(Vessel v) { List <FARPartModule> FARPartModules = new List <FARPartModule>(); bool returnValue = false; foreach (Part p in v.Parts) { if (p == null) { continue; } string title = p.partInfo.title.ToLowerInvariant(); if (p is StrutConnector || p is FuelLine || p is ControlSurface || p is Winglet || FARPartClassification.ExemptPartFromGettingDragModel(p, title)) { continue; } if (p.Modules.Contains("FARPartModule")) { foreach (PartModule m in p.Modules) { if (m is FARPartModule) { FARPartModules.Add(m as FARPartModule); } } continue; } if (p.Modules.Contains("ModuleCommand") && !p.Modules.Contains("FARControlSys")) { p.AddModule("FARControlSys"); PartModule m = p.Modules["FARControlSys"]; m.OnStart(PartModule.StartState.Flying); FARPartModules.Add(m as FARPartModule); } FARPartModule q = p.GetComponent <FARPartModule>(); if (q != null && !(q is FARControlSys)) { continue; } bool updatedModules = false; if (FARPartClassification.PartIsCargoBay(p, title)) { if (!p.Modules.Contains("FARCargoBayModule")) { p.AddModule("FARCargoBayModule"); PartModule m = p.Modules["FARCargoBayModule"]; m.OnStart(PartModule.StartState.Flying); FARPartModules.Add(m as FARPartModule); FARAeroUtil.AddBasicDragModule(p); m = p.Modules["FARBasicDragModel"]; m.OnStart(PartModule.StartState.Flying); FARPartModules.Add(m as FARPartModule); updatedModules = true; } } if (!updatedModules) { if (FARPartClassification.PartIsPayloadFairing(p, title)) { if (!p.Modules.Contains("FARPayloadFairingModule")) { p.AddModule("FARPayloadFairingModule"); PartModule m = p.Modules["FARPayloadFairingModule"]; m.OnStart(PartModule.StartState.Flying); FARPartModules.Add(m as FARPartModule); FARAeroUtil.AddBasicDragModule(p); m = p.Modules["FARBasicDragModel"]; m.OnStart(PartModule.StartState.Flying); FARPartModules.Add(m as FARPartModule); updatedModules = true; } } if (!updatedModules && !p.Modules.Contains("FARBasicDragModel")) { FARAeroUtil.AddBasicDragModule(p); PartModule m = p.Modules["FARBasicDragModel"]; m.OnStart(PartModule.StartState.Flying); FARPartModules.Add(m as FARPartModule); updatedModules = true; } } returnValue |= updatedModules; FARPartModule b = p.GetComponent <FARPartModule>(); if (b != null) { b.VesselPartList = v.Parts; //This prevents every single part in the ship running this due to VesselPartsList not being initialized } } /*if (vesselFARPartModules.ContainsKey(v)) * { * List<FARPartModule> Modules = vesselFARPartModules[v]; * FARPartModules = FARPartModules.Union(Modules).ToList(); * vesselFARPartModules[v] = FARPartModules; * } * else * vesselFARPartModules.Add(v, FARPartModules);*/ //return returnValue; }
private bool FindPartsWithoutFARModel(List <Part> editorShip) { bool returnValue = false; foreach (Part p in editorShip) { if (p == null) { continue; } if (p != null && FARAeroUtil.IsNonphysical(p) && p.physicalSignificance != Part.PhysicalSignificance.NONE) { MonoBehaviour.print(p + ": FAR correcting physical significance to fix CoM in editor"); p.physicalSignificance = Part.PhysicalSignificance.NONE; } string title = p.partInfo.title.ToLowerInvariant(); if (p is StrutConnector || p is FuelLine || p is ControlSurface || p is Winglet || FARPartClassification.ExemptPartFromGettingDragModel(p, title)) { continue; } FARPartModule q = p.GetComponent <FARPartModule>(); if (q != null && !(q is FARControlSys)) { continue; } bool updatedModules = false; if (FARPartClassification.PartIsCargoBay(p, title)) { if (!p.Modules.Contains("FARCargoBayModule")) { p.AddModule("FARCargoBayModule"); p.Modules["FARCargoBayModule"].OnStart(PartModule.StartState.Editor); FARAeroUtil.AddBasicDragModule(p); p.Modules["FARBasicDragModel"].OnStart(PartModule.StartState.Editor); updatedModules = true; } } if (!updatedModules) { if (FARPartClassification.PartIsPayloadFairing(p, title)) { if (!p.Modules.Contains("FARPayloadFairingModule")) { p.AddModule("FARPayloadFairingModule"); p.Modules["FARPayloadFairingModule"].OnStart(PartModule.StartState.Editor); FARAeroUtil.AddBasicDragModule(p); p.Modules["FARBasicDragModel"].OnStart(PartModule.StartState.Editor); updatedModules = true; } } if (!updatedModules && !p.Modules.Contains("FARBasicDragModel")) { FARAeroUtil.AddBasicDragModule(p); p.Modules["FARBasicDragModel"].OnStart(PartModule.StartState.Editor); updatedModules = true; } } returnValue |= updatedModules; FARPartModule b = p.GetComponent <FARPartModule>(); if (b != null) { b.VesselPartList = editorShip; //This prevents every single part in the ship running this due to VesselPartsList not being initialized } } return(returnValue); }