diff --git a/Content.Client/SimpleStation14/Overlays/Systems/NearsightedSystems.cs b/Content.Client/SimpleStation14/Overlays/Systems/NearsightedSystems.cs index ef413ec65d3..dedb067429c 100644 --- a/Content.Client/SimpleStation14/Overlays/Systems/NearsightedSystems.cs +++ b/Content.Client/SimpleStation14/Overlays/Systems/NearsightedSystems.cs @@ -32,15 +32,21 @@ public sealed class NearsightedSystem : EntitySystem private void OnEquip(GotEquippedEvent args) { + // Note: it would be cleaner to check if the glasses are being equipped + // to the eyes rather than the pockets using `args.SlotFlags.HasFlag(SlotFlags.EYES)`, + // but this field is not present on GotUnequippedEvent. This method is + // used for both equip and unequip to make it consistent between checks. if (TryComp(args.Equipee, out var nearsighted) && - EnsureComp(args.Equipment).Tags.Contains("GlassesNearsight")) + EnsureComp(args.Equipment).Tags.Contains("GlassesNearsight") && + args.Slot == "eyes") UpdateShader(nearsighted, true); } private void OnUnEquip(GotUnequippedEvent args) { if (TryComp(args.Equipee, out var nearsighted) && - EnsureComp(args.Equipment).Tags.Contains("GlassesNearsight")) + EnsureComp(args.Equipment).Tags.Contains("GlassesNearsight") && + args.Slot == "eyes") UpdateShader(nearsighted, false); }