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;
}