diff --git a/src/kOS/Module/KOSNameTag.cs b/src/kOS/Module/KOSNameTag.cs index d24a9099d..37234074f 100644 --- a/src/kOS/Module/KOSNameTag.cs +++ b/src/kOS/Module/KOSNameTag.cs @@ -2,6 +2,7 @@ using kOS.Suffixed; using kOS.Safe.Utilities; using UnityEngine; +using System; namespace kOS.Module { @@ -61,6 +62,10 @@ public override void OnAwake() part.RemoveModule(pm); } } + + // make this module cheaper in update loops + isEnabled = false; + enabled = false; } public void TypingDone(string newValue) @@ -76,4 +81,39 @@ public void TypingCancel() typingWindow = null; } } + + // setting isEnabled to false prevents the nametag from showing up in the PAW...work around that. + [KSPAddon(KSPAddon.Startup.FlightAndEditor, false)] + class KOSNameTagActivationManager : MonoBehaviour + { + void Awake() + { + GameEvents.onPartActionUICreate.Add(OnPartActionUICreate); + GameEvents.onPartActionUIShown.Add(OnPartActionUIShown); + } + + void OnDestroy() + { + GameEvents.onPartActionUICreate.Remove(OnPartActionUICreate); + GameEvents.onPartActionUIShown.Remove(OnPartActionUIShown); + } + + private void OnPartActionUICreate(Part part) + { + var nameTagModule = part.FindModuleImplementing(); + if (nameTagModule != null) + { + nameTagModule.isEnabled = true; + } + } + + private void OnPartActionUIShown(UIPartActionWindow paw, Part part) + { + var nameTagModule = part.FindModuleImplementing(); + if (nameTagModule != null) + { + nameTagModule.isEnabled = false; + } + } + } } \ No newline at end of file