Beispiel #1
0
        public void SelectBuildingToBuild(BuildingButtonTemplate buttonTemplate, int id)
        {
            selectedID = id;
            buildButton.onClick.RemoveAllListeners();

            if (selectedTemplate != null)
            {
                selectedTemplate.selected = false;
                selectedTemplate.CloseTooltip();
            }

            selectedTemplate          = buttonTemplate;
            selectedTemplate.selected = true;

            selectedTemplate.OpenTooltip();
            if (selectedID == -1)
            {
                buildButton.GetComponent <Image>().color = new Color32(255, 255, 255, 60);
                buildButton.GetComponentInChildren <TMPro.TextMeshProUGUI>().color = new Color32(255, 255, 255, 60);
            }
            else
            {
                buildButton.GetComponent <Image>().color = Color.white;
                buildButton.GetComponentInChildren <TMPro.TextMeshProUGUI>().color = Color.white;
                buildButton.onClick.AddListener(() =>
                {
                    buildingManager.StartBuildMode(id);
                    CloseMenu();
                });
            }
        }
Beispiel #2
0
        public void InitializePanels(int category)
        {
            buildButton.onClick.RemoveAllListeners();

            selectedID       = -1;
            selectedCategory = (BuildingCategory)category;

            List <BlueprintIdPair> buildingBlueprints = new List <BlueprintIdPair>();

            for (int i = 0; i < unlockedBuildings.Count; i++)
            {
                if (registry.BuildingRegistry[unlockedBuildings[i]].type == selectedCategory)
                {
                    buildingBlueprints.Add(new BlueprintIdPair(unlockedBuildings[i], registry.BuildingRegistry[unlockedBuildings[i]]));
                }
            }

            if (buildingBlueprints.Count == 0)
            {
                return;
            }

            for (int i = 0; i < 3; i++)
            {
                BlueprintIdPair[] tieredBlueprints = buildingBlueprints.Where(b => b.blueprint.tier == i + 1).ToArray();
                RectTransform     parentPanel      = panels[i];

                List <BuildingButtonTemplate> buttonTemplates = new List <BuildingButtonTemplate>();
                buttonTemplates.AddRange(parentPanel.GetComponentsInChildren <BuildingButtonTemplate>());

                int lengthDifference = tieredBlueprints.Length - buttonTemplates.Count;

                for (int diff = lengthDifference; diff < 0; diff++)
                {
                    buttonTemplates[tieredBlueprints.Length - (diff + 1)].gameObject.SetActive(false);
                }

                for (int h = 0; h < lengthDifference; h++)
                {
                    BuildingButtonTemplate newTemplate = Instantiate(template, parentPanel);
                    buttonTemplates.Add(newTemplate);
                }

                for (int j = 0; j < buttonTemplates.Count; j++)
                {
                    buttonTemplates[i].Initialize(this, tieredBlueprints[i].blueprint, tieredBlueprints[i].id);
                }

                SelectBuildingToBuild(-1);
            }
        }