using System.Numerics; using Content.Shared.TextScreen; using Robust.Client.Graphics; namespace Content.Client.TextScreen; [RegisterComponent] public sealed partial class TextScreenVisualsComponent : Component { /// /// 1/32 - the size of a pixel /// public const float PixelSize = 1f / EyeManager.PixelsPerMeter; /// /// The color of the text drawn. /// /// /// 15,151,251 is the old ss13 color, from tg /// [DataField("color"), ViewVariables(VVAccess.ReadWrite)] public Color Color = new Color(15, 151, 251); /// /// Offset for centering the text. /// [DataField("textOffset"), ViewVariables(VVAccess.ReadWrite)] public Vector2 TextOffset = Vector2.Zero; /// /// Offset for centering the timer. /// [DataField("timerOffset"), ViewVariables(VVAccess.ReadWrite)] public Vector2 TimerOffset = Vector2.Zero; /// /// Number of rows of text this screen can render. /// [DataField("rows")] public int Rows = 1; /// /// Spacing between each text row /// [DataField("rowOffset")] public int RowOffset = 7; /// /// The amount of characters this component can show per row. /// [DataField("rowLength")] public int RowLength = 5; /// /// Text the screen should show when it finishes a timer. /// [DataField("text"), ViewVariables(VVAccess.ReadWrite)] public string?[] Text = new string?[2]; /// /// Text the screen will draw whenever appearance is updated. /// public string?[] TextToDraw = new string?[2]; /// /// Per-character layers, for mapping into the sprite component. /// [DataField("layerStatesToDraw")] public Dictionary LayerStatesToDraw = new(); [DataField("hourFormat")] public string HourFormat = "D2"; [DataField("minuteFormat")] public string MinuteFormat = "D2"; [DataField("secondFormat")] public string SecondFormat = "D2"; }