From ae4aeb01bdc6169ba49a924ea0a6e4f030cbf51b Mon Sep 17 00:00:00 2001 From: PhineasFreak Date: Tue, 1 May 2018 17:02:19 +0300 Subject: [PATCH] KSP 1.4.3 update * Move some UI code outside of the FixedUpdate () methods. * Fix the fairing side staging icon states. * Trim some useless code. --- .../Plugins/ProceduralFairings.dll | Bin 81920 -> 81920 bytes GameData/ProceduralFairings/changelog.txt | 8 ++ README.md | 2 +- Source/ProceduralFairings/FairingBase.cs | 64 +++++------ Source/ProceduralFairings/FairingDecoupler.cs | 18 ++- Source/ProceduralFairings/FairingSide.cs | 108 +++++++++--------- .../ProceduralFairings/NodeNumberTweaker.cs | 14 +-- Source/ProceduralFairings/ProcAdapter.cs | 21 +--- .../Properties/AssemblyInfo.cs | 6 +- Source/ProceduralFairings/Utilities.cs | 3 +- 10 files changed, 118 insertions(+), 126 deletions(-) diff --git a/GameData/ProceduralFairings/Plugins/ProceduralFairings.dll b/GameData/ProceduralFairings/Plugins/ProceduralFairings.dll index c8811f4bbf5d7968ff4d9c96adf6adaa3a7ed6ae..5cb935216ea28347bc133d2ca2d784aedcbcddd4 100644 GIT binary patch literal 81920 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

