using Content.Server.EUI; using Content.Shared.CrewManifest; using Content.Shared.Eui; namespace Content.Server.CrewManifest; public sealed class CrewManifestEui : BaseEui { private readonly CrewManifestSystem _crewManifest; /// /// Station this EUI instance is currently tracking. /// private readonly EntityUid _station; /// /// Current owner of this UI, if it has one. This is /// to ensure that if a BUI is closed, the EUIs related /// to the BUI are closed as well. /// public readonly EntityUid? Owner; public CrewManifestEui(EntityUid station, EntityUid? owner, CrewManifestSystem crewManifestSystem) { _station = station; Owner = owner; _crewManifest = crewManifestSystem; } public override CrewManifestEuiState GetNewState() { var (name, entries) = _crewManifest.GetCrewManifest(_station); return new(name, entries); } public override void Closed() { base.Closed(); _crewManifest.CloseEui(_station, Player, Owner); } }