using Content.Shared.Clothing; using Content.Shared.Inventory.Events; using Content.Shared.Overlays; using Robust.Client.Graphics; namespace Content.Client.Overlays; /// /// Adds image overlay when wearing item with /// public sealed partial class ImageOverlaySystem : EquipmentHudSystem { [Dependency] private IOverlayManager _overlayMan = default!; private ImageOverlay _overlay = default!; /// public override void Initialize() { base.Initialize(); _overlay = new(); } [SubscribeLocalEvent] private void OnItemToggled(Entity ent, ref ItemMaskToggledEvent args) { _overlay.SetActive(ent.Comp, !args.Mask.Comp.IsToggled); } /// protected override void UpdateInternal(RefreshEquipmentHudEvent component) { base.UpdateInternal(component); if (component.Components.Count == 0) { _overlayMan.RemoveOverlay(_overlay); return; } _overlayMan.AddOverlay(_overlay); _overlay.UpdateState(component.Components); } /// protected override void DeactivateInternal() { base.DeactivateInternal(); _overlayMan.RemoveOverlay(_overlay); } }