Events.cs 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. using Content.Shared.Chemistry.Components;
  2. using Content.Shared.DoAfter;
  3. using Content.Shared.Nutrition.Components;
  4. using Content.Shared.Nutrition.Prototypes;
  5. using Robust.Shared.Prototypes;
  6. using Robust.Shared.Serialization;
  7. namespace Content.Shared.Nutrition;
  8. /// <summary>
  9. /// Do after even for food and drink.
  10. /// </summary>
  11. [Serializable, NetSerializable]
  12. public sealed partial class ConsumeDoAfterEvent : DoAfterEvent
  13. {
  14. [DataField("solution", required: true)]
  15. public string Solution = default!;
  16. [DataField("flavorMessage", required: true)]
  17. public string FlavorMessage = default!;
  18. private ConsumeDoAfterEvent()
  19. {
  20. }
  21. public ConsumeDoAfterEvent(string solution, string flavorMessage)
  22. {
  23. Solution = solution;
  24. FlavorMessage = flavorMessage;
  25. }
  26. public override DoAfterEvent Clone() => this;
  27. }
  28. /// <summary>
  29. /// Do after event for vape.
  30. /// </summary>
  31. [Serializable, NetSerializable]
  32. public sealed partial class VapeDoAfterEvent : DoAfterEvent
  33. {
  34. [DataField("solution", required: true)]
  35. public Solution Solution = default!;
  36. [DataField("forced", required: true)]
  37. public bool Forced = default!;
  38. private VapeDoAfterEvent()
  39. {
  40. }
  41. public VapeDoAfterEvent(Solution solution, bool forced)
  42. {
  43. Solution = solution;
  44. Forced = forced;
  45. }
  46. public override DoAfterEvent Clone() => this;
  47. }
  48. /// <summary>
  49. /// Raised before food is sliced
  50. /// </summary>
  51. [ByRefEvent]
  52. public record struct SliceFoodEvent();
  53. /// <summary>
  54. /// is called after a successful attempt at slicing food.
  55. /// </summary>
  56. [Serializable, NetSerializable]
  57. public sealed partial class SliceFoodDoAfterEvent : SimpleDoAfterEvent
  58. {
  59. }
  60. /// <summary>
  61. /// Raised on FoodSequence start element entity when new ingredient is added to FoodSequence
  62. /// </summary>
  63. public record struct FoodSequenceIngredientAddedEvent(EntityUid Start, EntityUid Element, ProtoId<FoodSequenceElementPrototype> Proto, EntityUid? User = null);