public static bool RemoveItemsThenAdd(ItemAmountRow[] itemsToAdd, params ItemAmountRow[] itemsToRemoveFirst) { RebuildCounter(); bool removeSucceeded = _counter.TryRemoveItems(itemsToRemoveFirst); if (removeSucceeded == false) { return(false); } var unAdded = _counter.TryAdd(itemsToAdd); if (unAdded.Length > 0) { return(false); } foreach (var item in itemsToRemoveFirst) { uint removed = RemoveItem(item.item.ID, item.amount, false); Assert.IsTrue(removed == item.amount, "Couldn't remove item even though check passed!"); } bool added = AddItems(InventoryItemUtility.RowsToItems(itemsToAdd, true)); Assert.IsTrue(added); return(true); }
public virtual void GiveCraftReward(CraftingProgressContainer.CraftInfo craftInfo) { var itemsToAdd = InventoryItemUtility.RowsToItems(craftInfo.blueprint.resultItems, true); #if UFPS_MULTIPLAYER foreach (var item in itemsToAdd) { var i = item as Devdog.InventoryPro.Integration.UFPS.UFPSInventoryItemBase; if (i != null && Devdog.InventoryPro.Integration.UFPS.Multiplayer.InventoryMPUFPSPickupManager.instance != null) { Devdog.InventoryPro.Integration.UFPS.Multiplayer.InventoryMPUFPSPickupManager.instance.InstantiateAndRegisterPickupOnAllClients(i); } } #endif if (craftInfo.storeItemsInCollection != null) { var before = craftInfo.storeItemsInCollection.canPutItemsInCollection; craftInfo.storeItemsInCollection.canPutItemsInCollection = true; bool added = craftInfo.storeItemsInCollection.AddItems(itemsToAdd); craftInfo.storeItemsInCollection.canPutItemsInCollection = before; Assert.IsTrue(added, "Couldn't add items even though check passed. Please report this error + stack trace."); } else { // Store crafted item bool added = InventoryManager.AddItems(itemsToAdd); Assert.IsTrue(added, "Couldn't add items even though check passed. Please report this error + stack trace."); } }
protected void Awake() { _items = InventoryItemUtility.RowsToItems(items, true); for (int i = 0; i < _items.Length; i++) { _items[i].transform.SetParent(transform); _items[i].gameObject.SetActive(false); } }