using Content.Shared.DoAfter; using Robust.Shared.Audio; using Robust.Shared.GameStates; using Robust.Shared.Prototypes; using Robust.Shared.Serialization; namespace Content.Shared.VendingMachines.Components; [RegisterComponent, NetworkedComponent, Access(typeof(SharedVendingMachineSystem))] public sealed partial class VendingMachineRestockComponent : Component { /// /// The time (in seconds) that it takes to restock a machine. /// [DataField] public TimeSpan RestockDelay = TimeSpan.FromSeconds(5.0f); /// /// What sort of machine inventory does this restock? /// This is checked against the VendingMachineComponent's pack value. /// [DataField] public HashSet> CanRestock = []; /// /// Sound that plays when starting to restock a machine. /// [DataField] public SoundSpecifier SoundRestockStart = new SoundPathSpecifier("/Audio/Machines/vending_restock_start.ogg") { Params = new AudioParams { Volume = -2f, Variation = 0.2f } }; /// /// Sound that plays when finished restocking a machine. /// [DataField] public SoundSpecifier SoundRestockDone = new SoundPathSpecifier("/Audio/Machines/vending_restock_done.ogg", AudioParams.Default.WithVolume(-2f).WithVariation(0.2f)); } [Serializable, NetSerializable] public sealed partial class RestockDoAfterEvent : SimpleDoAfterEvent;