using Content.Shared.Lathe; using Content.Shared.Research.Prototypes; using Robust.Server.GameObjects; using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom.Prototype.List; using Robust.Shared.Audio; namespace Content.Server.Lathe.Components { [RegisterComponent] public sealed class LatheComponent : SharedLatheComponent { /// /// The lathe's construction queue /// [DataField("queue", customTypeSerializer: typeof(PrototypeIdListSerializer))] public List Queue { get; } = new(); // TODO queue serializer. /// /// 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; /// /// 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; } }