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