From 94f890b60d35781efe914beacd84bfdedea08416 Mon Sep 17 00:00:00 2001 From: siimav Date: Thu, 25 Jul 2024 17:15:39 +0300 Subject: [PATCH] Remove unnecessary UI updates --- Source/ProceduralFairings/FairingSide.cs | 8 +++-- .../ProceduralFairings/NodeNumberTweaker.cs | 36 ++++++++++++------- 2 files changed, 29 insertions(+), 15 deletions(-) diff --git a/Source/ProceduralFairings/FairingSide.cs b/Source/ProceduralFairings/FairingSide.cs index 910d2da..4960fe7 100644 --- a/Source/ProceduralFairings/FairingSide.cs +++ b/Source/ProceduralFairings/FairingSide.cs @@ -195,8 +195,6 @@ public override void OnLoad(ConfigNode node) ReadBaseCurveFromVec4(false); ReadNoseCurveFromVec4(false); } - - SetDensityField(); } public override void OnStart(StartState state) @@ -247,6 +245,8 @@ public override void OnStartFinished(StartState state) private void SetDensityField() { + if (!HighLogic.LoadedSceneIsEditor) return; + var floatRange = Fields[nameof(density)].uiControlEditor as UI_FloatRange; floatRange.minValue = minDensity; floatRange.maxValue = maxDensity; @@ -265,6 +265,8 @@ private void ApplyShapeOnStart() void SetUICallbacks() { + if (!HighLogic.LoadedSceneIsEditor) return; + Fields[nameof(usePreset)].uiControlEditor.onFieldChanged += OnUsePresetToggled; Fields[nameof(usePreset)].uiControlEditor.onSymmetryFieldChanged += OnUsePresetToggled; @@ -344,6 +346,8 @@ internal void ReadNoseCurveFromVec4(bool fromPrefab = false) void SetUIFieldVisibility() { + if (!HighLogic.LoadedSceneIsEditor) return; + Fields[nameof(shapePreset)].guiActiveEditor = AllPresets.Count > 0 && usePreset; Fields[nameof(baseCurveStartX)].guiActiveEditor = !usePreset; diff --git a/Source/ProceduralFairings/NodeNumberTweaker.cs b/Source/ProceduralFairings/NodeNumberTweaker.cs index 96378f8..3fcc82e 100644 --- a/Source/ProceduralFairings/NodeNumberTweaker.cs +++ b/Source/ProceduralFairings/NodeNumberTweaker.cs @@ -43,19 +43,7 @@ public override void OnStart(StartState state) { base.OnStart(state); - (Fields[nameof(radius)].uiControlEditor as UI_FloatEdit).incrementLarge = radiusStepLarge; - (Fields[nameof(radius)].uiControlEditor as UI_FloatEdit).incrementSmall = radiusStepSmall; - Fields[nameof(radius)].guiActiveEditor = shouldResizeNodes; - Fields[nameof(radius)].uiControlEditor.onFieldChanged += OnRadiusChanged; - Fields[nameof(radius)].uiControlEditor.onSymmetryFieldChanged += OnRadiusChanged; - - // Change the GUI text if there are no fairing attachment nodes. - if (part.FindAttachNodes("connect") == null) - Fields[nameof(uiNumNodes)].guiName = "Side Nodes"; - - (Fields[nameof(uiNumNodes)].uiControlEditor as UI_FloatRange).maxValue = maxNumber; - Fields[nameof(uiNumNodes)].uiControlEditor.onFieldChanged += OnNumNodesChanged; - Fields[nameof(uiNumNodes)].uiControlEditor.onSymmetryFieldChanged += OnNumNodesChanged; + SetupUI(); uiNumNodes = numNodes; numNodesBefore = numNodes; @@ -102,6 +90,28 @@ private System.Collections.IEnumerator EditorChangeDetector() } } + private void SetupUI() + { + // Change the GUI text if there are no fairing attachment nodes. + if (part.FindAttachNodes("connect") == null) + Fields[nameof(uiNumNodes)].guiName = "Side Nodes"; + + if (HighLogic.LoadedSceneIsEditor) + { + Fields[nameof(radius)].uiControlEditor.onFieldChanged += OnRadiusChanged; + Fields[nameof(radius)].uiControlEditor.onSymmetryFieldChanged += OnRadiusChanged; + + Fields[nameof(uiNumNodes)].uiControlEditor.onFieldChanged += OnNumNodesChanged; + Fields[nameof(uiNumNodes)].uiControlEditor.onSymmetryFieldChanged += OnNumNodesChanged; + + (Fields[nameof(radius)].uiControlEditor as UI_FloatEdit).incrementLarge = radiusStepLarge; + (Fields[nameof(radius)].uiControlEditor as UI_FloatEdit).incrementSmall = radiusStepSmall; + Fields[nameof(radius)].guiActiveEditor = shouldResizeNodes; + + (Fields[nameof(uiNumNodes)].uiControlEditor as UI_FloatRange).maxValue = maxNumber; + } + } + public void OnRadiusChanged(BaseField f, object obj) { UpdateNodePositions(true);