Files
tbd-station-14/Content.Shared/Containers/ItemSlot/ItemSlotsSystem.Lock.cs
metalgearsloth c0a07614c0 ItemToggle + slots stuff (#31312)
* ItemToggle + slots stuff

- Add component for itemslot locks to match LockComponent (surprised this didn't exist).
- Add thing for pointlight to match itemtoggle. In future should be used for PDAs and stuff but need to fix some other stuff first.

* Also this

* grill
2024-08-25 22:30:28 +10:00

37 lines
1008 B
C#

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