using Content.Shared.Whitelist; namespace Content.Server.Sticky.Components; /// /// Items that can be stick to other structures or entities. /// For example paper stickers or C4 charges. /// [RegisterComponent] public sealed partial class StickyComponent : Component { /// /// What target entities are valid to be surface for sticky entity. /// [DataField("whitelist")] [ViewVariables(VVAccess.ReadWrite)] public EntityWhitelist? Whitelist; /// /// What target entities can't be used as surface for sticky entity. /// [DataField("blacklist")] [ViewVariables(VVAccess.ReadWrite)] public EntityWhitelist? Blacklist; /// /// How much time does it take to stick entity to target. /// If zero will stick entity immediately. /// [DataField("stickDelay")] [ViewVariables(VVAccess.ReadWrite)] public TimeSpan StickDelay = TimeSpan.Zero; /// /// Whether users can unstick item when it was stuck to surface. /// [DataField("canUnstick")] [ViewVariables(VVAccess.ReadWrite)] public bool CanUnstick = true; /// /// How much time does it take to unstick entity. /// If zero will unstick entity immediately. /// [DataField("unstickDelay")] [ViewVariables(VVAccess.ReadWrite)] public TimeSpan UnstickDelay = TimeSpan.Zero; /// /// Popup message shown when player started sticking entity to another entity. /// [DataField("stickPopupStart")] [ViewVariables(VVAccess.ReadWrite)] public string? StickPopupStart; /// /// Popup message shown when player successfully stuck entity. /// [DataField("stickPopupSuccess")] [ViewVariables(VVAccess.ReadWrite)] public string? StickPopupSuccess; /// /// Popup message shown when player started unsticking entity from another entity. /// [DataField("unstickPopupStart")] [ViewVariables(VVAccess.ReadWrite)] public string? UnstickPopupStart; /// /// Popup message shown when player successfully unstuck entity. /// [DataField("unstickPopupSuccess")] [ViewVariables(VVAccess.ReadWrite)] public string? UnstickPopupSuccess; /// /// Entity that is used as surface for sticky entity. /// Null if entity doesn't stuck to anything. /// [ViewVariables(VVAccess.ReadOnly)] public EntityUid? StuckTo; /// /// For the DoAfter event to tell if it should stick or unstick /// public bool Stick; }