示例#1
0
 public void RaiseEvent(InventoryTabSO item)
 {
     if (OnEventRaised != null)
     {
         OnEventRaised.Invoke(item);
     }
 }
示例#2
0
    public void FillInventory(InventoryTabType _selectedTabType = InventoryTabType.CookingItem, bool isNearPot = false)
    {
        _isNearPot = isNearPot;

        if ((_tabTypesList.Exists(o => o.TabType == _selectedTabType)))
        {
            _selectedTab = _tabTypesList.Find(o => o.TabType == _selectedTabType);
        }
        else
        {
            if (_tabTypesList != null)
            {
                if (_tabTypesList.Count > 0)
                {
                    _selectedTab = _tabTypesList[0];
                }
            }
        }

        if (_selectedTab != null)
        {
            SetTabs(_tabTypesList, _selectedTab);
            List <ItemStack> listItemsToShow = new List <ItemStack>();
            listItemsToShow = _currentInventory.Items.FindAll(o => o.Item.ItemType.TabType == _selectedTab);

            FillInvetoryItems(listItemsToShow);
        }
        else
        {
            Debug.LogError("There's no selected tab");
        }
    }
示例#3
0
    public void SetTab(InventoryTabSO tabType, bool isSelected)
    {
        _currentTabType  = tabType;
        _tabImage.sprite = tabType.TabIcon;

        UpdateState(isSelected);
    }
示例#4
0
 public void ChangeTabSelection(InventoryTabSO selectedType)
 {
     for (int i = 0; i < _instantiatedGameObjects.Count; i++)
     {
         bool isSelected = _instantiatedGameObjects[i]._currentTabType == selectedType;
         //fill
         _instantiatedGameObjects[i].UpdateState(isSelected);
     }
 }
示例#5
0
    public void SetTabs(List <InventoryTabSO> typesList, InventoryTabSO selectedType)
    {
        if (_instantiatedGameObjects == null)
        {
            _instantiatedGameObjects = new List <UIInventoryTab>();
        }

        if (gameObject.GetComponent <VerticalLayoutGroup>() != null)
        {
            gameObject.GetComponent <VerticalLayoutGroup>().enabled = true;
        }


        int maxCount = Mathf.Max(typesList.Count, _instantiatedGameObjects.Count);

        for (int i = 0; i < maxCount; i++)
        {
            if (i < typesList.Count)
            {
                if (i >= _instantiatedGameObjects.Count)
                {
                    Debug.LogError("Maximum tabs reached");
                }
                bool isSelected = typesList[i] == selectedType;
                //fill
                _instantiatedGameObjects[i].SetTab(typesList[i], isSelected);
                _instantiatedGameObjects[i].gameObject.SetActive(true);
                _instantiatedGameObjects[i].TabClicked += ChangeTab;
            }
            else if (i < _instantiatedGameObjects.Count)
            {
                //Desactive
                _instantiatedGameObjects[i].gameObject.SetActive(false);
            }
        }
        if (isActiveAndEnabled)         // check if the game object is active and enabled so that we could start the coroutine.
        {
            StartCoroutine(waitBeforeDesactiveLayout());
        }
        else         // if the game object is inactive, disabling the layout will happen on onEnable
        {
            canDisableLayout = true;
        }
    }
示例#6
0
 void OnChangeTab(InventoryTabSO tabType)
 {
     FillInventory(tabType.TabType, _isNearPot);
 }
示例#7
0
 void SetTabs(List <InventoryTabSO> typesList, InventoryTabSO selectedType)
 {
     _tabsPanel.SetTabs(typesList, selectedType);
 }
示例#8
0
 void ChangeTab(InventoryTabSO newTabType)
 {
     TabChanged.Invoke(newTabType);
 }
示例#9
0
 void OnChangeTab(InventoryTabSO tabType)
 {
     FillInventory(tabType.TabType);
 }