public override void InitTab() { if (!m_IsInitialized) { Text_Title.text = FilterType.ToString(); m_Items = new Dictionary <DataTableItems.ItemTypes, UIElement_CraftItem>(); //Создать предметы for (int i = 0; i < (int)DataTableItems.ItemTypes.Max; i++) { //Получить тип предмета DataTableItems.ItemTypes type = (DataTableItems.ItemTypes)i; //Если предмет можно вывести в этой вкладке DataTableItems.Item itemData = DataTableItems.GetItemDataByType(type); if (itemData != null && itemData.MatchFilter(FilterType)) { //Создать объект UIElement_CraftItem item = Instantiate(GameManager.Instance.Manager_UI.WindowsManager.UIElement_CraftItemPrefab, ItemsParent); item.Init(type, DataManager.Instance.PlayerAccount.Inventory.GetItemAmount(type), GameManager.Instance.CraftItemFactory.GetProgressForItem(type), itemData.AllowAutocraft, itemData.RequiredItems); item.OnItemPress += Item_PressHanlder; item.OnAutoCraftToggled += ItemToggle_TryChangeValueHandle; //Добавить объект в словарь для последующего доступа if (!m_Items.ContainsKey(type)) { m_Items.Add(type, item); } //Если объект в очереди автодобывания if (GameManager.Instance.AutoCraftItemsController.ItemIsProcessing(type)) { item.Toggle_AutoCraft.SetValue(true); } } } base.InitTab(); } }
protected override void ItemCrafted_Handler(DataTableItems.ItemTypes craftedItemType) { base.ItemCrafted_Handler(craftedItemType); DataTableItems.Item itemData = DataTableItems.GetItemDataByType(craftedItemType); //Если созданный предмет удовлетворяет текущему фильтру - добавить население if (itemData.MatchFilter(ItemFilterTypes.Population)) { //Добавить население GameManager.Instance.Manager_Battle.PopulationManager.AddPopulation(craftedItemType); //Обновить локальную панель UpdatePopulationItems(); } else //Если был создан какой-то другой предмет - обновить текущее состояние вкладки { UpdateTabState(); } }