Beispiel #1
0
        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);
                }
            }
        }
Beispiel #2
0
        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)");
                }
            }
        }