using Robust.Shared.Serialization;
namespace Content.Shared.Kitchen;
///
/// Sent by the client if they want to toggle the grinder's auto mode.
///
[Serializable, NetSerializable]
public sealed class ReagentGrinderToggleAutoModeMessage() : BoundUserInterfaceMessage;
///
/// Sent by the client if they want to start the grinder.
///
[Serializable, NetSerializable]
public sealed class ReagentGrinderStartMessage(GrinderProgram program) : BoundUserInterfaceMessage
{
public GrinderProgram Program = program;
}
///
/// Sent by the client if they want to eject all grindable entities within the grinder.
///
[Serializable, NetSerializable]
public sealed class ReagentGrinderEjectChamberAllMessage() : BoundUserInterfaceMessage;
///
/// Sent by the client if they want eject a single grindable entity within the grinder.
///
[Serializable, NetSerializable]
public sealed class ReagentGrinderEjectChamberContentMessage(NetEntity entityId) : BoundUserInterfaceMessage
{
public NetEntity EntityId = entityId;
}
///
/// Enum to be used for the grinder's appearance data.
///
[Serializable, NetSerializable]
public enum ReagentGrinderVisualState : byte
{
BeakerAttached
}
///
/// The mode the grinder will use when activated. Grinding and juicing the same prototype will yield different results.
///
[Serializable, NetSerializable]
public enum GrinderProgram : byte
{
Grind,
Juice
}
///
/// Key for the ReagentGrinderBoundUserInterface.
///
[NetSerializable, Serializable]
public enum ReagentGrinderUiKey : byte
{
Key
}
///
/// The setting of the grinder's auto mode.
///
[NetSerializable, Serializable]
public enum GrinderAutoMode : byte
{
Off,
Grind,
Juice
}