public override void SetCraftingBlueprint(CraftingBlueprint blueprint) { base.SetCraftingBlueprint(blueprint); if (window.isVisible == false) { return; } blueprintRequiredItemsPool.DestroyAll(); foreach (var item in blueprint.requiredItems) { var ui = blueprintRequiredItemsPool.Get(); item.item.currentStackSize = (uint)item.amount; ui.transform.SetParent(blueprintRequiredItemsContainer); InventoryUtility.ResetTransform(ui.transform); ui.item = item.item; if (InventoryManager.GetItemCount(item.item.ID, currentCategory.alsoScanBankForRequiredItems) >= item.amount) { ui.icon.color = itemsAvailableColor; } else { ui.icon.color = itemsNotAvailableColor; } ui.Repaint(); item.item.currentStackSize = 1; // Reset } }
void IUpdateSystem.OnUpdate() { if (_events.Items.Count == 0) { return; } for (int listenerIndex = 0; listenerIndex < _listeners.Items.Count; listenerIndex++) { var listener = _listeners.Items[listenerIndex]; for (int i = 0; i < _events.Items.Count; i++) { listener.value.OnEvent(_events.Items[i]); } } _events.DestroyAll(); }
public override void SetCraftingCategory(CraftingCategory category) { // if (currentCategory == category) // { // return; // } base.SetCraftingCategory(category); categoryPool.DestroyAll(); blueprintPool.DestroyAll(); if (blueprintCraftAmountInput != null) { blueprintCraftAmountInput.text = "1"; // Reset } if (currentCategoryTitle != null) { currentCategoryTitle.text = category.name; } if (currentCategoryDescription != null) { currentCategoryDescription.text = category.description; } if (noBlueprintSelectedPage != null) { noBlueprintSelectedPage.Show(); } // var blueprints = GetBlueprints(category); // if (blueprintCraftPage != null && blueprints.Length > 0) // { // SetBlueprint(blueprints[0]); // Select first blueprint // blueprintCraftPage.Show(); // } ItemCategory lastItemCategory = null; Button firstButton = null; foreach (var b in GetBlueprints(category)) { if (b.playerLearnedBlueprint == false) { continue; } var blueprintObj = blueprintPool.Get(); blueprintObj.transform.SetParent(blueprintsContainer); InventoryUtility.ResetTransform(blueprintObj.transform); blueprintObj.Repaint(b); if (blueprintCategoryPrefab != null) { Assert.IsTrue(b.resultItems.Length > 0, "No reward items set"); var item = b.resultItems.First().item; Assert.IsNotNull(item, "Empty reward row on blueprint!"); if (lastItemCategory != item.category) { lastItemCategory = item.category; var uiCategory = categoryPool.Get(); uiCategory.Repaint(category, item.category); uiCategory.transform.SetParent(blueprintsContainer); blueprintObj.transform.SetParent(uiCategory.container); InventoryUtility.ResetTransform(uiCategory.transform); InventoryUtility.ResetTransform(blueprintObj.transform); } } if (firstButton == null) { firstButton = blueprintObj.button; } var bTemp = b; // Store capture list, etc. blueprintObj.button.onClick.AddListener(() => { currentBlueprint = bTemp; SetCraftingBlueprint(currentBlueprint); if (blueprintCraftPage != null && blueprintCraftPage.isVisible == false) { blueprintCraftPage.Show(); } }); } if (firstButton != null) { firstButton.Select(); } }