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 actually hidden. /// [ViewVariables] public HashSet LastHiddenLayers = new(); } /// /// Raised on an entity before one of its humanoid layers changes its visibility. /// If is false, this event is a request to hide the layer. /// If true, the layer will be shown again regardless. /// [ByRefEvent] public struct HumanoidLayerVisibilityChangedEvent(HumanoidVisualLayers layer, bool visible) { /// The layer whose visibility will change. public readonly HumanoidVisualLayers Layer = layer; /// The new visibility of the layer. public readonly bool Visible = visible; /// When Visible is true, set this true to allow the layer to be hidden. public bool ShouldHide; }