using Content.Shared.Inventory;
using Robust.Shared.GameStates;
namespace Content.Shared.Humanoid;
[NetworkedComponent, RegisterComponent, AutoGenerateComponentState(true)]
[Access(typeof(SharedHideableHumanoidLayersSystem))]
public sealed partial class HideableHumanoidLayersComponent : Component
{
///
/// A map of the visual layers currently hidden to the equipment
/// slots that are currently hiding them. This will affect the base
/// sprite on this humanoid layer, and any markings that sit above it.
///
[DataField, AutoNetworkedField]
public Dictionary HiddenLayers = new();
///
/// Client only - which layers were last hidden
///
[ViewVariables]
public HashSet LastHiddenLayers = new();
}
///
/// Raised on an entity when one of its humanoid layers changes its visibility
///
[ByRefEvent]
public readonly record struct HumanoidLayerVisibilityChangedEvent(HumanoidVisualLayers Layer, bool Visible);