// CONSTRUCTOR & UPDATER: ----------------------------------------------------------------- public override void Setup(ContainerUIManager containerUIManager, object item) { base.Setup(containerUIManager, item); this.containerData = item as Container.ItemData; this.item = InventoryManager.Instance.itemsCatalogue[this.containerData.uuid]; this.UpdateUI(); }
public void GetAllItemsFromContainer() { List <Container.ItemData> items = this.currentContainer.GetItems(); for (int i = 0; i < items.Count; ++i) { Container.ItemData item = items[i]; InventoryManager.Instance.AddItemToInventory(item.uuid, item.amount); this.currentContainer.RemoveItem(item.uuid, item.amount); } this.onTakeAll.Invoke(); }
public override bool InstantExecute(GameObject target, IAction[] actions, int index) { Container cont = this.GetContainer(target); if (cont == null) { return(true); } List <Container.ItemData> items = cont.GetItems(); for (int i = 0; i < items.Count; ++i) { Container.ItemData item = items[i]; InventoryManager.Instance.AddItemToInventory(item.uuid, item.amount); cont.RemoveItem(item.uuid, item.amount); } return(true); }
// PRIVATE CONTAINER METHODS: ------------------------------------------------------------- private void UpdateContainerItems(int itemID = 0, int amount = 0) { Dictionary <int, ContainerUIItemBox> remainingItems = null; remainingItems = new Dictionary <int, ContainerUIItemBox>(this.containerItems); List <Container.ItemData> items = this.currentContainer.GetItems(); for (int i = 0; i < items.Count; ++i) { Container.ItemData currentItem = items[i]; if (currentItem.amount <= 0) { continue; } if (this.containerItems.ContainsKey(currentItem.uuid)) { this.containerItems[currentItem.uuid].UpdateUI(); remainingItems.Remove(currentItem.uuid); } else { GameObject itemUIPrefab = this.itemUIPrefabContainer; GameObject itemUIAsset = Instantiate(itemUIPrefab, this.scrollContainer.content); ContainerUIItemBox itemUI = itemUIAsset.GetComponent <ContainerUIItemBox>(); itemUI.Setup(this, currentItem); this.containerItems.Add(currentItem.uuid, itemUI); } } foreach (KeyValuePair <int, ContainerUIItemBox> entry in remainingItems) { this.containerItems.Remove(entry.Key); Destroy(entry.Value.gameObject); } }