Terraria.ModLoader.PlayerHooks.SetupStartInventory C# (CSharp) Method

SetupStartInventory() public static method

public static SetupStartInventory ( Player player ) : IList
player Player
return IList
        public static IList<Item> SetupStartInventory(Player player)
        {
            IList<Item> items = new List<Item>();
            Item item = new Item();
            item.SetDefaults("Copper Shortsword");
            item.Prefix(-1);
            items.Add(item);
            item = new Item();
            item.SetDefaults("Copper Pickaxe");
            item.Prefix(-1);
            items.Add(item);
            item = new Item();
            item.SetDefaults("Copper Axe");
            item.Prefix(-1);
            items.Add(item);
            foreach (ModPlayer modPlayer in player.modPlayers)
            {
                modPlayer.SetupStartInventory(items);
            }
            IDictionary<int, int> counts = new Dictionary<int, int>();
            foreach (Item item0 in items)
            {
                if (item0.maxStack > 1)
                {
                    if (!counts.ContainsKey(item0.netID))
                    {
                        counts[item0.netID] = 0;
                    }
                    counts[item0.netID] += item0.stack;
                }
            }
            int k = 0;
            while (k < items.Count)
            {
                bool flag = true;
                int id = items[k].netID;
                if (counts.ContainsKey(id))
                {
                    items[k].stack = counts[id];
                    if (items[k].stack > items[k].maxStack)
                    {
                        items[k].stack = items[k].maxStack;
                    }
                    counts[id] -= items[k].stack;
                    if (items[k].stack <= 0)
                    {
                        items.RemoveAt(k);
                        flag = false;
                    }
                }
                if (flag)
                {
                    k++;
                }
            }
            return items;
        }