using Content.Shared.Whitelist; using Robust.Shared.Audio; using Robust.Shared.Prototypes; using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom.Prototype; namespace Content.Server.Holiday.Christmas; /// /// This is used for gifts with COMPLETELY random things. /// [RegisterComponent, Access(typeof(RandomGiftSystem))] public sealed partial class RandomGiftComponent : Component { /// /// The wrapper entity to spawn when unwrapping the gift. /// [DataField("wrapper", required: true, customTypeSerializer: typeof(PrototypeIdSerializer))] public string? Wrapper; /// /// A sound to play when the items are spawned. For example, gift boxes being unwrapped. /// [DataField("sound", required: true)] public SoundSpecifier? Sound; /// /// Whether or not the gift should be limited only to actual items. /// [DataField("insaneMode", required: true), ViewVariables(VVAccess.ReadWrite)] public bool InsaneMode; /// /// What entities are allowed to examine this gift to see its contents. /// [DataField("contentsViewers", required: true)] public EntityWhitelist ContentsViewers = default!; /// /// The currently selected entity to give out. Used so contents viewers can see inside. /// [DataField("selectedEntity"), ViewVariables(VVAccess.ReadWrite)] public string? SelectedEntity; }