@namespace LuckerParty.UI
@inherits PanelComponent
@using System
@using System.Collections.Immutable
@implements NetworkManager.IClientEvent
This is the Lobby
@foreach ( var client in _clients )
{
@client.Name
}
@code
{
private ImmutableList _clients;
private NetworkManager _networkManager;
protected override void OnStart()
{
base.OnStart();
_networkManager = Scene.GetComponentInChildren();
UpdateClients();
}
void NetworkManager.IClientEvent.OnConnected( Client client )
{
UpdateClients();
}
void NetworkManager.IClientEvent.OnDisconnected( Client client )
{
UpdateClients();
}
private void UpdateClients()
{
_clients = _networkManager.Clients.Sort( ( clientA, clientB ) => DateTimeOffset.Compare( clientA.ConnectionTime, clientB.ConnectionTime ) );
}
///
/// the hash determines if the system should be rebuilt. If it changes, it will be rebuilt
///
protected override int BuildHash()
{
return HashCode.Combine( _clients );
}
}