public static int CountTotalOfEach(Item[] collection, ISet <int> itemTypes)
        {
            var set   = ItemFinderHelpers.FindIndexOfEach(collection, itemTypes);
            int total = 0;

            foreach (int idx in set)
            {
                total += collection[idx].stack;
            }
            return(total);
        }
        public static Item FindFirstPlayerItemOfType(Player player, int itemType)
        {
            Item item = ItemFinderHelpers.FindFirstItemOfType(player.inventory, itemType);

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

            if (player.chest >= 0)                  // Player's current chest
            {
                item = ItemFinderHelpers.FindFirstItemOfType(Main.chest[player.chest].item, itemType);
                if (item != null)
                {
                    return(item);
                }
            }
            if (player.chest == -2)                 // Piggy bank
            {
                item = ItemFinderHelpers.FindFirstItemOfType(player.bank.item, itemType);
                if (item != null)
                {
                    return(item);
                }
            }
            if (player.chest == -3)                 // Safe
            {
                item = ItemFinderHelpers.FindFirstItemOfType(player.bank2.item, itemType);
                if (item != null)
                {
                    return(item);
                }
            }
            if (player.chest == -4)                 // ..whatever this is
            {
                item = ItemFinderHelpers.FindFirstItemOfType(player.bank3.item, itemType);
                if (item != null)
                {
                    return(item);
                }
            }

            return(null);
        }