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();
            }
        }
Exemple #2
0
        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();
            }
        }