using Content.Server.UserInterface; using Content.Shared.Lathe; using Content.Shared.Research.Prototypes; using Robust.Server.GameObjects; using Content.Shared.Sound; namespace Content.Server.Lathe.Components { [RegisterComponent] public sealed class LatheComponent : SharedLatheComponent { /// /// How much volume in cm^3 each sheet of material adds /// public int VolumePerSheet = 100; /// /// The lathe's construction queue /// [ViewVariables] public Queue Queue { get; } = new(); /// /// The recipe the lathe is currently producing /// [ViewVariables] public LatheRecipePrototype? ProducingRecipe; /// /// How long the inserting animation will play /// [ViewVariables] public float InsertionTime = 0.79f; // 0.01 off for animation timing /// /// Update accumulator for the insertion time /// [DataField("insertionAccumulator")] public float InsertionAccumulator = 0f; /// /// Production accumulator for the production time. /// [ViewVariables] [DataField("producingAccumulator")] public float ProducingAccumulator = 0f; /// /// The sound that plays when the lathe is producing an item, if any /// [DataField("producingSound")] public SoundSpecifier? ProducingSound; /// /// The lathe's UI. /// [ViewVariables] public BoundUserInterface? UserInterface; } }