Пример #1
0
    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
    }
Пример #2
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;
                }
            }
        }
    }