Exemplo n.º 1
0
        // 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();
        }
Exemplo n.º 2
0
        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();
        }
Exemplo n.º 3
0
        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);
        }
Exemplo n.º 4
0
        // 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);
            }
        }