fhd?5svg)wdc+PNs?Y?`R^XfH|^)MEP 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 HCkFm6#GcXf literal 81920 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 CamWq; diff --git a/GameData/ProceduralFairings/changelog.txt b/GameData/ProceduralFairings/changelog.txt index 88cb647..de71080 100644 --- a/GameData/ProceduralFairings/changelog.txt +++ b/GameData/ProceduralFairings/changelog.txt @@ -1,3 +1,11 @@ +======================================================= +ProceduralFairings v1.4.3-1 for KSP 1.4.3 (2018-05-02) +======================================================= + + • Recompiled for KSP 1.4.3. + • Fixed the fairing decouplers breaking the MechJeb delta-v calculations. + • Fixed (possibly) the UI of the Fairing Bases and Interstage Adapters locking up and being unable to toggle between automatic and manual fairing side shape. + ======================================================= ProceduralFairings v1.4.1-1 for KSP 1.4.1 (2018-03-14) ======================================================= diff --git a/README.md b/README.md index cd4d541..a832fc7 100644 --- a/README.md +++ b/README.md @@ -45,4 +45,4 @@ You should have received a copy of the license along with this work. If not, vis [PF:contributor-rsparkyc-link]: https://github.com/rsparkyc [PF:original-forum-link]: http://forum.kerbalspaceprogram.com/index.php?showtopic=36371 [PF:shield-license]: https://img.shields.io/badge/License-CC--BY%204.0-green.svg -[PF:shield-version]: https://img.shields.io/badge/KSP%20Version-1.4.1.2089-red.svg +[PF:shield-version]: https://img.shields.io/badge/KSP%20Version-1.4.3.2152-red.svg diff --git a/Source/ProceduralFairings/FairingBase.cs b/Source/ProceduralFairings/FairingBase.cs index b7aa4b4..d2effc4 100644 --- a/Source/ProceduralFairings/FairingBase.cs +++ b/Source/ProceduralFairings/FairingBase.cs @@ -59,8 +59,6 @@ public class ProceduralFairingBase : PartModule Part topBasePart; - float lastManualMaxSize, lastManualCylStart, lastManualCylEnd; - LineRenderer line; readonly List outline = new List(); @@ -109,6 +107,8 @@ public override void OnStart (StartState state) ShowHideInterstageNodes (); + recalcShape (); + updateDelay = 0.1f; needShapeUpdate = true; @@ -135,29 +135,45 @@ public override void OnStart (StartState state) } SetUIChangedCallBacks (); + + OnToggleAutoshapeUI (); } void SetUIChangedCallBacks () { - ((UI_Toggle) Fields["autoShape"].uiControlEditor).onFieldChanged += UIChanged; + ((UI_Toggle) Fields["autoShape"].uiControlEditor).onFieldChanged += OnChangeAutoshapeUI; - ((UI_FloatEdit) Fields["manualMaxSize"].uiControlEditor).onFieldChanged += UIChanged; - ((UI_FloatEdit) Fields["manualCylStart"].uiControlEditor).onFieldChanged += UIChanged; - ((UI_FloatEdit) Fields["manualCylEnd"].uiControlEditor).onFieldChanged += UIChanged; + ((UI_FloatEdit) Fields["manualMaxSize"].uiControlEditor).onFieldChanged += OnChangeShapeUI; + ((UI_FloatEdit) Fields["manualCylStart"].uiControlEditor).onFieldChanged += OnChangeShapeUI; + ((UI_FloatEdit) Fields["manualCylEnd"].uiControlEditor).onFieldChanged += OnChangeShapeUI; } - bool uiChanged_SomeFields = true; + void OnChangeAutoshapeUI (BaseField bf, object obj) + { + OnToggleAutoshapeUI (); + + needShapeUpdate = true; + } - void UIChanged (BaseField bf, object obj) + void OnToggleAutoshapeUI () { - uiChanged_SomeFields = true; + Fields["manualMaxSize"].guiActiveEditor = !autoShape; + Fields["manualCylStart"].guiActiveEditor = !autoShape; + Fields["manualCylEnd"].guiActiveEditor = !autoShape; + + PFUtils.refreshPartWindow (); } - void onEditorVesselModified (ShipConstruct ship) + void OnChangeShapeUI (BaseField bf, object obj) { needShapeUpdate = true; + } + void onEditorVesselModified (ShipConstruct ship) + { ShowHideInterstageNodes (); + + needShapeUpdate = true; } public void ShowHideInterstageNodes () @@ -286,7 +302,7 @@ IEnumerator createAutoStruts (List shieldedParts) } } - public void onShieldingDisabled(List shieldedParts) + public void onShieldingDisabled (List shieldedParts) { removeJoints (); } @@ -427,27 +443,6 @@ public void Update () { if (HighLogic.LoadedSceneIsEditor) { - if (uiChanged_SomeFields) - { - uiChanged_SomeFields = false; - - needShapeUpdate |= (!lastManualMaxSize.Equals (manualMaxSize) - || !lastManualCylStart.Equals (manualCylStart) - || !lastManualCylEnd.Equals (manualCylEnd)); - - lastManualMaxSize = manualMaxSize; - lastManualCylStart = manualCylStart; - lastManualCylEnd = manualCylEnd; - - bool old = Fields["manualMaxSize"].guiActiveEditor; - - Fields["manualMaxSize"].guiActiveEditor = !autoShape; - Fields["manualCylStart"].guiActiveEditor = !autoShape; - Fields["manualCylEnd"].guiActiveEditor = !autoShape; - - PFUtils.refreshPartWindow (); - } - if (updateDelay > 0) { updateDelay -= Time.deltaTime; @@ -457,10 +452,9 @@ public void Update () if (needShapeUpdate) { needShapeUpdate = false; + updateDelay = 0.1f; recalcShape (); - - updateDelay = 0.5f; } } } @@ -652,7 +646,7 @@ AttachNode HasNodeComponent (AttachNode [] nodes) return null; } - void recalcShape () + public void recalcShape () { var scan = scanPayload (); diff --git a/Source/ProceduralFairings/FairingDecoupler.cs b/Source/ProceduralFairings/FairingDecoupler.cs index da4b4eb..422f48c 100644 --- a/Source/ProceduralFairings/FairingDecoupler.cs +++ b/Source/ProceduralFairings/FairingDecoupler.cs @@ -21,6 +21,8 @@ public class ProceduralFairingDecoupler : PartModule bool didForce; + bool decouplerStagingSet = true; + [KSPField] public string ejectSoundUrl = "Squad/Sounds/sound_decoupler_fire"; public FXGroup ejectFx; @@ -37,7 +39,7 @@ public class ProceduralFairingDecoupler : PartModule public float torqueAmount = 0.01f; [KSPField (isPersistant = true, guiActiveEditor = true, guiName = "Fairing Decoupler")] - [UI_Toggle (disabledText = "Off", enabledText = "On")] + [UI_Toggle (disabledText = "Off", enabledText = "On", affectSymCounterparts = UI_Scene.All)] public bool fairingStaged = true; [KSPAction ("Jettison Fairing", actionGroup = KSPActionGroup.None)] @@ -48,6 +50,20 @@ public void ActionJettison (KSPActionParam param) public void FixedUpdate () { + // More hacky-hacky: for some reason the staging icons cannot be updated correctly + // via the OnStart () method but require an additional update here. This snippet + // sets the staging icon states one more time after transitioning a scene. + + if (HighLogic.LoadedSceneIsFlight || HighLogic.LoadedSceneIsEditor) + { + if (decouplerStagingSet) + { + OnSetStagingIcons (); + + decouplerStagingSet = false; + } + } + if (decoupled) { if (part.parent) diff --git a/Source/ProceduralFairings/FairingSide.cs b/Source/ProceduralFairings/FairingSide.cs index 512562f..564ed47 100644 --- a/Source/ProceduralFairings/FairingSide.cs +++ b/Source/ProceduralFairings/FairingSide.cs @@ -40,8 +40,6 @@ public class ProceduralFairingSide : PartModule, IPartCostModifier, IPartMassMod public float totalMass; - public bool updateUICheck = true; - [KSPField (isPersistant = true)] public int numSegs = 12; [KSPField (isPersistant = true)] public int numSideParts = 2; [KSPField (isPersistant = true)] public float baseRad; @@ -191,6 +189,8 @@ public override void OnStart (StartState state) // Set up the GUI update callbacks. OnUpdateFairingSideUI (); + + OnToggleFairingShapeUI (); } public override void OnLoad (ConfigNode cfg) @@ -205,30 +205,30 @@ public override void OnLoad (ConfigNode cfg) void OnUpdateFairingSideUI () { - ((UI_Toggle) Fields["baseAutoShape"].uiControlEditor).onFieldChanged += OnUpdateUI; - ((UI_Toggle) Fields["noseAutoShape"].uiControlEditor).onFieldChanged += OnUpdateUI; - - ((UI_FloatEdit) Fields["baseCurveStartX"].uiControlEditor).onFieldChanged += OnUpdateUI; - ((UI_FloatEdit) Fields["baseCurveStartY"].uiControlEditor).onFieldChanged += OnUpdateUI; - ((UI_FloatEdit) Fields["baseCurveEndX"].uiControlEditor).onFieldChanged += OnUpdateUI; - ((UI_FloatEdit) Fields["baseCurveEndY"].uiControlEditor).onFieldChanged += OnUpdateUI; - - ((UI_FloatEdit) Fields["noseCurveStartX"].uiControlEditor).onFieldChanged += OnUpdateUI; - ((UI_FloatEdit) Fields["noseCurveStartY"].uiControlEditor).onFieldChanged += OnUpdateUI; - ((UI_FloatEdit) Fields["noseCurveEndX"].uiControlEditor).onFieldChanged += OnUpdateUI; - ((UI_FloatEdit) Fields["noseCurveEndY"].uiControlEditor).onFieldChanged += OnUpdateUI; - ((UI_FloatEdit) Fields["noseHeightRatio"].uiControlEditor).onFieldChanged += OnUpdateUI; - - ((UI_FloatRange) Fields["baseConeSegments"].uiControlEditor).onFieldChanged += OnUpdateUI; - ((UI_FloatRange) Fields["noseConeSegments"].uiControlEditor).onFieldChanged += OnUpdateUI; - ((UI_FloatRange) Fields["density"].uiControlEditor).onFieldChanged += OnUpdateUI; + ((UI_Toggle) Fields["baseAutoShape"].uiControlEditor).onFieldChanged += OnChangeShapeUI; + ((UI_Toggle) Fields["noseAutoShape"].uiControlEditor).onFieldChanged += OnChangeShapeUI; + + ((UI_FloatEdit) Fields["baseCurveStartX"].uiControlEditor).onFieldChanged += OnChangeShapeUI; + ((UI_FloatEdit) Fields["baseCurveStartY"].uiControlEditor).onFieldChanged += OnChangeShapeUI; + ((UI_FloatEdit) Fields["baseCurveEndX"].uiControlEditor).onFieldChanged += OnChangeShapeUI; + ((UI_FloatEdit) Fields["baseCurveEndY"].uiControlEditor).onFieldChanged += OnChangeShapeUI; + + ((UI_FloatEdit) Fields["noseCurveStartX"].uiControlEditor).onFieldChanged += OnChangeShapeUI; + ((UI_FloatEdit) Fields["noseCurveStartY"].uiControlEditor).onFieldChanged += OnChangeShapeUI; + ((UI_FloatEdit) Fields["noseCurveEndX"].uiControlEditor).onFieldChanged += OnChangeShapeUI; + ((UI_FloatEdit) Fields["noseCurveEndY"].uiControlEditor).onFieldChanged += OnChangeShapeUI; + ((UI_FloatEdit) Fields["noseHeightRatio"].uiControlEditor).onFieldChanged += OnChangeShapeUI; + + ((UI_FloatRange) Fields["baseConeSegments"].uiControlEditor).onFieldChanged += OnChangeShapeUI; + ((UI_FloatRange) Fields["noseConeSegments"].uiControlEditor).onFieldChanged += OnChangeShapeUI; + ((UI_FloatRange) Fields["density"].uiControlEditor).onFieldChanged += OnChangeShapeUI; } - void OnUpdateUI (BaseField bf, object obj) + void OnChangeShapeUI (BaseField bf, object obj) { // Set the default values of the fairing side base parameters if the auto-shape is enabled. - if (baseAutoShape.Equals (true)) + if (baseAutoShape) { baseCurveStartX = defaultBaseCurveStartX; baseCurveStartY = defaultBaseCurveStartY; @@ -239,7 +239,7 @@ void OnUpdateUI (BaseField bf, object obj) // Set the default values of the fairing side nose parameters if the auto-shape is enabled. - if (noseAutoShape.Equals (true)) + if (noseAutoShape) { noseCurveStartX = defaultNoseCurveStartX; noseCurveStartY = defaultNoseCurveStartY; @@ -249,7 +249,36 @@ void OnUpdateUI (BaseField bf, object obj) noseHeightRatio = defaultNoseHeightRatio; } - updateUICheck = true; + // Set the state of the advanced fairing side base and nose options. + + OnToggleFairingShapeUI (); + + // Update the fairing shape. + + var fairingSide = part.GetComponent(); + + if (fairingSide != null) + { + // Rebuild the fairing mesh. + + fairingSide.needShapeUpdate = true; + } + } + + void OnToggleFairingShapeUI () + { + Fields["baseCurveStartX"].guiActiveEditor = !baseAutoShape; + Fields["baseCurveStartY"].guiActiveEditor = !baseAutoShape; + Fields["baseCurveEndX"].guiActiveEditor = !baseAutoShape; + Fields["baseCurveEndY"].guiActiveEditor = !baseAutoShape; + Fields["baseConeSegments"].guiActiveEditor = !baseAutoShape; + + Fields["noseCurveStartX"].guiActiveEditor = !noseAutoShape; + Fields["noseCurveStartY"].guiActiveEditor = !noseAutoShape; + Fields["noseCurveEndX"].guiActiveEditor = !noseAutoShape; + Fields["noseCurveEndY"].guiActiveEditor = !noseAutoShape; + Fields["noseHeightRatio"].guiActiveEditor = !noseAutoShape; + Fields["noseConeSegments"].guiActiveEditor = !noseAutoShape; } public void updateNodeSize () @@ -290,39 +319,6 @@ public void FixedUpdate () massDisplay = PFUtils.formatMass (totalMass * (nsym + 1)) + " (all " + (nsym + 1) + ")"; costDisplay = PFUtils.formatCost ((part.partInfo.cost + GetModuleCost (part.partInfo.cost, ModifierStagingSituation.CURRENT)) * (nsym + 1)) + " (all " + (nsym + 1) + ")"; } - - // Check for GUI changes and update the fairing shape if applicable. - - if (updateUICheck.Equals (true)) - { - // Set the state of the advanced fairing base and nose options. - - Fields["baseCurveStartX"].guiActiveEditor = !baseAutoShape; - Fields["baseCurveStartY"].guiActiveEditor = !baseAutoShape; - Fields["baseCurveEndX"].guiActiveEditor = !baseAutoShape; - Fields["baseCurveEndY"].guiActiveEditor = !baseAutoShape; - Fields["baseConeSegments"].guiActiveEditor = !baseAutoShape; - - Fields["noseCurveStartX"].guiActiveEditor = !noseAutoShape; - Fields["noseCurveStartY"].guiActiveEditor = !noseAutoShape; - Fields["noseCurveEndX"].guiActiveEditor = !noseAutoShape; - Fields["noseCurveEndY"].guiActiveEditor = !noseAutoShape; - Fields["noseHeightRatio"].guiActiveEditor = !noseAutoShape; - Fields["noseConeSegments"].guiActiveEditor = !noseAutoShape; - - var fairingSide = part.GetComponent(); - - if (fairingSide) - { - // Rebuild the fairing mesh. - - fairingSide.needShapeUpdate = true; - - // Tag as done. - - updateUICheck = false; - } - } } } diff --git a/Source/ProceduralFairings/NodeNumberTweaker.cs b/Source/ProceduralFairings/NodeNumberTweaker.cs index e94fc63..f7f34e7 100644 --- a/Source/ProceduralFairings/NodeNumberTweaker.cs +++ b/Source/ProceduralFairings/NodeNumberTweaker.cs @@ -84,11 +84,12 @@ public void Update () continue; } - // Fix for ghost node when inserting a new pf base in VAB. - // do not delete unused nodes, move them away instead - // be careful to check references to maximum number of nodes - // mentioned elsewhere retrieved from 'Findattachnodes("connect")'! - // Slightly hacky, but works... + // Fix for ghost node when inserting a new PF base in + // the editor scene: do not delete unused nodes, move + // them away instead. Be careful to check references + // of the maximum number of nodes, mentioned elsewhere + // and retrieved via 'Findattachnodes("connect")'! + // Slightly hacky, but it works... HideUnusedNode (node); @@ -102,7 +103,7 @@ public void Update () if (fbase) { fbase.needShapeUpdate = true; - fbase.updateDelay = 0; + fbase.updateDelay = 0.5f; } } } @@ -344,5 +345,4 @@ void updateNodePositions () } } } - } diff --git a/Source/ProceduralFairings/ProcAdapter.cs b/Source/ProceduralFairings/ProcAdapter.cs index bad1755..7570ac6 100644 --- a/Source/ProceduralFairings/ProcAdapter.cs +++ b/Source/ProceduralFairings/ProcAdapter.cs @@ -486,7 +486,7 @@ public override void updateShape () PFUtils.updateAttachedPartPos (node, part); } - node = internodes[i + 1]; + node = internodes [i + 1]; node.position.y = baseHeight; node.size = sideNodeSize; @@ -511,7 +511,6 @@ public override void updateShape () { fbase.baseSize = br * 2; fbase.sideThickness = sth; - fbase.needShapeUpdate = true; } @@ -655,17 +654,6 @@ public Part getBottomPart () AttachNode attachNode = part.FindAttachNode ("bottom"); return (attachNode == null) ? null : attachNode.attachedPart; - - /*if (attachNode != null) - { - part = attachNode.attachedPart; - } - else - { - part = null; - } - - return part;*/ } public bool CheckForFairingPresent() @@ -700,13 +688,6 @@ public Part getTopPart () var node = part.FindAttachNode (topNodeName); return (node == null) ? null : node.attachedPart; - - /*if (node == null) - { - return null; - } - - return node.attachedPart;*/ } public override void OnLoad (ConfigNode cfg) diff --git a/Source/ProceduralFairings/Properties/AssemblyInfo.cs b/Source/ProceduralFairings/Properties/AssemblyInfo.cs index 5f64b8a..cd422ae 100644 --- a/Source/ProceduralFairings/Properties/AssemblyInfo.cs +++ b/Source/ProceduralFairings/Properties/AssemblyInfo.cs @@ -9,8 +9,6 @@ [assembly: AssemblyCopyright ("Copyright © 2016 - 2018, e-dog, rsparkyc")] [assembly: AssemblyConfiguration ("Release")] [assembly: AssemblyProduct ("ProceduralFairings")] -[assembly: AssemblyTrademark ("")] -[assembly: AssemblyCulture ("")] // Hide the specified assembly from any COM components. @@ -27,8 +25,8 @@ // • Build Number // • Revision -[assembly: AssemblyVersion ("1.4.2.2110")] -[assembly: AssemblyFileVersion ("1.4.2.1")] +[assembly: AssemblyVersion ("1.4.3.2152")] +[assembly: AssemblyFileVersion ("1.4.3.1")] // The KSPAssembly attribute can be used to ensure that the plugin assemblies // are loaded in the correct order. diff --git a/Source/ProceduralFairings/Utilities.cs b/Source/ProceduralFairings/Utilities.cs index 971dcfc..a426779 100644 --- a/Source/ProceduralFairings/Utilities.cs +++ b/Source/ProceduralFairings/Utilities.cs @@ -124,7 +124,7 @@ public static float getTechMaxValue (string cfgname, float defVal) } } - return (!hasValue) ? defVal : maxVal; + return (!hasValue) ? defVal : maxVal; } public static void setFieldRange (BaseField field, float minval, float maxval) @@ -425,5 +425,4 @@ void OnGUI () } } } - }