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(); } }