using Content.Client.Eui; using Content.Client.GameTicking.Managers; using Content.Shared.CrewManifest; using Content.Shared.Eui; using JetBrains.Annotations; namespace Content.Client.CrewManifest; [UsedImplicitly] public sealed class CrewManifestEui : BaseEui { private readonly ClientGameTicker _gameTicker; private readonly CrewManifestUi _window; public CrewManifestEui() { _gameTicker = IoCManager.Resolve().GetEntitySystem(); _window = new(); _window.OnClose += () => { SendMessage(new CrewManifestEuiClosed()); }; } public override void Opened() { base.Opened(); _window.OpenCentered(); } public override void Closed() { base.Closed(); _window.Close(); } public override void HandleState(EuiStateBase state) { base.HandleState(state); if (state is not CrewManifestEuiState cast) { return; } _window.Populate(cast.StationName, cast.Entries); } }