UI/ScoreboardRow.razor
@using Sandbox;
@using Sandbox.UI;
@inherits Panel
@namespace Sandbox
<root>
<div class="player-info">
<img src="@Player.AvatarUrl" alt="@Player.DisplayName avatar" class="avatar" />
<span class="name">@Player.DisplayName</span>
@if (Player.IsVR)
{
<span class="vr-tag">VR</span>
}
</div>
<div class="stats">
<span class="stat">K: @Player.Kills</span>
<span class="stat">D: @Player.Deaths</span>
<span class="stat">Ping: @GetPing(Player)</span>
</div>
</root>
@code
{
[Property] public PlayerSession Player { get; set; }
private int GetPing(PlayerSession Player)
{
var connection = Connection.All.FirstOrDefault(c => c.Id == Player.Network.OwnerId);
return connection?.Ping.CeilToInt() ?? -1;
}
/// <summary>
/// the hash determines if the system should be rebuilt. If it changes, it will be rebuilt
/// </summary>
protected override int BuildHash() => System.HashCode.Combine( Player.AvatarUrl, Player.DisplayName, Player.Kills, Player.Deaths, Player.IsVR );
}