NotekeeperUi.cs 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839
  1. using Content.Client.UserInterface.Fragments;
  2. using Content.Shared.CartridgeLoader;
  3. using Content.Shared.CartridgeLoader.Cartridges;
  4. using Robust.Client.GameObjects;
  5. using Robust.Client.UserInterface;
  6. namespace Content.Client.CartridgeLoader.Cartridges;
  7. public sealed partial class NotekeeperUi : UIFragment
  8. {
  9. private NotekeeperUiFragment? _fragment;
  10. public override Control GetUIFragmentRoot()
  11. {
  12. return _fragment!;
  13. }
  14. public override void Setup(BoundUserInterface userInterface, EntityUid? fragmentOwner)
  15. {
  16. _fragment = new NotekeeperUiFragment();
  17. _fragment.OnNoteRemoved += note => SendNotekeeperMessage(NotekeeperUiAction.Remove, note, userInterface);
  18. _fragment.OnNoteAdded += note => SendNotekeeperMessage(NotekeeperUiAction.Add, note, userInterface);
  19. }
  20. public override void UpdateState(BoundUserInterfaceState state)
  21. {
  22. if (state is not NotekeeperUiState notekeepeerState)
  23. return;
  24. _fragment?.UpdateState(notekeepeerState.Notes);
  25. }
  26. private void SendNotekeeperMessage(NotekeeperUiAction action, string note, BoundUserInterface userInterface)
  27. {
  28. var notekeeperMessage = new NotekeeperUiMessageEvent(action, note);
  29. var message = new CartridgeUiMessage(notekeeperMessage);
  30. userInterface.SendMessage(message);
  31. }
  32. }