RemoteTech.NetworkRenderer.UpdateNetworkCones C# (CSharp) Méthode

UpdateNetworkCones() private méthode

private UpdateNetworkCones ( ) : void
Résultat void
        private void UpdateNetworkCones()
        {
            List<IAntenna> antennas = (ShowCone ? RTCore.Instance.Antennas.Where(
                                        ant => ant.Powered && ant.CanTarget && RTCore.Instance.Satellites[ant.Guid] != null
                                        && ant.Target != Guid.Empty)
                                     : Enumerable.Empty<IAntenna>()).ToList();
            int oldLength = mCones.Count;
            int newLength = antennas.Count;

            // Free any unused lines
            for (int i = newLength; i < oldLength; i++)
            {
                GameObject.Destroy(mCones[i]);
                mCones[i] = null;
            }
            mCones.RemoveRange(Math.Min(oldLength, newLength), Math.Max(oldLength - newLength, 0));
            mCones.AddRange(Enumerable.Repeat((NetworkCone) null, Math.Max(newLength - oldLength, 0)));

            for (int i = 0; i < newLength; i++)
            {
                var center = RTCore.Instance.Network.GetPositionFromGuid(antennas[i].Target);
                Debug.Assert(center != null,
                             "center != null",
                             String.Format("GetPositionFromGuid returned a null value for the target {0}",
                                           antennas[i].Target)
                             );

                if (!center.HasValue) continue;

                mCones[i] = mCones[i] ?? NetworkCone.Instantiate();
                mCones[i].Material = MapView.fetch.orbitLinesMaterial;
                mCones[i].LineWidth = 2.0f;
                mCones[i].Antenna = antennas[i];
                mCones[i].Color = Color.gray;
                mCones[i].Active = ShowCone;
                mCones[i].Center = center.Value;
            }
        }