using Robust.Shared.Audio; using Robust.Shared.GameStates; using Robust.Shared.Prototypes; namespace Content.Shared.RetractableItemAction; /// /// Used for storing an unremovable item within an action and summoning it into your hand on use. /// [RegisterComponent, NetworkedComponent, AutoGenerateComponentState, Access(typeof(RetractableItemActionSystem))] public sealed partial class RetractableItemActionComponent : Component { /// /// The item that will appear be spawned by the action. /// [DataField(required: true)] public EntProtoId SpawnedPrototype; /// /// Sound collection to play when the item is summoned. /// [DataField] public SoundCollectionSpecifier? SummonSounds; /// /// Sound collection to play when the summoned item is retracted back into the action. /// [DataField] public SoundCollectionSpecifier? RetractSounds; /// /// The item managed by the action. Will be summoned and hidden as the action is used. /// [DataField, AutoNetworkedField] public EntityUid? ActionItemUid; /// /// The container ID used to store the item. /// public const string ContainerId = "item-action-item-container"; }