SharedReagentGrinder.cs 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115
  1. using Content.Shared.Chemistry.Reagent;
  2. using Robust.Shared.Serialization;
  3. namespace Content.Shared.Kitchen
  4. {
  5. public sealed class SharedReagentGrinder
  6. {
  7. public static string BeakerSlotId = "beakerSlot";
  8. public static string InputContainerId = "inputContainer";
  9. }
  10. [Serializable, NetSerializable]
  11. public sealed class ReagentGrinderToggleAutoModeMessage : BoundUserInterfaceMessage
  12. {
  13. public ReagentGrinderToggleAutoModeMessage() { }
  14. }
  15. [Serializable, NetSerializable]
  16. public sealed class ReagentGrinderStartMessage : BoundUserInterfaceMessage
  17. {
  18. public readonly GrinderProgram Program;
  19. public ReagentGrinderStartMessage(GrinderProgram program)
  20. {
  21. Program = program;
  22. }
  23. }
  24. [Serializable, NetSerializable]
  25. public sealed class ReagentGrinderEjectChamberAllMessage : BoundUserInterfaceMessage
  26. {
  27. public ReagentGrinderEjectChamberAllMessage()
  28. {
  29. }
  30. }
  31. [Serializable, NetSerializable]
  32. public sealed class ReagentGrinderEjectChamberContentMessage : BoundUserInterfaceMessage
  33. {
  34. public NetEntity EntityId;
  35. public ReagentGrinderEjectChamberContentMessage(NetEntity entityId)
  36. {
  37. EntityId = entityId;
  38. }
  39. }
  40. [Serializable, NetSerializable]
  41. public sealed class ReagentGrinderWorkStartedMessage : BoundUserInterfaceMessage
  42. {
  43. public GrinderProgram GrinderProgram;
  44. public ReagentGrinderWorkStartedMessage(GrinderProgram grinderProgram)
  45. {
  46. GrinderProgram = grinderProgram;
  47. }
  48. }
  49. [Serializable, NetSerializable]
  50. public sealed class ReagentGrinderWorkCompleteMessage : BoundUserInterfaceMessage
  51. {
  52. public ReagentGrinderWorkCompleteMessage()
  53. {
  54. }
  55. }
  56. [Serializable, NetSerializable]
  57. public enum ReagentGrinderVisualState : byte
  58. {
  59. BeakerAttached
  60. }
  61. [Serializable, NetSerializable]
  62. public enum GrinderProgram : byte
  63. {
  64. Grind,
  65. Juice
  66. }
  67. [NetSerializable, Serializable]
  68. public enum ReagentGrinderUiKey : byte
  69. {
  70. Key
  71. }
  72. public enum GrinderAutoMode : byte
  73. {
  74. Off,
  75. Grind,
  76. Juice
  77. }
  78. [NetSerializable, Serializable]
  79. public sealed class ReagentGrinderInterfaceState : BoundUserInterfaceState
  80. {
  81. public bool IsBusy;
  82. public bool HasBeakerIn;
  83. public bool Powered;
  84. public bool CanJuice;
  85. public bool CanGrind;
  86. public NetEntity[] ChamberContents;
  87. public ReagentQuantity[]? ReagentQuantities;
  88. public GrinderAutoMode AutoMode;
  89. public ReagentGrinderInterfaceState(bool isBusy, bool hasBeaker, bool powered, bool canJuice, bool canGrind, GrinderAutoMode autoMode, NetEntity[] chamberContents, ReagentQuantity[]? heldBeakerContents)
  90. {
  91. IsBusy = isBusy;
  92. HasBeakerIn = hasBeaker;
  93. Powered = powered;
  94. CanJuice = canJuice;
  95. CanGrind = canGrind;
  96. AutoMode = autoMode;
  97. ChamberContents = chamberContents;
  98. ReagentQuantities = heldBeakerContents;
  99. }
  100. }
  101. }