@using Sandbox; @using Sandbox.UI; @inherits PanelComponent @*
*@ @*
*@ @*
*@ @*
*@
@if (Dedugan.All is not null) { foreach (var ded in Dedugan.All) {
} }
@code { public static bool Visible => Input.Down("Score"); private NetworkManager _networkManager; private NetworkManager NetworkManager { get { if (_networkManager == null || !_networkManager.IsValid) { _networkManager = Scene.Directory.FindByName("Network Manager") .FirstOrDefault()? .GetComponent(); } return _networkManager; } } protected override void OnEnabled() { // Кэшируем NetworkManager при включении компонента _networkManager = Scene.Directory.FindByName("Network Manager") .FirstOrDefault()? .GetComponent(); } private string GetPlayerStatus(Connection conn) { var playerObj = Dedugan.GetByID( conn.Id ).GameObject; return playerObj?.IsValid == true ? "In Game" : "Connecting"; } private void OpenProfile(Connection connection) { Log.Info($"Opening profile: {connection.SteamId}"); Game.Overlay.ShowPlayer(connection.SteamId); } protected override int BuildHash() { if (!Visible || Dedugan.All == null) return -1; var hash = new System.HashCode(); hash.Add(Visible); foreach (var ded in Dedugan.All) { hash.Add(ded.Id); hash.Add(ded.Connection.Ping); hash.Add(ded.Name); } return hash.ToHashCode(); } }