Fix quick-swap stacks of items (#32560)

* remove picking up stack on quick swap

* better
This commit is contained in:
Plykiya
2024-10-01 22:27:01 -07:00
committed by GitHub
parent cfc723e3f8
commit 2a07e4666a

View File

@@ -5,6 +5,7 @@ using Content.Shared.Hands.EntitySystems;
using Content.Shared.Input;
using Content.Shared.Inventory;
using Content.Shared.Popups;
using Content.Shared.Stacks;
using Content.Shared.Storage;
using Content.Shared.Storage.EntitySystems;
using Content.Shared.Whitelist;
@@ -151,8 +152,13 @@ public sealed class SmartEquipSystem : EntitySystem
_hands.TryDrop(uid, hands.ActiveHand, handsComp: hands);
_storage.Insert(slotItem, handItem.Value, out var stacked, out _);
if (stacked != null)
_hands.TryPickup(uid, stacked.Value, handsComp: hands);
// if the hand item stacked with the things in inventory, but there's no more space left for the rest
// of the stack, place the stack back in hand rather than dropping it on the floor
if (stacked != null && !_storage.CanInsert(slotItem, handItem.Value, out _))
{
if (TryComp<StackComponent>(handItem.Value, out var handStack) && handStack.Count > 0)
_hands.TryPickup(uid, handItem.Value, handsComp: hands);
}
return;
}