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); }
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); }
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]); } }
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(); }
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()); }
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); } }
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]); } }
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++; } }
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; } }
private void UpdateInteractableStateClimateBuilding(BuildingBase building, ClimateBuildingsData data) { UpdateInteractableStateClimateBuilding(); }