using Content.Shared.Research.Prototypes; using NetSerializer; using Robust.Shared.Prototypes; using Robust.Shared.Serialization; namespace Content.Shared.Lathe; [Serializable, NetSerializable] public sealed class LatheUpdateState : BoundUserInterfaceState { public List> Recipes; public LatheRecipeBatch[] Queue; public ProtoId? CurrentlyProducing; public LatheUpdateState(List> recipes, LatheRecipeBatch[] queue, ProtoId? currentlyProducing = null) { Recipes = recipes; Queue = queue; CurrentlyProducing = currentlyProducing; } } /// /// Sent to the server to sync material storage and the recipe queue. /// [Serializable, NetSerializable] public sealed class LatheSyncRequestMessage : BoundUserInterfaceMessage { } /// /// Sent to the server when a client queues a new recipe. /// [Serializable, NetSerializable] public sealed class LatheQueueRecipeMessage : BoundUserInterfaceMessage { public readonly string ID; public readonly int Quantity; public LatheQueueRecipeMessage(string id, int quantity) { ID = id; Quantity = quantity; } } /// /// Sent to the server to remove a batch from the queue. /// [Serializable, NetSerializable] public sealed class LatheDeleteRequestMessage(int index) : BoundUserInterfaceMessage { public int Index = index; } /// /// Sent to the server to move the position of a batch in the queue. /// [Serializable, NetSerializable] public sealed class LatheMoveRequestMessage(int index, int change) : BoundUserInterfaceMessage { public int Index = index; public int Change = change; } /// /// Sent to the server to stop producing the current item. /// [Serializable, NetSerializable] public sealed class LatheAbortFabricationMessage() : BoundUserInterfaceMessage { } [NetSerializable, Serializable] public enum LatheUiKey { Key, }