Ejemplo n.º 1
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)");
                }
            }
        }