using Content.Shared.Hands.Components;
namespace Content.Client.Toggleable;
///
/// Component that handles toggling the visuals of an entity, including layers on an entity's sprite,
/// the in-hand visuals, and the clothing/equipment visuals.
///
///
[RegisterComponent]
public sealed partial class ToggleableVisualsComponent : Component
{
///
/// Sprite layer that will have its visibility toggled when this item is toggled.
///
[DataField(required: true)]
public string? SpriteLayer;
///
/// Layers to add to the sprite of the player that is holding this entity (while the component is toggled on).
///
[DataField]
public Dictionary> InhandVisuals = new();
///
/// A set of clothing visuals per layer by the name of the inventory slot (e.g. "head").
/// Species-specific layers are expected at the name of the layer suffixed with the species (e.g. "head-vox")
/// NOTE: if your species-specific layers consist entirely of default layers or layers
/// suffixed with your species (e.g. "helmet-unshaded" to "helmet-unshaded-vox")
/// this can be omitted entirely!
///
[DataField]
public Dictionary> ClothingVisuals = new();
}