using Content.Shared.Chemistry.Components;
using Content.Shared.DoAfter;
using Robust.Shared.Prototypes;
using Robust.Shared.Serialization;
namespace Content.Shared.Chemistry.Reaction;
[RegisterComponent]
public sealed partial class ReactionMixerComponent : Component
{
///
/// A list of IDs for categories of reactions that can be mixed (i.e. HOLY for a bible, DRINK for a spoon)
///
[ViewVariables]
[DataField]
public List> ReactionTypes = default!;
///
/// A string which identifies the string to be sent when successfully mixing a solution
///
[ViewVariables]
[DataField]
public LocId MixMessage = "default-mixing-success";
///
/// Defines if interacting is enough to mix with this component
///
[ViewVariables]
[DataField]
public bool MixOnInteract = true;
///
/// How long it takes to mix with this
///
[ViewVariables]
[DataField]
public TimeSpan TimeToMix = TimeSpan.Zero;
}
[ByRefEvent]
public record struct MixingAttemptEvent(EntityUid Mixed, bool Cancelled = false);
public readonly record struct AfterMixingEvent(EntityUid Mixed, EntityUid Mixer);
[Serializable, NetSerializable]
public sealed partial class ReactionMixDoAfterEvent : SimpleDoAfterEvent
{
}