void OnItemLooted(string itemName, int quantity) { Item item = ItemManager.instance.itemsData.GetItemByName(itemName); ItemHUD itemHUD = itemHUDs.Find((itemHUD) => itemHUD.ItemNameKey == item.ItemNameKey); if (itemHUD != null) { itemHUD.UpdateQuantity(quantity); } else { itemHUD = Instantiate(itemHUDPrefab); itemHUD.transform.SetParent(transform, false); itemHUD.Init(item, quantity); itemHUDs.Add(itemHUD); } }
public bool AddItem(Item item) { if (items.ContainsKey(item.Name) == false) { if (numItemTypes < MaxNumItemTypes) { numItemTypes++; items.Add(item.Name, 1); } else { DebugLog.Print(DebugLog.LogType.Warning, "cannot add item. inventory is full."); return(false); } } else { items[item.Name]++; } if (itemHUDs.ContainsKey(item.Name) == false) { GameObject newItemHUD = Instantiate(ItemHUDPrefab.gameObject, Holder); ItemHUD itemHUD = newItemHUD.GetComponent <ItemHUD>(); itemHUD.Initialize(item, items[item.Name]); itemHUDs.Add(item.Name, itemHUD); } else { itemHUDs[item.Name].SetNum(items[item.Name]); } if (itemPrefabs.ContainsKey(item.Name) == false) { itemPrefabs.Add(item.Name, item); } if (OnItemAdded != null) { OnItemAdded(item); } return(true); }