using Content.Shared.APC; namespace Content.Client.Power.APC; /// /// A component used to update the sprite of APCs. /// /// [RegisterComponent] [Access(typeof(ApcVisualizerSystem))] public sealed partial class ApcVisualsComponent : Component { #region Channel Indicators /// /// The prefix used for the sprite state suffix of the channel indicator lights. /// Valid states are of the form \-\ /// [DataField] public string ChannelIndicatorPrefix = "channel"; /// /// The suffixes are used for the channel indicator lights. /// Must be at least as large as /// A null state is not used as a suffix, it sets the entire state to null. /// [DataField] public string?[] ChannelIndicatorSuffixes = new string?[(int)ApcChannelState.NumStates] { null, "on", "disconnected", "tripped" }; #endregion Channel Indicators #region Screen /// /// The prefix used to construct the sprite state suffix used for the screen overlay. /// Valid sprite states are of the form \-\. /// [DataField] public string ScreenStatePrefix = "display"; /// /// The suffix used to construct the sprite state suffix used for the screen overlay. /// Valid sprite states are of the form \-\. /// Must be at least as large as /// A null state is not used as a suffix, it sets the entire state to null. /// [DataField] public string?[] ScreenStateSuffixes = new string[(int)ApcChargeState.NumStates] { "lack", "charging", "full", "remote", "tripped" }; /// /// The colors of the light emitted by the APC given a particular display state. /// Must be at least as large as /// [DataField] public Color[] ScreenColors = new Color[(int)ApcChargeState.NumStates] { Color.Red, Color.Yellow, Color.GreenYellow, Color.Orange, Color.Silver }; /// /// The sprite state of the unlit overlay used for the APC screen when the APC has been emagged. /// [DataField] public string EmaggedScreenState = "emag-unlit"; /// /// The color of the light emitted when the APC has been emagged. /// [DataField] public Color EmaggedScreenColor = Color.FromHex("#1f48d6"); #endregion Screen }