NanoTaskUiMessageEvent.cs 2.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091
  1. using Robust.Shared.Serialization;
  2. namespace Content.Shared.CartridgeLoader.Cartridges;
  3. /// <summary>
  4. /// Base UI message for NanoTask interactions
  5. /// </summary>
  6. public interface INanoTaskUiMessagePayload
  7. {
  8. }
  9. /// <summary>
  10. /// Dispatched when a new task is created
  11. /// </summary>
  12. [Serializable, NetSerializable, DataRecord]
  13. public sealed class NanoTaskAddTask : INanoTaskUiMessagePayload
  14. {
  15. /// <summary>
  16. /// The newly created task
  17. /// </summary>
  18. public readonly NanoTaskItem Item;
  19. public NanoTaskAddTask(NanoTaskItem item)
  20. {
  21. Item = item;
  22. }
  23. }
  24. /// <summary>
  25. /// Dispatched when an existing task is modified
  26. /// </summary>
  27. [Serializable, NetSerializable, DataRecord]
  28. public sealed class NanoTaskUpdateTask : INanoTaskUiMessagePayload
  29. {
  30. /// <summary>
  31. /// The task that was updated and its ID
  32. /// </summary>
  33. public readonly NanoTaskItemAndId Item;
  34. public NanoTaskUpdateTask(NanoTaskItemAndId item)
  35. {
  36. Item = item;
  37. }
  38. }
  39. /// <summary>
  40. /// Dispatched when an existing task is deleted
  41. /// </summary>
  42. [Serializable, NetSerializable, DataRecord]
  43. public sealed class NanoTaskDeleteTask : INanoTaskUiMessagePayload
  44. {
  45. /// <summary>
  46. /// The ID of the task to delete
  47. /// </summary>
  48. public readonly int Id;
  49. public NanoTaskDeleteTask(int id)
  50. {
  51. Id = id;
  52. }
  53. }
  54. /// <summary>
  55. /// Dispatched when a task is requested to be printed
  56. /// </summary>
  57. [Serializable, NetSerializable, DataRecord]
  58. public sealed class NanoTaskPrintTask : INanoTaskUiMessagePayload
  59. {
  60. /// <summary>
  61. /// The NanoTask to print
  62. /// </summary>
  63. public readonly NanoTaskItem Item;
  64. public NanoTaskPrintTask(NanoTaskItem item)
  65. {
  66. Item = item;
  67. }
  68. }
  69. /// <summary>
  70. /// Cartridge message event carrying the NanoTask UI messages
  71. /// </summary>
  72. [Serializable, NetSerializable]
  73. public sealed class NanoTaskUiMessageEvent : CartridgeMessageEvent
  74. {
  75. public readonly INanoTaskUiMessagePayload Payload;
  76. public NanoTaskUiMessageEvent(INanoTaskUiMessagePayload payload)
  77. {
  78. Payload = payload;
  79. }
  80. }