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