using Content.Shared.Item; using Content.Shared.ParcelWrap.Systems; using Content.Shared.Whitelist; using Robust.Shared.Audio; using Robust.Shared.GameStates; using Robust.Shared.Prototypes; namespace Content.Shared.ParcelWrap.Components; /// /// This component gives its owning entity the ability to wrap items into parcels. /// /// [RegisterComponent, NetworkedComponent, AutoGenerateComponentState] [Access] // Readonly, except for VV editing public sealed partial class ParcelWrapComponent : Component { /// /// The of the parcel created by using this component. /// [DataField(required: true), AutoNetworkedField] public EntProtoId ParcelPrototype; /// /// How long it takes to use this to wrap something. /// [DataField(required: true), AutoNetworkedField] public TimeSpan WrapDelay = TimeSpan.FromSeconds(1); /// /// Sound played when this is used to wrap something. /// [DataField, AutoNetworkedField] public SoundSpecifier? WrapSound; /// /// Defines the set of things which can be wrapped (unless it fails the ). /// [DataField, AutoNetworkedField] public EntityWhitelist? Whitelist; /// /// Defines the set of things which cannot be wrapped (even if it passes the ). /// [DataField, AutoNetworkedField] public EntityWhitelist? Blacklist; /// /// If a player trapped inside this parcel can escape from it by unwrapping it. /// [DataField, AutoNetworkedField] public bool CanSelfUnwrap = true; }