Fix quick-swap stacks of items (#32560)
* remove picking up stack on quick swap * better
This commit is contained in:
@@ -5,6 +5,7 @@ using Content.Shared.Hands.EntitySystems;
|
|||||||
using Content.Shared.Input;
|
using Content.Shared.Input;
|
||||||
using Content.Shared.Inventory;
|
using Content.Shared.Inventory;
|
||||||
using Content.Shared.Popups;
|
using Content.Shared.Popups;
|
||||||
|
using Content.Shared.Stacks;
|
||||||
using Content.Shared.Storage;
|
using Content.Shared.Storage;
|
||||||
using Content.Shared.Storage.EntitySystems;
|
using Content.Shared.Storage.EntitySystems;
|
||||||
using Content.Shared.Whitelist;
|
using Content.Shared.Whitelist;
|
||||||
@@ -151,8 +152,13 @@ public sealed class SmartEquipSystem : EntitySystem
|
|||||||
_hands.TryDrop(uid, hands.ActiveHand, handsComp: hands);
|
_hands.TryDrop(uid, hands.ActiveHand, handsComp: hands);
|
||||||
_storage.Insert(slotItem, handItem.Value, out var stacked, out _);
|
_storage.Insert(slotItem, handItem.Value, out var stacked, out _);
|
||||||
|
|
||||||
if (stacked != null)
|
// if the hand item stacked with the things in inventory, but there's no more space left for the rest
|
||||||
_hands.TryPickup(uid, stacked.Value, handsComp: hands);
|
// 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;
|
return;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user