Exemplo n.º 1
0
        public void Enable(City city, Building building, GUIMaster gui)
        {
            //this.city = city;
            this.building = building;
            this.gui      = gui;

            // Clear lists
            foreach (VerticalLayoutGroup districtPanel in districtList.GetComponentsInChildren <VerticalLayoutGroup>())
            {
                if (districtPanel.gameObject.name != "District List")
                {
                    Destroy(districtPanel.gameObject);
                }
            }

            // Load all districts
            // Foreach instantiate district panel prefab
            for (int i = 0; i < city.Districts.Count; i++)
            {
                District            district      = city.Districts[i];
                VerticalLayoutGroup districtPanel = Instantiate(districtPanelPrefab);
                districtPanel.transform.SetParent(districtList.transform);
                districtPanel.GetComponentInChildren <Text>().text = district.Name;
                Button districtButton = districtPanel.GetComponentInChildren <Button>();
                districtButton.onClick.AddListener(() => SelectDistrict(district, districtButton));

                // Load building slots
                // Foreach instantiate building slot prefab
                VerticalLayoutGroup slotList = districtPanel.GetComponentsInChildren <VerticalLayoutGroup>()[1];
                slotList.gameObject.SetActive(true);
                foreach (Building b in district.Buildings)
                {
                    RectTransform slot = Instantiate(buildingSlotPrefab);
                    string        name = "Empty";
                    if (b != null)
                    {
                        name = b.ID; // TODO: Change to building.Name
                    }
                    slot.GetComponentInChildren <Text>().text = name;
                    slot.SetParent(slotList.transform);
                }

                if (district.Buildings.Count == 0)
                {
                    slotList.gameObject.SetActive(false);
                }
            }

            confirmButton.interactable = false;
            gameObject.SetActive(true);
        }