From 7ba765dac23eb5231efdd2d210115de9a8bd218f Mon Sep 17 00:00:00 2001 From: Nils277 Date: Wed, 11 May 2022 21:36:25 +0200 Subject: [PATCH] 1.3.6 --- Changelog.md | 8 +++ Changelog.txt | 5 ++ .../Plugins/KerbetrotterTools.dll | Bin 128000 -> 128000 bytes .../FelineUtilityRover.version | 2 +- .../Patches/SimpleRepaint.cfg | 11 ++++ .../Hitch/ModuleKerbetrotterHitch.cs | 1 - .../HoverEngine/ModuleKerbetrotterEngine.cs | 1 - .../ModuleKerbetrotterEngineAnimation.cs | 2 - .../ModuleKerbetrotterNuclearStorage.cs | 3 - .../ModuleKerbetrotterConstrainedLookAt.cs | 2 +- .../ModuleKerbetrotterInternalSwitch.cs | 3 +- .../Visual/ModuleKerbetrotterTextureShift.cs | 39 +++++++++-- .../Properties/AssemblyInfo.cs | 6 +- .../Switching/Dialog/SwitcherDialog.cs | 1 - .../Setups/KerbetrotterResourceSetup.cs | 18 +++--- .../ModuleKerbetrotterConverterSwitch.cs | 1 - .../ModuleKerbetrotterResourceSwitch.cs | 61 ++++++++++++++---- .../Switcher/ModuleKerbetrotterSwitch.cs | 4 +- 18 files changed, 122 insertions(+), 46 deletions(-) create mode 100644 For Release/GameData/KerbetrotterLtd/FelineUtilityRover/Patches/SimpleRepaint.cfg diff --git a/Changelog.md b/Changelog.md index 6436d0f..a4c226f 100644 --- a/Changelog.md +++ b/Changelog.md @@ -1,3 +1,11 @@ +# v1.3.6 *-Spaaaaaace-* +*[Released 11.MAY.2022]* + +**Bug Fixes:** + +* Fixed incorrect volume of parts with switchable resources +* Fixed incompatibility issues with Simple Repaint + # v1.3.4 *-Over the shoulder boulder holder-* *[Released 28.APRIL.2022]* diff --git a/Changelog.txt b/Changelog.txt index 5666a61..718e5b1 100644 --- a/Changelog.txt +++ b/Changelog.txt @@ -1,3 +1,8 @@ +v1.3.6 [Released 11.MAY.2022] ~Spaaaaaace~ + Bug Fixes: + - Fixed incorrect volume of parts with switchable resources + - Fixed incompatibility issues with Simple Repaint +------------------------------------------------------- v1.3.4 [Released 28.APRIL.2022] ~Over the shoulder boulder holder~ Update: - Recompile for KSP 1.12.3 diff --git a/For Release/GameData/KerbetrotterLtd/000_KerbetrotterTools/Plugins/KerbetrotterTools.dll b/For Release/GameData/KerbetrotterLtd/000_KerbetrotterTools/Plugins/KerbetrotterTools.dll index 5e1938cedb7146af0356da8b631b342e200ae57e..2639302a1e5612a9bb105c5e2382fe415c463638 100644 GIT binary patch delta 32844 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 S-vbZxXS!jzo$&+XH%0&yBSrQA delta 32492 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 Q&+unj13Z}h1LHSF0DXF(n*aa+ diff --git a/For Release/GameData/KerbetrotterLtd/FelineUtilityRover/FelineUtilityRover.version b/For Release/GameData/KerbetrotterLtd/FelineUtilityRover/FelineUtilityRover.version index 89ec735..6bc41c9 100644 --- a/For Release/GameData/KerbetrotterLtd/FelineUtilityRover/FelineUtilityRover.version +++ b/For Release/GameData/KerbetrotterLtd/FelineUtilityRover/FelineUtilityRover.version @@ -12,7 +12,7 @@ "VERSION": { "MAJOR": 1, "MINOR": 3, - "PATCH": 4 + "PATCH": 6 }, "KSP_VERSION": { diff --git a/For Release/GameData/KerbetrotterLtd/FelineUtilityRover/Patches/SimpleRepaint.cfg b/For Release/GameData/KerbetrotterLtd/FelineUtilityRover/Patches/SimpleRepaint.cfg new file mode 100644 index 0000000..ab9dba5 --- /dev/null +++ b/For Release/GameData/KerbetrotterLtd/FelineUtilityRover/Patches/SimpleRepaint.cfg @@ -0,0 +1,11 @@ +//Ignore parts that cause problems in combination with Simple Repaint + +@PART[*]:HAS[@MODULE[ModuleKerbetrotterResourceSwitch]]:BEFORE[zzz_SimpleRepaint] +{ + %SR_Ignore = true +} + +@PART[*]:HAS[@MODULE[ModuleKerbetrotterTextureShift]]:BEFORE[zzz_SimpleRepaint] +{ + %SR_Ignore = true +} \ No newline at end of file diff --git a/Sources/Plugin/KerbetrotterTools/Hitch/ModuleKerbetrotterHitch.cs b/Sources/Plugin/KerbetrotterTools/Hitch/ModuleKerbetrotterHitch.cs index 7fce998..742e7e8 100644 --- a/Sources/Plugin/KerbetrotterTools/Hitch/ModuleKerbetrotterHitch.cs +++ b/Sources/Plugin/KerbetrotterTools/Hitch/ModuleKerbetrotterHitch.cs @@ -485,7 +485,6 @@ public void FixedUpdate() if ((joint == null) && (hasParent) && (isValidAttachment) && !isInitializing) { - Debug.Log("[KERBETROTTER] FixedUpdate: Creating Joint"); InitJoint(); UpdateUI(); } diff --git a/Sources/Plugin/KerbetrotterTools/HoverEngine/ModuleKerbetrotterEngine.cs b/Sources/Plugin/KerbetrotterTools/HoverEngine/ModuleKerbetrotterEngine.cs index 61380e5..77e337c 100644 --- a/Sources/Plugin/KerbetrotterTools/HoverEngine/ModuleKerbetrotterEngine.cs +++ b/Sources/Plugin/KerbetrotterTools/HoverEngine/ModuleKerbetrotterEngine.cs @@ -683,7 +683,6 @@ public void setDefaultProfile() /// The hover height public void setHoverHeight(float height) { - //Debug.Log("[HOVER] Height Set: " + height + " Enabled: " + hoverEnabled); if (hoverEnabled) { hoverHeight = height; diff --git a/Sources/Plugin/KerbetrotterTools/HoverEngine/ModuleKerbetrotterEngineAnimation.cs b/Sources/Plugin/KerbetrotterTools/HoverEngine/ModuleKerbetrotterEngineAnimation.cs index 522e13f..7971c81 100644 --- a/Sources/Plugin/KerbetrotterTools/HoverEngine/ModuleKerbetrotterEngineAnimation.cs +++ b/Sources/Plugin/KerbetrotterTools/HoverEngine/ModuleKerbetrotterEngineAnimation.cs @@ -113,12 +113,10 @@ public override void OnStart(StartState state) if ((part.Modules[i] is ModuleEngines) && (((ModuleEngines)part.Modules[i]).engineID == engineName)) { engine = (ModuleEngines)part.Modules[i]; - //Debug.Log("[ENGINE ANIMATION] Found ModuleEngines"); } if (part.Modules[i] is ModuleKerbetrotterEngine) { kEngine = (ModuleKerbetrotterEngine)part.Modules[i]; - //Debug.Log("[ENGINE ANIMATION] Found ModuleKerbetrotterEngine"); break; } } diff --git a/Sources/Plugin/KerbetrotterTools/Misc/Gameplay/ModuleKerbetrotterNuclearStorage.cs b/Sources/Plugin/KerbetrotterTools/Misc/Gameplay/ModuleKerbetrotterNuclearStorage.cs index aa0653f..a54daf8 100644 --- a/Sources/Plugin/KerbetrotterTools/Misc/Gameplay/ModuleKerbetrotterNuclearStorage.cs +++ b/Sources/Plugin/KerbetrotterTools/Misc/Gameplay/ModuleKerbetrotterNuclearStorage.cs @@ -517,7 +517,6 @@ private bool checkCrew(int level) { return true; } - //Debug.Log("[KPBS] Title:" + crew[i].experienceTrait.Title + " Desc:" + crew[i].experienceTrait.Description + " Needed: " + neededSkill); } return false; } @@ -548,7 +547,6 @@ private void setTarget(Part target, bool isTarget) { if (isTarget) { - //Debug.Log("LYNX_NUCLEAR: Setting Target: " + target.name); target.highlightColor.r = transferColor.r; target.highlightColor.g = transferColor.g; target.highlightColor.b = transferColor.b; @@ -557,7 +555,6 @@ private void setTarget(Part target, bool isTarget) //set the default highlight color else { - //Debug.Log("LYNX_NUCLEAR: Resetting Target: " + target.name); target.highlightColor.r = defaultColor.r; target.highlightColor.g = defaultColor.g; target.highlightColor.b = defaultColor.b; diff --git a/Sources/Plugin/KerbetrotterTools/Misc/Visual/ModuleKerbetrotterConstrainedLookAt.cs b/Sources/Plugin/KerbetrotterTools/Misc/Visual/ModuleKerbetrotterConstrainedLookAt.cs index a9d3c53..ee86fcf 100644 --- a/Sources/Plugin/KerbetrotterTools/Misc/Visual/ModuleKerbetrotterConstrainedLookAt.cs +++ b/Sources/Plugin/KerbetrotterTools/Misc/Visual/ModuleKerbetrotterConstrainedLookAt.cs @@ -18,7 +18,7 @@ namespace KerbetrotterTools { /// - /// This class allows to switch some of the models from parts + /// This module rotates a transform towards another. On of the axes will not rotate /// public class ModuleKerbetrotterConstrainedLookAt : PartModule { diff --git a/Sources/Plugin/KerbetrotterTools/Misc/Visual/ModuleKerbetrotterInternalSwitch.cs b/Sources/Plugin/KerbetrotterTools/Misc/Visual/ModuleKerbetrotterInternalSwitch.cs index 963c925..7d7e7e9 100644 --- a/Sources/Plugin/KerbetrotterTools/Misc/Visual/ModuleKerbetrotterInternalSwitch.cs +++ b/Sources/Plugin/KerbetrotterTools/Misc/Visual/ModuleKerbetrotterInternalSwitch.cs @@ -19,7 +19,7 @@ namespace KerbetrotterTools { /// - /// Module switching between to internal models (required for JSIATP) + /// Module switching between two internal models (required for JSIATP) /// class ModuleKerbetrotterInternalSwitch : PartModule, ModuleKerbetrotterMeshToggle.MeshToggleListener { @@ -166,7 +166,6 @@ private void refresh() List switcher = part.FindModulesImplementing(); if ((switcher.Count > 0) && (MeshToggleIndex < switcher.Count)) { - Debug.Log("[Kerbetrotter] Found switcher"); switcher[MeshToggleIndex].addListener(this); stateEnabled = switcher[MeshToggleIndex].transformsVisible; } diff --git a/Sources/Plugin/KerbetrotterTools/Misc/Visual/ModuleKerbetrotterTextureShift.cs b/Sources/Plugin/KerbetrotterTools/Misc/Visual/ModuleKerbetrotterTextureShift.cs index e66ee53..fd06928 100644 --- a/Sources/Plugin/KerbetrotterTools/Misc/Visual/ModuleKerbetrotterTextureShift.cs +++ b/Sources/Plugin/KerbetrotterTools/Misc/Visual/ModuleKerbetrotterTextureShift.cs @@ -1,5 +1,5 @@ /* - * Copyright (C) 2021 Nils277 (https://github.com/Nils277) + * Copyright (C) 2022 Nils277 (https://github.com/Nils277) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -49,7 +49,7 @@ class ModuleKerbetrotterTextureShift : PartModule, ISwitchListener #region-------------------------Private Members---------------------- //The material containing the texture - private List materials = new List(); + //private List materials = new List(); //The list of resources that can be switched in the tank private Dictionary setups = new Dictionary(); @@ -71,7 +71,7 @@ public override void OnStart(StartState state) loadSetups(part.partInfo.partConfig); - materials.Clear(); + /*materials.Clear(); string[] transforms = transformNames.Split(','); for (int i = 0; i < transforms.Length; i++) { @@ -80,7 +80,7 @@ public override void OnStart(StartState state) { materials.Add(textureTransform.GetComponent().material); } - } + }*/ //set the used setup if already set if (currentSetup != string.Empty) @@ -111,6 +111,8 @@ public void onSwitch(string setup) { currentSetup = setup; + List materials = getMaterials(); + if (materials.Count > 0) { if (setups.ContainsKey(setup)) @@ -128,6 +130,7 @@ public void onSwitch(string setup) materials[i].SetTextureOffset(textureName, new Vector2(0, 0)); } } + } } @@ -156,7 +159,7 @@ private void loadSetups(ConfigNode node) //load the name of the resource to load if (propConfig[i].HasValue("Offset")) { - + string[] offests = propConfig[i].GetValue("Offset").Split(','); try { @@ -178,6 +181,30 @@ private void loadSetups(ConfigNode node) } } + /// + /// Get the list of materials that are available + /// + /// + private List getMaterials() + { + List materials = new List(); + string[] transforms = transformNames.Split(','); + for (int i = 0; i < transforms.Length; i++) + { + Transform[] textureTransforms = part.FindModelTransforms(transforms[i].Trim()); + foreach (Transform textureTransform in textureTransforms) + { + Renderer[] renderers = textureTransform.GetComponents(); + foreach (Renderer renderer in renderers) + { + materials.Add(renderer.material); + } + } + } + + return materials; + } + #endregion } -} +} \ No newline at end of file diff --git a/Sources/Plugin/KerbetrotterTools/Properties/AssemblyInfo.cs b/Sources/Plugin/KerbetrotterTools/Properties/AssemblyInfo.cs index 684d84b..40e731b 100644 --- a/Sources/Plugin/KerbetrotterTools/Properties/AssemblyInfo.cs +++ b/Sources/Plugin/KerbetrotterTools/Properties/AssemblyInfo.cs @@ -46,6 +46,6 @@ // You can specify all the values or you can default the Build and Revision Numbers // by using the '*' as shown below: // [assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyVersion("1.3.4")] -[assembly: AssemblyFileVersion("1.3.4")] -[assembly: KSPAssembly("KerbetrotterTools", 1, 0x1340)] +[assembly: AssemblyVersion("1.3.6")] +[assembly: AssemblyFileVersion("1.3.6")] +[assembly: KSPAssembly("KerbetrotterTools", 1, 0x1360)] diff --git a/Sources/Plugin/KerbetrotterTools/Switching/Dialog/SwitcherDialog.cs b/Sources/Plugin/KerbetrotterTools/Switching/Dialog/SwitcherDialog.cs index c110475..b824684 100644 --- a/Sources/Plugin/KerbetrotterTools/Switching/Dialog/SwitcherDialog.cs +++ b/Sources/Plugin/KerbetrotterTools/Switching/Dialog/SwitcherDialog.cs @@ -253,7 +253,6 @@ private void apply() { if (mSwitch.needsPreparation()) { - Debug.Log("Switching Needs preparation"); SwitchingProgressDialog dialog = new SwitchingProgressDialog(mSwitch, mSelection); dialog.show(mSetups[mSwitch.SelectedSetup].guiName, mSetups[mSelection].guiName); } diff --git a/Sources/Plugin/KerbetrotterTools/Switching/Setups/KerbetrotterResourceSetup.cs b/Sources/Plugin/KerbetrotterTools/Switching/Setups/KerbetrotterResourceSetup.cs index 8cc91c7..df75880 100644 --- a/Sources/Plugin/KerbetrotterTools/Switching/Setups/KerbetrotterResourceSetup.cs +++ b/Sources/Plugin/KerbetrotterTools/Switching/Setups/KerbetrotterResourceSetup.cs @@ -1,4 +1,4 @@ - /* +/* * Copyright (C) 2021 Nils277 (https://github.com/Nils277) * * Licensed under the Apache License, Version 2.0 (the "License"); @@ -41,7 +41,7 @@ class KerbetrotterResourceSetup : BaseSetup /// Constructor of the resource setup /// /// The config not to contruct the setup from - public KerbetrotterResourceSetup(ConfigNode node) : base(node) + public KerbetrotterResourceSetup(ConfigNode node, float multiplier) : base(node) { if (node.HasValue("animateVenting")) { @@ -53,7 +53,7 @@ public KerbetrotterResourceSetup(ConfigNode node) : base(node) resources = new KerbetrotterResourceDefinition[resourceSubNodes.Length]; for (int i = 0; i < resources.Length; i++) { - KerbetrotterResourceDefinition resourceDefinition = new KerbetrotterResourceDefinition(resourceSubNodes[i]); + KerbetrotterResourceDefinition resourceDefinition = new KerbetrotterResourceDefinition(resourceSubNodes[i], multiplier); resources[i] = resourceDefinition; costModifier += resourceDefinition.cost; } @@ -91,7 +91,7 @@ public override string getInfo(bool name = true) { info.AppendLine(guiName); } - + foreach (KerbetrotterResourceDefinition resource in resources) { if (resource.maxAmount > 0) @@ -153,7 +153,7 @@ public class KerbetrotterResourceDefinition #region-------------------------Public Methods----------------------- - public KerbetrotterResourceDefinition(ConfigNode node) + public KerbetrotterResourceDefinition(ConfigNode node, double multiplier) { if (node.HasValue("name")) { @@ -165,18 +165,18 @@ public KerbetrotterResourceDefinition(ConfigNode node) { if (node.HasValue("amount")) { - amount = float.Parse(node.GetValue("amount"), CultureInfo.InvariantCulture.NumberFormat); + amount = float.Parse(node.GetValue("amount"), CultureInfo.InvariantCulture.NumberFormat) * multiplier; } if (node.HasValue("maxAmount")) { - maxAmount = float.Parse(node.GetValue("maxAmount"), CultureInfo.InvariantCulture.NumberFormat); + maxAmount = float.Parse(node.GetValue("maxAmount"), CultureInfo.InvariantCulture.NumberFormat) * multiplier; } if (node.HasValue("isTweakable")) { isTweakable = bool.Parse(node.GetValue("isTweakable")); } - cost = (float)(maxAmount * PartResourceLibrary.Instance.resourceDefinitions[name].unitCost); + cost = (float)(maxAmount * PartResourceLibrary.Instance.resourceDefinitions[name].unitCost) * (float)multiplier; } } @@ -184,4 +184,4 @@ public KerbetrotterResourceDefinition(ConfigNode node) } #endregion } -} +} \ No newline at end of file diff --git a/Sources/Plugin/KerbetrotterTools/Switching/Switcher/ModuleKerbetrotterConverterSwitch.cs b/Sources/Plugin/KerbetrotterTools/Switching/Switcher/ModuleKerbetrotterConverterSwitch.cs index a84420c..6862492 100644 --- a/Sources/Plugin/KerbetrotterTools/Switching/Switcher/ModuleKerbetrotterConverterSwitch.cs +++ b/Sources/Plugin/KerbetrotterTools/Switching/Switcher/ModuleKerbetrotterConverterSwitch.cs @@ -51,7 +51,6 @@ public override void OnStart(StartState state) if (selectedSetup == -1) { selectedSetup = 0; - //Debug.Log("[KerbetrotterTools:ConverterSwitch] Found default type: " + selectedConverter); activeSetup = setups[selectedSetup].ID; } diff --git a/Sources/Plugin/KerbetrotterTools/Switching/Switcher/ModuleKerbetrotterResourceSwitch.cs b/Sources/Plugin/KerbetrotterTools/Switching/Switcher/ModuleKerbetrotterResourceSwitch.cs index 9b3f5ce..200c9cb 100644 --- a/Sources/Plugin/KerbetrotterTools/Switching/Switcher/ModuleKerbetrotterResourceSwitch.cs +++ b/Sources/Plugin/KerbetrotterTools/Switching/Switcher/ModuleKerbetrotterResourceSwitch.cs @@ -134,7 +134,7 @@ public override void OnStart(StartState state) defaultResources = parseDefaultResources(part.partInfo.partConfig); initialized = true; } - + //when the setup if from the older version of this switch if (selectedResourceID != -1) { @@ -350,7 +350,7 @@ protected override void loadSetups(ConfigNode[] configSetups) { for (int i = 0; i < configSetups.Length; i++) { - KerbetrotterResourceSetup setup = new KerbetrotterResourceSetup(configSetups[i]); + KerbetrotterResourceSetup setup = new KerbetrotterResourceSetup(configSetups[i], resourceMultiplier); setups.Add(setup); } } @@ -454,13 +454,7 @@ private void switchResources(Part currentPart, int newResourceID) } double maxAmount = newResources[i].maxAmount; - double amount = 0.0; - - //when in editor, we will set the configured amount - if (HighLogic.LoadedSceneIsEditor) - { - amount = newResources[i].amount; - } + double amount = HighLogic.LoadedSceneIsEditor ? newResources[i].amount : 0.0f; //get the data of the default resource if available KerbetrotterDefaultResource defaultResource = getResourceFromList(newResources[i].name, defaultResources); @@ -470,7 +464,7 @@ private void switchResources(Part currentPart, int newResourceID) { PartResource partResource = currentPart.Resources[defaultResource.name]; - partResource.maxAmount += newResources[i].maxAmount; + partResource.maxAmount += maxAmount; partResource.amount += amount; partResource.isTweakable = newResources[i].isTweakable; } @@ -481,7 +475,7 @@ private void switchResources(Part currentPart, int newResourceID) PartResource resource = new PartResource(currentPart); resource.SetInfo(definition); - resource.maxAmount = newResources[i].maxAmount; + resource.maxAmount = maxAmount; resource.amount = amount; resource.flowState = true; resource.isTweakable = definition.isTweakable; @@ -589,6 +583,48 @@ private bool checkSaveConsistency() Debug.LogWarning("[KerbetrotterResourceSwitch] " + moduleName + ": Resources of part are inconsistent with switchable resource, resetting to default!"); return false; } + //validate the current setup + else + { + List resourcesToRemove = new List(); + KerbetrotterResourceSetup setup = setups[selectedSetup]; + int numResources = part.Resources.Count; + for (int i = 0; i < numResources; i++) + { + KerbetrotterDefaultResource defaultRes = getResourceFromList(setup.resources[i].name, defaultResources); + KerbetrotterResourceDefinition resDef = null; + foreach (KerbetrotterResourceDefinition def in setup.resources) + { + if (def.name == part.Resources[i].resourceName) + { + resDef = def; + break; + } + } + + //when the resource should not be in this part + if (resDef == null && defaultRes == null) + { + resourcesToRemove.Add(part.Resources[i]); + } + //else change its value to the default ones + else + { + double max = (defaultRes != null) ? defaultRes.maxAmount : 0; + max += (resDef != null) ? resDef.maxAmount : 0; + + part.Resources[i].maxAmount = max; + part.Resources[i].amount = UtilMath.Min(part.Resources[i].maxAmount, part.Resources[i].amount); + part.Resources[i].isTweakable = (resDef != null) ? resDef.isTweakable : defaultRes.isTweakable; + } + } + + //remove all resources that are scheduled to be removed + for (int i = 0; i < resourcesToRemove.Count; i++) + { + part.RemoveResource(resourcesToRemove[i]); + } + } } return true; } @@ -743,7 +779,7 @@ private float getMaxFilling() } else if (getResourceFromList(part.Resources[i].resourceName, defaultResources) == null) { - maxFilling = Math.Max(maxFilling, (float)(part.Resources[i].amount/ part.Resources[i].maxAmount)); + maxFilling = Math.Max(maxFilling, (float)(part.Resources[i].amount / part.Resources[i].maxAmount)); } } return maxFilling; @@ -789,7 +825,6 @@ public override string getWarning() public override bool needsPreparation() { - Debug.Log("Resoruce Switch needs Preparation"); return !(HighLogic.LoadedSceneIsEditor || isTankEmpty(part)); } diff --git a/Sources/Plugin/KerbetrotterTools/Switching/Switcher/ModuleKerbetrotterSwitch.cs b/Sources/Plugin/KerbetrotterTools/Switching/Switcher/ModuleKerbetrotterSwitch.cs index dfe263a..e94100b 100644 --- a/Sources/Plugin/KerbetrotterTools/Switching/Switcher/ModuleKerbetrotterSwitch.cs +++ b/Sources/Plugin/KerbetrotterTools/Switching/Switcher/ModuleKerbetrotterSwitch.cs @@ -494,7 +494,7 @@ private int getIndexFromID(string ID) /// protected virtual void loadSwitchSetups() { - if (mConfigLoaded) + if (mConfigLoaded || part.partInfo == null) { return; } @@ -521,7 +521,7 @@ protected virtual void loadSwitchSetups() } catch (Exception e) { - Debug.LogWarning("[KerbetrotterTools:Switch] Unable to read switch configuration"); + Debug.LogError("[KerbetrotterTools:Switch] Unable to load switch configuration: " + e.Message); } }