UI/GameMenu/PlayerList/PlayerList.razor
@using Sandbox;
@using Sandbox.UI;
@using System;
@attribute [StyleSheet]
@namespace GuessIt
<root>
@if (true)
{
var players = Scene.GetAllComponents<Player>().OrderBy(x => -x.Score).ToList();
if (GameMenu.Instance?.CurrentlyDrawing is Player drawing)
{
<PlayerListEntry Player=@drawing Rank=@(players.IndexOf(drawing) + 1) />
}
for (int i = 0; i < players.Count; i++)
{
var player = players[i];
if (player.IsDrawing) continue;
<PlayerListEntry Player=@player Rank=@(i + 1) />
}
}
</root>
@code
{
protected override int BuildHash()
{
int val = 0;
val += HashCode.Combine(GameMenu.Instance?.CurrentlyDrawing);
foreach (var player in Scene.GetAllComponents<Player>())
{
val += HashCode.Combine(player.Network.OwnerId, player.Score);
}
return val;
}
}