using Content.Shared.ParcelWrap.Systems; using Robust.Shared.Audio; using Robust.Shared.Containers; using Robust.Shared.GameStates; using Robust.Shared.Prototypes; namespace Content.Shared.ParcelWrap.Components; /// /// This component marks its owner as being a parcel created by wrapping another item up. It can be unwrapped, /// destroying this entity and releasing . /// /// [RegisterComponent, NetworkedComponent, AutoGenerateComponentState] [Access(typeof(ParcelWrappingSystem))] public sealed partial class WrappedParcelComponent : Component { /// /// The contents of this parcel. /// [ViewVariables(VVAccess.ReadOnly)] public ContainerSlot Contents = default!; /// /// Specifies the entity to spawn when this parcel is unwrapped. /// [DataField, AutoNetworkedField] public EntProtoId? UnwrapTrash; /// /// How long it takes to unwrap this parcel. /// [DataField(required: true), AutoNetworkedField] public TimeSpan UnwrapDelay = TimeSpan.FromSeconds(1); /// /// Sound played when unwrapping this parcel. /// [DataField, AutoNetworkedField] public SoundSpecifier? UnwrapSound; /// /// The ID of . /// [DataField, ViewVariables(VVAccess.ReadOnly)] public string ContainerId = "contents"; /// /// If a player trapped inside this parcel can escape from it by unwrapping it. /// This is set by the used to create the parcel. /// [DataField, AutoNetworkedField] public bool CanSelfUnwrap = true; }