using System; using System.Collections.Generic; using Robust.Shared.GameStates; using Robust.Shared.Network; using Robust.Shared.Players; namespace Robust.Client.Player { public interface IPlayerManager : Shared.Players.ISharedPlayerManager { new IEnumerable Sessions { get; } IReadOnlyDictionary SessionsDict { get; } LocalPlayer? LocalPlayer { get; } /// /// Invoked after LocalPlayer is changed /// event Action? LocalPlayerChanged; event EventHandler PlayerListUpdated; void Initialize(); void Startup(); void Shutdown(); void ApplyPlayerStates(IReadOnlyCollection list); } public sealed class LocalPlayerChangedEventArgs : EventArgs { public readonly LocalPlayer? OldPlayer; public readonly LocalPlayer? NewPlayer; public LocalPlayerChangedEventArgs(LocalPlayer? oldPlayer, LocalPlayer? newPlayer) { OldPlayer = oldPlayer; NewPlayer = newPlayer; } } }