public void UpdateOnItemInInventory(ItemStack itemToUpdate, bool removeItem) { if (instantiatedGameObjects == null) { instantiatedGameObjects = new List <InventoryItemFiller>(); } if (removeItem) { if (instantiatedGameObjects.Exists(o => o.currentItem == itemToUpdate)) { int index = instantiatedGameObjects.FindIndex(o => o.currentItem == itemToUpdate); instantiatedGameObjects[index].gameObject.SetActive(false); } } else { int index = 0; //if the item has already been created if (instantiatedGameObjects.Exists(o => o.currentItem == itemToUpdate)) { index = instantiatedGameObjects.FindIndex(o => o.currentItem == itemToUpdate); } //if the item needs to be created else { //if the new item needs to be instantiated if (currentInventory.Items.Count > instantiatedGameObjects.Count) { //instantiate InventoryItemFiller instantiatedPrefab = Instantiate(itemPrefab, contentParent.transform) as InventoryItemFiller; instantiatedGameObjects.Add(instantiatedPrefab); } //find the last instantiated game object not used index = currentInventory.Items.Count; } //set item bool isSelected = selectedItemId == index; instantiatedGameObjects[index].SetItem(itemToUpdate, isSelected, SelectItemEvent); instantiatedGameObjects[index].gameObject.SetActive(true); } }
void FillItems(List <ItemStack> listItemsToShow) { if (_instanciatedItems == null) { _instanciatedItems = new List <InventoryItemFiller>(); } int maxCount = Mathf.Max(listItemsToShow.Count, _instanciatedItems.Count); for (int i = 0; i < maxCount; i++) { if (i < listItemsToShow.Count) { if (i >= _instanciatedItems.Count) { //instantiate InventoryItemFiller instantiatedPrefab = Instantiate(_itemPrefab, _contentParent.transform) as InventoryItemFiller; _instanciatedItems.Add(instantiatedPrefab); } //fill bool isSelected = selectedItemId == i; _instanciatedItems[i].SetItem(listItemsToShow[i], isSelected, _selectItemEvent); } else if (i < _instanciatedItems.Count) { //Desactive _instanciatedItems[i].SetInactiveItem(); } } HideItemInformation(); //unselect selected Item if (selectedItemId >= 0) { UnselectItem(selectedItemId); selectedItemId = -1; } //hover First Element if (_instanciatedItems.Count > 0) { _instanciatedItems[0].SelectFirstElement(); } }
void FillItems(List <ItemStack> listItemsToShow) { if (instantiatedGameObjects == null) { instantiatedGameObjects = new List <InventoryItemFiller>(); } int maxCount = Mathf.Max(listItemsToShow.Count, instantiatedGameObjects.Count); for (int i = 0; i < maxCount; i++) { if (i < listItemsToShow.Count) { if (i >= instantiatedGameObjects.Count) { //instantiate InventoryItemFiller instantiatedPrefab = Instantiate(itemPrefab, contentParent.transform) as InventoryItemFiller; instantiatedGameObjects.Add(instantiatedPrefab); } //fill bool isSelected = selectedItemId == i; instantiatedGameObjects[i].SetItem(listItemsToShow[i], isSelected, SelectItemEvent); instantiatedGameObjects[i].gameObject.SetActive(true); } else if (i < instantiatedGameObjects.Count) { //Desactive instantiatedGameObjects[i].gameObject.SetActive(false); } } HideItemInformation(); //unselect selected Item if (selectedItemId >= 0) { UnselectItem(selectedItemId); selectedItemId = -1; } }