Example #1
0
    private void CreateNewUpdateViewPanel(C_ItemAmount itemAmount)
    {
        //Debug.Log("Create new update view for " + itemAmount.item.itemName);
        if (itemUpdateView.newitempanel_Parent != null)
        {
            //select the default panel as prefab
            GameObject newPanelPrefab = itemUpdateView.newItemPanel_Prefab;
            //if the item has an override panel, override the prefab with the specific one
            if (itemAmount != null)
            {
                if (itemAmount.item != null)
                {
                    if (itemAmount.item.newItemOverridePanel != null)
                    {
                        newPanelPrefab = itemAmount.item.newItemOverridePanel;
                        //Debug.Log("selecting " + newPanelPrefab.name);
                    }
                }
            }

            if (newPanelPrefab != null)
            {
                // Debug.Log("spawning " + newPanelPrefab.name);
                itemUpdateView.spawnedNewItemPanel = (GameObject)Instantiate(newPanelPrefab);
                itemUpdateView.spawnedNewItemPanel.transform.SetParent(itemUpdateView.newitempanel_Parent.transform, false);
                itemUpdateView.uiItem = itemUpdateView.spawnedNewItemPanel.GetComponent <Inventory_UIItem>();

                if (itemUpdateView.uiItem == null)
                {
                    Debug.LogWarning("The 'Inventory_UIItem' script is missing at the spawned prefab '" + newPanelPrefab.ToString() + "'. The panel can't be shown.");
                }
            }
        }
    }
Example #2
0
    /// <summary>
    /// Add a specific amount of items to the inventory. Negative numbers remove items.
    /// </summary>
    /// <param name="item"></param>
    /// <param name="amount"></param>
    public void AddItemAmount(InventoryItem item, int amount)
    {
        mDebug("Add " + amount.ToString() + "x '" + item.name + "'.");
        C_ItemAmount ia = GetItemByKey(item.name);

        if (ia != null)
        {
            ia.amount += amount;

            if (ia.amount > ia.item.maxItems)
            {
                ia.amount = ia.item.maxItems;
                GenerateItemEvent(item, E_ItemEventType.itemsOverMax);
                GenerateCategoryEvent(item.category, E_ItemEventType.itemsOverMax);
            }


            //Item decrease event can only be fired if the item exists with an amount:
            if (amount < 0)
            {
                GenerateItemEvent(item, E_ItemEventType.decreased);
                GenerateCategoryEvent(item.category, E_ItemEventType.decreased);
            }
        }
        else
        {
            //create a new item
            ia         = new C_ItemAmount();
            ia.item    = item;
            ia.amount  = amount;
            ia.itemKey = item.name;        //using the name of the scriptableObject as key
            inventory.items.Add(ia);
        }

        //Item increase event can be fired if added amount is bigger than 0
        if (amount > 0)
        {
            GenerateItemEvent(item, E_ItemEventType.increased);
            GenerateCategoryEvent(item.category, E_ItemEventType.increased);

            //show the new added item for the user
            C_ItemAmount newItemAmount = new C_ItemAmount();
            newItemAmount.item   = ia.item;
            newItemAmount.amount = amount;
            itemUpdateView.newItems.Add(newItemAmount);
            StartCoroutine(ShowNewItems());
        }

        //remove the item, if the amount is 0
        if (ia.amount <= 0)
        {
            RemoveItem(item.name);
        }

        inventoryChanged();
        save();
    }
Example #3
0
    public int GetItemCount(string key)
    {
        C_ItemAmount i = GetItemByKey(key);

        if (i != null)
        {
            return(i.amount);
        }
        return(0);
    }
Example #4
0
    public void SelectItem(C_ItemAmount ia)
    {
        itemDetailView.selectedElement = ia;
        if (itemDetailView.ActivatePanelOnSelection == true)
        {
            //destroy already active detail views
            if (itemDetailView.spawnedDetailViewPanel != null)
            {
                Destroy(itemDetailView.spawnedDetailViewPanel);
            }

            CreateNewDetailViewPanel(ia);
        }
        if (itemDetailView.uiItem != null)
        {
            itemDetailView.uiItem.SetItem(ia);
        }
    }