using System.Numerics;
using Robust.Shared.GameStates;
namespace Content.Shared.Sprite;
///
/// Used to set the datafield to a certain value from the server.
///
[RegisterComponent, NetworkedComponent, AutoGenerateComponentState]
[Access(typeof(SharedScaleVisualsSystem))]
public sealed partial class ScaleVisualsComponent : Component
{
///
/// The current sprite scale.
///
[DataField, AutoNetworkedField]
[ViewVariables]
public Vector2 Scale = Vector2.One;
///
/// The original sprite scale, which we revert to if this component is removed.
/// Only set on the client.
///
[DataField]
[ViewVariables]
public Vector2? OriginalScale;
///
/// DeltaV - Contains the species scale. Set dynamically by
/// baseScale in the Species prototype.
///
[DataField, AutoNetworkedField]
[ViewVariables]
public Vector2 SpeciesScale = new(1f, 1f);
///
/// DeltaV - Contains the user-defined scale from the character creation
/// screen.
///
[DataField, AutoNetworkedField]
[ViewVariables]
public Vector2 ProfileScale = new(1f, 1f);
///
/// DeltaV - Contains the computer scale from applying Scale, SpeciesScale, and ProfileScale.
/// This will contain the actual scale after all modifiers are applied.
///
[DataField, AutoNetworkedField]
[ViewVariables]
public Vector2 ComputedScale;
}