public bool AddItemFromSource(IItemSource itemSource)
    {
        if (itemSource == null)
        {
            return(false);
        }

        if (!itemSource.ItemsAvailable() || !itemSource.AllowYieldWithEquippedItem(itemEquipper.EquippedItem?.Type))
        {
            if (wrongItemEquippedSound)
            {
                AudioSource.PlayClipAtPoint(wrongItemEquippedSound, transform.position);
            }
            return(false);
        }

        IItem item = itemSource.YieldItem();

        if (item == null)
        {
            return(false);
        }

        if (pickupSound)
        {
            AudioSource.PlayClipAtPoint(pickupSound, transform.position);
        }

        AddToInventory(item);
        return(true);
    }