using Content.Shared.Containers.ItemSlots; using Robust.Shared.Audio; using Robust.Shared.GameStates; namespace Content.Shared.Cabinet; /// /// Used for entities that can be opened, closed, and can hold one item. E.g., fire extinguisher cabinets. /// [RegisterComponent, NetworkedComponent, AutoGenerateComponentState] public sealed partial class ItemCabinetComponent : Component { /// /// Sound to be played when the cabinet door is opened. /// [DataField, AutoNetworkedField, ViewVariables(VVAccess.ReadWrite)] public SoundSpecifier? DoorSound; /// /// The that stores the actual item. The entity whitelist, sounds, and other /// behaviours are specified by this definition. /// [DataField, ViewVariables] public ItemSlot CabinetSlot = new(); /// /// Whether the cabinet is currently open or not. /// [DataField, AutoNetworkedField] public bool Opened; /// /// The state for when the cabinet is open /// [DataField, AutoNetworkedField, ViewVariables(VVAccess.ReadWrite)] public string? OpenState; /// /// The state for when the cabinet is closed /// [DataField, AutoNetworkedField, ViewVariables(VVAccess.ReadWrite)] public string? ClosedState; }