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);
}
}