internal void GetAntennas() { _antennas.Clear(); try { // Added support for RemoteTech antennas foreach (Part pPart in SMAddon.vessel.Parts) { if (pPart.Modules.Contains("ModuleDataTransmitter") || pPart.Modules.Contains("ModuleRTAntenna")) { ModAntenna pAntenna = new ModAntenna(); pAntenna.SPart = pPart; foreach (PartModule pModule in pPart.Modules) { if (pModule.moduleName == "ModuleDataTransmitter" || pModule.moduleName == "ModuleRTAntenna") { pAntenna.XmitterModule = pModule; } if (pModule.moduleName == "ModuleAnimateGeneric" && (pModule.Events["Toggle"].guiName == "Extend" || pModule.Events["Toggle"].guiName == "Retract")) { pAntenna.AnimateModule = pModule; } } _antennas.Add(pAntenna); } } } catch (Exception ex) { Utilities.LogMessage(string.Format("Error in GetAntennas().\r\nError: {0}", ex.ToString()), "Error", true); } }
internal void GetAntennas() { _antennas.Clear(); try { // Added support for RemoteTech antennas List <Part> .Enumerator pParts = Vessel.Parts.GetEnumerator(); while (pParts.MoveNext()) { if (pParts.Current == null) { continue; } if (!pParts.Current.Modules.Contains("ModuleDataTransmitter") && !pParts.Current.Modules.Contains("ModuleRTAntenna")) { continue; } ModAntenna pAntenna = new ModAntenna { SPart = pParts.Current }; List <PartModule> .Enumerator pModules = pParts.Current.Modules.GetEnumerator(); while (pModules.MoveNext()) { if (pModules.Current == null) { continue; } PartModule pModule = (PartModule)pModules.Current; if (pModule is ModuleDataTransmitter || pModule.moduleName == "ModuleRTAntenna") { pAntenna.XmitterModule = pModule; } if (pModule is ModuleDeployableAntenna || pModule is ModuleAnimateGeneric && (pModule.Events["Toggle"].guiName == "Extend" || pModule.Events["Toggle"].guiName == "Retract")) { pAntenna.AnimateModule = pModule; } } pModules.Dispose(); if (pAntenna.AnimateModule != null) { _antennas.Add(pAntenna); } } pParts.Dispose(); } catch (Exception ex) { SmUtils.LogMessage($"Error in GetAntennas().\r\nError: {ex}", SmUtils.LogType.Error, true); } }