using Robust.Shared.Serialization; using Robust.Shared.Audio; namespace Content.Shared.Paper; /// /// Set of required information to draw a stamp in UIs, where /// representing the state of the stamp at the point in time /// when it was applied to a paper. These fields mirror the /// equivalent in the component. /// [DataDefinition, Serializable, NetSerializable] public partial struct StampDisplayInfo { StampDisplayInfo(string s) { StampedName = s; } [DataField("stampedName")] public string StampedName; [DataField("stampedColor")] public Color StampedColor; [DataField("stampType")] public StampType Type = StampType.RubberStamp; [DataField("reapply")] // Frontier: allow reapplying stamps public bool Reapply = false; // Frontier: allow reapplying stamps }; // FRONTIER - Stamp types, put it into an enum for modularity purposes. public enum StampType { RubberStamp, Signature } [RegisterComponent] public sealed partial class StampComponent : Component { /// /// The loc string name that will be stamped to the piece of paper on examine. /// [DataField("stampedName")] public string StampedName { get; set; } = "stamp-component-stamped-name-default"; /// /// The sprite state of the stamp to display on the paper from paper Sprite path. /// [DataField("stampState")] public string StampState { get; set; } = "paper_stamp-generic"; /// /// The color of the ink used by the stamp in UIs /// [DataField("stampedColor")] public Color StampedColor = Color.FromHex("#BB3232"); // StyleNano.DangerousRedFore /// /// The sound when stamp stamped /// [DataField("sound")] public SoundSpecifier? Sound = null; // Frontier: allow reapplying stamps, protected stamps /// /// Whether or not a stamp can be reapplied /// [DataField("reapply")] public bool Reapply { get; set; } = false; /// /// When true, stamped papers are marked as protected /// [DataField] public bool Protected = false; // End Frontier }