using Content.Shared.Lock; namespace Content.Shared.Containers.ItemSlots; public sealed partial class ItemSlotsSystem { private void InitializeLock() { SubscribeLocalEvent(OnLockMapInit); SubscribeLocalEvent(OnLockToggled); } private void OnLockMapInit(Entity ent, ref MapInitEvent args) { if (!TryComp(ent.Owner, out LockComponent? lockComp)) return; UpdateLocks(ent, lockComp.Locked); } private void OnLockToggled(Entity ent, ref LockToggledEvent args) { UpdateLocks(ent, args.Locked); } private void UpdateLocks(Entity ent, bool value) { foreach (var slot in ent.Comp.Slots) { if (!TryGetSlot(ent.Owner, slot, out var itemSlot)) continue; SetLock(ent.Owner, itemSlot, value); } } }