コード例 #1
0
        private void InstantiateNewBuildingCostsPopup(BuildingBase building, ClimateBuildingsData data)
        {
            ProductionEffectPopup popup = Instantiate(effect, building.tilesStandingOn[0, 0].transform.position, effect.transform.rotation, transform);

            popup.transform.localRotation = effect.transform.rotation;
            popup.Init(building, data);
        }
コード例 #2
0
    public override bool Load()
    {
        ClimateBuildings targetData = target as ClimateBuildings;

        var    client = new DatabaseClient("", "");
        string error  = string.Empty;
        var    db     = client.GetDatabase(targetData.SheetName, ref error);
        var    table  = db.GetTable <ClimateBuildingsData>(targetData.WorksheetName) ?? db.CreateTable <ClimateBuildingsData>(targetData.WorksheetName);

        List <ClimateBuildingsData> myDataList = new List <ClimateBuildingsData>();

        var all = table.FindAll();

        foreach (var elem in all)
        {
            ClimateBuildingsData data = new ClimateBuildingsData();

            data = Cloner.DeepCopy <ClimateBuildingsData>(elem.Element);
            myDataList.Add(data);
        }

        targetData.dataArray = myDataList.ToArray();

        EditorUtility.SetDirty(targetData);
        AssetDatabase.SaveAssets();

        return(true);
    }
コード例 #3
0
        private void UpdateInfo(int id, System.Object data)
        {
            if (data.GetType() != typeof(ClimateBuildingsData))
            {
                return;
            }

            ClimateBuildingsData selectedBuildingData = data as ClimateBuildingsData;

            gameObject.SetActive(true);
            costGrid.transform.RemoveChildren();
            nameTxt.text        = selectedBuildingData.Name;
            descriptionTxt.text = selectedBuildingData.Description;

            // cost:
            Sprite sprite;

            if (selectedBuildingData.Moneycost > 0)
            {
                sprite = DataManager.ResourcePrefabs.MoneySprite;
                Instantiate(productItemPrefab, costGrid.transform).Init(sprite, selectedBuildingData.Moneycost, true);
            }

            for (int i = 0; i < selectedBuildingData.Resourcecost.Length; i++)
            {
                sprite = DataManager.ResourcePrefabs.GetResourceSprite(selectedBuildingData.Resourcecost[i]);
                Instantiate(productItemPrefab, costGrid.transform).Init(sprite, selectedBuildingData.Resourcecostamount[i], selectedBuildingData.Resourcecost[i]);
            }
        }
コード例 #4
0
 private void AddBuilding(BuildingBase building, ClimateBuildingsData data)
 {
     buildings.Add(building);
     // commented so winCondition doesn't get triggered when building a dike
     //if(OnBuildingListChanged != null)
     //    OnBuildingListChanged();
 }
コード例 #5
0
 public void Init(BuildingBase building, ClimateBuildingsData data)
 {
     transform.position = new Vector3(building.transform.position.x, building.tilesStandingOn[0, 0].transform.position.y + spawnHeight, building.transform.position.z);
     transform.SetAsFirstSibling();
     CreatePopupItems(data);
     StartCoroutine(Move());
     StartCoroutine(WaitForFade());
 }
コード例 #6
0
 private void FillGridBuildingData()
 {
     contentGrid.RemoveChildren();
     contentWidget.gameObject.SetActive(true);
     for (int i = 0; i < DataManager.ClimateBuildingData.dataArray.Length; i++)
     {
         ClimateBuildingsData data = DataManager.ClimateBuildingData.dataArray[i];
         bool correctClimate       = (data.Climate == Climate.None || data.Climate == City.Instance.ClimateType);
         Instantiate(itemPrefab, contentGrid).Init(i, climateBuildings, data, correctClimate, buildMode);
     }
 }
コード例 #7
0
        private void CreatePopupItems(ClimateBuildingsData data)
        {
            if (data.Moneycost != 0)
            {
                InstantiateNewPopupItem(DataManager.ResourcePrefabs.MoneySprite, -data.Moneycost);
            }

            for (int i = 0; i < data.Resourcecost.Length; i++)
            {
                GameResourcesData resource = DataManager.ResourcesData.dataArray[data.Resourcecost[i]];
                InstantiateNewPopupItem(DataManager.ResourcePrefabs.GetResourceSprite(resource.ID), -data.Resourcecostamount[i]);
            }
        }
コード例 #8
0
        public override void Init(object data, Tile[,] tilesStandingOn)
        {
            this.data            = data as ClimateBuildingsData;
            this.tilesStandingOn = tilesStandingOn;

            blocksStandingOn = new TerrainBlock[tilesStandingOn.Length];
            int index = 0;

            foreach (Tile tile in tilesStandingOn)
            {
                blocksStandingOn[index] = City.Instance.Terrain.GetTerrainBlock(tile.Coordinates);
                index++;
            }
        }
コード例 #9
0
        public void Init(int id, BuildingPrefabs prefab, ClimateBuildingsData data, bool isCorrectClimate, BuildModeBase buildMode)
        {
            this.id               = id;
            this.data             = data;
            this.isCorrectClimate = isCorrectClimate;
            img.sprite            = prefab.GetBuildingSprite(id);
            button.onClick.AddListener(() => buildMode.SelectBuilding(id));
            button.interactable = ClimateBuilding.IsBuildingBuildable(id);
            PlayerResources.OnResourceChanged += (x, y) => UpdateInteractableStateClimateBuilding();
            PlayerResources.OnMoneyChanged    += (x) => UpdateInteractableStateClimateBuilding();
            Construction.BuildModeClimateBuildings.OnBuildingPlaced += (x, y) => UpdateInteractableStateClimateBuilding();

            if (!isCorrectClimate)
            {
                button.interactable = false;
                img.color           = incorrectClimateColor;
            }
        }
コード例 #10
0
 private void UpdateInteractableStateClimateBuilding(BuildingBase building, ClimateBuildingsData data)
 {
     UpdateInteractableStateClimateBuilding();
 }