private void Select_Tab(Building.UI_Category tab)
 {
     if (Map.Instance.State != Map.MapState.Normal)
     {
         return;
     }
     if (!Active)
     {
         Active = true;
     }
     foreach (KeyValuePair <Building.UI_Category, GameObject> pair in tabs)
     {
         pair.Value.SetActive(pair.Key == tab);
     }
     Scroll_Content.GetComponent <RectTransform>().SetSizeWithCurrentAnchors(RectTransform.Axis.Horizontal, tab_sizes[tab]);
 }
    /// <summary>
    /// Returns list of building belonging to specified category
    /// </summary>
    /// <param name="category"></param>
    /// <returns></returns>
    public static List <Building> Get_By_Category(Building.UI_Category category)
    {
        if (prototypes == null)
        {
            Initialize();
        }
        List <Building> list = new List <Building>();

        foreach (KeyValuePair <string, Building> pair in prototypes)
        {
            if (pair.Value.Category == category)
            {
                list.Add(pair.Value);
            }
        }
        return(list);
    }
Exemple #3
0
    /// <summary>
    /// Opens a building tab on bottom menu
    /// </summary>
    /// <param name="tab"></param>
    public void Open_Tab(Building.UI_Category tab)
    {
        if (Game.Instance.State != Game.GameState.RUNNING)
        {
            //No building menu access if game is not running
            Show_Message("Start new game from menu: Game -> New");
            return;
        }
        if (tab == open_building_tab)
        {
            //Same tab -> hide menu
            bottom_menu_rectangle_transform.Translate(new Vector3(0.0f, -bottom_menu_height, 0.0f));
            tab_buttons[(Building.UI_Category)open_building_tab].GetComponent <Image>().color = Color.white;
            foreach (Building building in BuildingPrototypes.Get_By_Category((Building.UI_Category)open_building_tab))
            {
                building_buttons[building.Name].gameObject.SetActive(false);
            }
            open_building_tab = null;
            Hide_Building_Info();
            BuildingPrototypes.Currently_Selected = null;
            return;
        }
        else if (open_building_tab == null)
        {
            //Show menu
            bottom_menu_rectangle_transform.Translate(new Vector3(0.0f, bottom_menu_height, 0.0f));
        }

        if (open_building_tab != null)
        {
            //Hide buildings in old tab
            tab_buttons[(Building.UI_Category)open_building_tab].GetComponent <Image>().color = Color.white;
            foreach (Building building in BuildingPrototypes.Get_By_Category((Building.UI_Category)open_building_tab))
            {
                building_buttons[building.Name].gameObject.SetActive(false);
            }
        }
        open_building_tab = tab;
        //Show buildings in new tab
        foreach (Building building in BuildingPrototypes.Get_By_Category(tab))
        {
            building_buttons[building.Name].gameObject.SetActive(true);
        }
        tab_buttons[(Building.UI_Category)open_building_tab].GetComponent <Image>().color = Color.blue;
    }