private void OnStackSplitted(ISlot slot)
        {
            ISlot emptySlot = slots.Find(s => s.IsEmpty);

            if (emptySlot != null)
            {
                int itemsToMoveNum = slot.SlotCount - slot.SlotCount / 2;
                slot.RemoveStackPortion(itemsToMoveNum);
                emptySlot.AddAll(slot.StoredItem, itemsToMoveNum);
            }
        }
        private void SwapSlots(ISlot fromSlot, ISlot toSlot)
        {
            ItemStats item1   = fromSlot.StoredItem;
            int       amount1 = fromSlot.SlotCount;
            ItemStats item2   = toSlot.StoredItem;
            int       amount2 = toSlot.SlotCount;

            fromSlot.DropAll();
            fromSlot.AddAll(item2, amount2);
            toSlot.DropAll();
            toSlot.AddAll(item1, amount1);
        }
 private void MoveToEmptySlot(ISlot fromSlot, ISlot toSlot)
 {
     toSlot.AddAll(fromSlot.StoredItem, fromSlot.SlotCount);
     fromSlot.DropAll();
 }