Make ItemCabinet use ItemSlots (#4771)

* pda slot names

* cabinets use item slots

* fix yaml

* fix tests
This commit is contained in:
Leon Friedrich
2021-10-06 08:55:45 +11:00
committed by GitHub
parent d2748d1e59
commit 6f50dd2f7b
14 changed files with 164 additions and 277 deletions

View File

@@ -29,7 +29,7 @@ namespace Content.Server.PDA
SubscribeLocalEvent<PDAComponent, MapInitEvent>(OnMapInit);
SubscribeLocalEvent<PDAComponent, ActivateInWorldEvent>(OnActivateInWorld);
SubscribeLocalEvent<PDAComponent, UseInHandEvent>(OnUse);
SubscribeLocalEvent<PDAComponent, ItemSlotChanged>(OnItemSlotChanged);
SubscribeLocalEvent<PDAComponent, ItemSlotChangedEvent>(OnItemSlotChanged);
SubscribeLocalEvent<PDAComponent, LightToggleEvent>(OnLightToggle);
SubscribeLocalEvent<PDAComponent, UplinkInitEvent>(OnUplinkInit);
@@ -53,7 +53,7 @@ namespace Content.Server.PDA
// if pda prototype doesn't have slots, ID will drop down on ground
var idCard = EntityManager.SpawnEntity(pda.StartingIdCard, pda.Owner.Transform.Coordinates);
if (EntityManager.TryGetComponent(uid, out SharedItemSlotsComponent? itemSlots))
_slotsSystem.TryInsertContent(itemSlots, idCard, PDAComponent.IDSlotName);
_slotsSystem.TryInsertContent(itemSlots, idCard, pda.IdSlot);
}
}
@@ -71,10 +71,10 @@ namespace Content.Server.PDA
args.Handled = OpenUI(pda, args.User);
}
private void OnItemSlotChanged(EntityUid uid, PDAComponent pda, ItemSlotChanged args)
private void OnItemSlotChanged(EntityUid uid, PDAComponent pda, ItemSlotChangedEvent args)
{
// check if ID slot changed
if (args.SlotName == PDAComponent.IDSlotName)
if (args.SlotName == pda.IdSlot)
{
var item = args.ContainedItem;
if (item == null || !EntityManager.TryGetComponent(item.Value, out IdCardComponent ? idCard))
@@ -82,7 +82,7 @@ namespace Content.Server.PDA
else
pda.ContainedID = idCard;
}
else if (args.SlotName == PDAComponent.PenSlotName)
else if (args.SlotName == pda.PenSlot)
{
var item = args.ContainedItem;
pda.PenInserted = item != null;
@@ -162,14 +162,12 @@ namespace Content.Server.PDA
case PDAEjectIDMessage _:
{
if (pda.Owner.TryGetComponent(out SharedItemSlotsComponent? itemSlots))
_slotsSystem.TryEjectContent(itemSlots, PDAComponent.IDSlotName, msg.Session.AttachedEntity);
_slotsSystem.TryEjectContent(pda.Owner.Uid, pda.IdSlot, msg.Session.AttachedEntity);
break;
}
case PDAEjectPenMessage _:
{
if (pda.Owner.TryGetComponent(out SharedItemSlotsComponent? itemSlots))
_slotsSystem.TryEjectContent(itemSlots, PDAComponent.PenSlotName, msg.Session.AttachedEntity);
_slotsSystem.TryEjectContent(pda.Owner.Uid, pda.PenSlot, msg.Session.AttachedEntity);
break;
}
case PDAShowUplinkMessage _: