void GetAntennae() { List <IMyRadioAntenna> AntennaeBlocks = new List <IMyRadioAntenna>(); Term.GetBlocksOfType(AntennaeBlocks); Antennae = new HashSet <AntennaComms>(); foreach (var AntennaBlock in AntennaeBlocks) { AntennaComms Antenna = AntennaBlock.GetComponent <AntennaComms>(); if (Antenna != null) { Antennae.Add(Antenna); } } }
private void AntennaBlock_AppendingCustomInfo(IMyTerminalBlock Block, StringBuilder Info) { AntennaComms CommComp = Block.GetComponent <AntennaComms>(); if (CommComp == null) { return; } Info.AppendLine($"Relays ({CommComp.RelayedReceivers.Count}):"); foreach (var Relayed in CommComp.RelayedReceivers.OrderBy(x => Vector3D.DistanceSquared(AntennaBlock.GetPosition(), x.Broadcaster.Entity.GetPosition()))) { IMyTerminalBlock RelayBlock = Relayed.Entity as IMyTerminalBlock; IMyCharacter RelayedChar = Relayed.Entity as IMyCharacter; if (RelayBlock != null) { Info.AppendLine($"{RelayBlock.CustomName} on {RelayBlock.CubeGrid.DisplayName} ({Math.Round(Vector3D.Distance(Block.GetPosition(), RelayBlock.GetPosition()))}m)"); } else if (RelayedChar != null) { Info.AppendLine($"{RelayedChar.DisplayName} ({Math.Round(Vector3D.Distance(Block.GetPosition(), RelayBlock.GetPosition()))}m)"); } } }