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!;
}