From 099ba51d9c120c92c08d2cc15992d24b4b9f9910 Mon Sep 17 00:00:00 2001 From: siimav Date: Tue, 10 Sep 2024 02:25:50 +0300 Subject: [PATCH] Fix issues with VesselBuildValidator --- .../RP0/SpaceCenter/VesselBuildValidator.cs | 62 +++++++++---------- 1 file changed, 29 insertions(+), 33 deletions(-) diff --git a/Source/RP0/SpaceCenter/VesselBuildValidator.cs b/Source/RP0/SpaceCenter/VesselBuildValidator.cs index 7395fe9f18c..d3efcea5dad 100644 --- a/Source/RP0/SpaceCenter/VesselBuildValidator.cs +++ b/Source/RP0/SpaceCenter/VesselBuildValidator.cs @@ -55,56 +55,52 @@ public void ProcessVessel(VesselProject vp) private IEnumerator RunValidationRoutine(VesselProject vp) { - if (ProcessFacilityChecks(vp) != ValidationResult.Success) - { - _failureActions(); - yield break; - } - if (!KSPUtils.CurrentGameIsCareer()) - { - _successActions(vp); - yield break; - } + _validationResult = ProcessFacilityChecks(vp); - ProcessPartAvailability(vp); - while (_validationResult == ValidationResult.Undecided) - yield return null; - - _routine = null; - if (_validationResult != ValidationResult.Success) + if (_validationResult == ValidationResult.Success && + !KSPUtils.CurrentGameIsCareer()) { - _failureActions(); + _routine = null; + _successActions(vp); yield break; } - do + if (_validationResult == ValidationResult.Success) { - ProcessPartConfigs(vp); + ProcessPartAvailability(vp); while (_validationResult == ValidationResult.Undecided) yield return null; } - while (_validationResult == ValidationResult.Rerun); - _routine = null; - if (_validationResult != ValidationResult.Success) + if (_validationResult == ValidationResult.Success) { - _failureActions(); - yield break; + do + { + ProcessPartConfigs(vp); + while (_validationResult == ValidationResult.Undecided) + yield return null; + } + while (_validationResult == ValidationResult.Rerun); } - if (ProcessFundsChecks(vp) != ValidationResult.Success) + if (_validationResult == ValidationResult.Success) { - _failureActions(); - yield break; + _validationResult = ProcessFundsChecks(vp); } - ProcessUntooledParts(vp); - while (_validationResult == ValidationResult.Undecided) - yield return null; + if (_validationResult == ValidationResult.Success) + { + ProcessUntooledParts(vp); + while (_validationResult == ValidationResult.Undecided) + yield return null; + } - ProcessExcessEC(vp); - while (_validationResult == ValidationResult.Undecided) - yield return null; + if (_validationResult == ValidationResult.Success) + { + ProcessExcessEC(vp); + while (_validationResult == ValidationResult.Undecided) + yield return null; + } _routine = null; if (_validationResult != ValidationResult.Success)