CatStation/Content.Shared/TextScreen/TextScreenVisuals.cs
Whatstone 041a7e6504
Scrolling text screens (#43997)
* Scrolling text screens

* remove ScrollingTextScreenComponent, fix comments

* shave a pixel off of the frame, commas cut off

* logMissing to false, state does may not exist

* variable timing, offset array serializer

* namespaces are a state of mind

* Use CustomArraySerializer instead of a one-off

* better alphabetize punctuation text

* Unneeded VV access, 4-space meta.json

* Subscription attributes

* cleanup pass

* shift left

* AJCM's suggestions

Co-authored-by: AJCM-git <60196617+AJCM-git@users.noreply.github.com>

* PadRight returns a string.

* kill the loop, use funny division instead

* smoother animations, dark stripe on outer frame

* Update for the new comms console UI

* communications console changes

* can't spell pain without UI

* the ocho

* it's big brain time

* just a touch wider

* UI polish pass - forgive the sins

* look at my attributions dog

* EDITED

* Text screen layer init deferred until startup

* that's a new one

---------

Co-authored-by: AJCM-git <60196617+AJCM-git@users.noreply.github.com>
2026-08-15 22:03:22 +00:00

54 lines
1.4 KiB
C#

using Robust.Shared.Serialization;
namespace Content.Shared.TextScreen;
/// <summary>
/// AppearanceData keys for text screen data.
/// </summary>
[Serializable, NetSerializable]
public enum TextScreenVisuals : byte
{
// TODO: support for a small image, I think. Probably want to rename textscreen to just screen then.
/// <summary>
/// What text to default to after timer completion?
/// Expects a <see cref="string"/>.
/// </summary>
DefaultText,
/// <summary>
/// What text to render?<br/>
/// Expects a <see cref="string"/>.
/// </summary>
ScreenText,
/// <summary>
/// The reference time for the text. Useful for scroll synchronization.<br/>
/// Expects a <see cref="TimeSpan"/>.
/// </summary>
ScreenTextTime,
/// <summary>
/// If this is a timer, this is the time we're counting down to.<br/>
/// Expects a <see cref="TimeSpan"/>.
/// </summary>
TargetTime,
/// <summary>
/// Change text color on the entire screen.
/// Expects a <see cref="Color"/>.
/// </summary>
Color
}
/// <summary>
/// Layers for text screen sprites.
/// </summary>
[Serializable, NetSerializable]
public enum TextScreenVisualLayers : byte
{
/// <summary>
/// A frame to draw over the text on screen to obscure the scrolling effect.
/// Will be reordered to be on top of the text layers.
/// </summary>
Frame
}