using Content.Shared.Chemistry.Components; using Content.Shared.DoAfter; using Content.Shared.Nutrition.Components; using Content.Shared.Nutrition.Prototypes; using Robust.Shared.Prototypes; using Robust.Shared.Serialization; namespace Content.Shared.Nutrition; /// /// Do after even for food and drink. /// [Serializable, NetSerializable] public sealed partial class ConsumeDoAfterEvent : DoAfterEvent { [DataField("solution", required: true)] public string Solution = default!; [DataField("flavorMessage", required: true)] public string FlavorMessage = default!; private ConsumeDoAfterEvent() { } public ConsumeDoAfterEvent(string solution, string flavorMessage) { Solution = solution; FlavorMessage = flavorMessage; } public override DoAfterEvent Clone() => this; } /// /// Do after event for vape. /// [Serializable, NetSerializable] public sealed partial class VapeDoAfterEvent : DoAfterEvent { [DataField("solution", required: true)] public Solution Solution = default!; [DataField("forced", required: true)] public bool Forced = default!; private VapeDoAfterEvent() { } public VapeDoAfterEvent(Solution solution, bool forced) { Solution = solution; Forced = forced; } public override DoAfterEvent Clone() => this; } /// /// Raised before food is sliced /// [ByRefEvent] public record struct SliceFoodEvent(); /// /// is called after a successful attempt at slicing food. /// [Serializable, NetSerializable] public sealed partial class SliceFoodDoAfterEvent : SimpleDoAfterEvent { } /// /// Raised on FoodSequence start element entity when new ingredient is added to FoodSequence /// public record struct FoodSequenceIngredientAddedEvent(EntityUid Start, EntityUid Element, ProtoId Proto, EntityUid? User = null);