CrewManifestEui.cs 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. using Content.Server.EUI;
  2. using Content.Shared.CrewManifest;
  3. using Content.Shared.Eui;
  4. namespace Content.Server.CrewManifest;
  5. public sealed class CrewManifestEui : BaseEui
  6. {
  7. private readonly CrewManifestSystem _crewManifest;
  8. /// <summary>
  9. /// Station this EUI instance is currently tracking.
  10. /// </summary>
  11. private readonly EntityUid _station;
  12. /// <summary>
  13. /// Current owner of this UI, if it has one. This is
  14. /// to ensure that if a BUI is closed, the EUIs related
  15. /// to the BUI are closed as well.
  16. /// </summary>
  17. public readonly EntityUid? Owner;
  18. public CrewManifestEui(EntityUid station, EntityUid? owner, CrewManifestSystem crewManifestSystem)
  19. {
  20. _station = station;
  21. Owner = owner;
  22. _crewManifest = crewManifestSystem;
  23. }
  24. public override CrewManifestEuiState GetNewState()
  25. {
  26. var (name, entries) = _crewManifest.GetCrewManifest(_station);
  27. return new(name, entries);
  28. }
  29. public override void Closed()
  30. {
  31. base.Closed();
  32. _crewManifest.CloseEui(_station, Player, Owner);
  33. }
  34. }