public void AddItemsToList() { int count = 0; int id = 0; bool query = false; bool addOne = false; if (resetCompleted == true) { inventoryDB = new InventoryDatabase(); inventoryDB.ReadJsonData(); } foreach (var item in inventoryDB.items) { id = item.id; Item checkItemsInStorage = inventoryDB.FetchItemByID(id); if (checkItemsInStorage.storage > 1 && checkItemsInStorage.id != -3 && checkItemsInStorage.id != -2 && count < slotAmount) { for (int i = 0; i < checkItemsInStorage.storage; i++) { InstantiateAddedItems(checkItemsInStorage.id); } count++; query = true; } if (checkItemsInStorage.storage == 1 && checkItemsInStorage.id != -3 && checkItemsInStorage.id != -2 && count < slotAmount) { for (int i = 0; i < checkItemsInStorage.storage; i++) { InstantiateAddedItems(checkItemsInStorage.id); count++; } query = true; } if (count == slotAmount) { inventoryFull = true; } } resetCompleted = false; if (query == false) { Debug.Log("No items in storage!"); resetCompleted = false; } // here you can test instantiate if all item storages are 0 }
public void AddItem(int id, int ammount = 1) { //grabs item from id and then adds it to inventory Item itemToAdd = database.FetchItemByID(id); //if stackable then add 1 to inventory if already inventory int tempIndex = CheckItemInInv(itemToAdd); if (itemToAdd.Stackable && tempIndex != -1) { ItemData data = InvSlots[tempIndex].transform.GetChild(0).GetComponent <ItemData>(); data.Ammout += ammount; data.transform.GetChild(0).GetComponent <Text>().text = data.Ammout.ToString(); return; } //if not stackable, add item to inventory according to the ammount given for (int j = 0; j < ammount; j++) { for (int i = 0; i < InvItems.Count; i++) { //adds item if there is a free spot if (InvItems[i].ID == -1) { InvItems[i] = itemToAdd; GameObject tempItem = Instantiate(InventoryItem); ItemData tempData = tempItem.GetComponent <ItemData>(); tempData._Item = itemToAdd; tempData.InvSlotID = i; tempData.InventoryMgr = this; tempItem.transform.SetParent(InvSlots[i].transform, false); break; } } } }