using Content.Shared.Singularity.Components; using Robust.Client.Animations; namespace Content.Client.Singularity.Visualizers; /// /// The component used to reflect the state of a radiation collector in its appearance. /// [RegisterComponent] [Access(typeof(RadiationCollectorSystem))] public sealed partial class RadiationCollectorComponent : Component { /// /// The key used to index the (de)activation animations played when turning a radiation collector on/off. /// [ViewVariables] public const string AnimationKey = "radiationcollector_animation"; /// /// The current visual state of the radiation collector. /// [ViewVariables] public RadiationCollectorVisualState CurrentState = RadiationCollectorVisualState.Deactive; /// /// The RSI state used for the main sprite layer () when the radiation collector is active. /// [DataField("activeState")] [ViewVariables(VVAccess.ReadWrite)] public string ActiveState = "ca_on"; /// /// The RSI state used for the main sprite layer () when the radiation collector is inactive. /// [DataField("inactiveState")] [ViewVariables(VVAccess.ReadWrite)] public string InactiveState = "ca_off"; /// /// Used to build the activation animation when the component is initialized. /// [DataField("activatingState")] public string ActivatingState = "ca_active"; /// /// Used to build the deactivation animation when the component is initialized. /// [DataField("deactivatingState")] public string DeactivatingState = "ca_deactive"; /// /// The animation used when turning on the radiation collector. /// [ViewVariables(VVAccess.ReadWrite)] public Animation ActivateAnimation = default!; /// /// The animation used when turning off the radiation collector. /// [ViewVariables(VVAccess.ReadWrite)] public Animation DeactiveAnimation = default!; }