private void autoBuild(Building.TYPES iBuildingType) { // Find Building Spot BuildableSpot[] BSpots = BuildableMap.GetComponentsInChildren <BuildableSpot>(); BuildableSpot chosenSpot = null; foreach (BuildableSpot bs in BSpots) { if (bs.isAvailable()) { chosenSpot = bs; break; } } // Build actual Building GameObject createdGO = null; switch (iBuildingType) { case Building.TYPES.HOUSE: createdGO = Instantiate(HousePrefab); createdGO.transform.position = chosenSpot.transform.position; break; case Building.TYPES.STORAGE: createdGO = Instantiate(StoragePrefab); createdGO.transform.position = chosenSpot.transform.position; break; case Building.TYPES.FORT: createdGO = Instantiate(FortPrefab); createdGO.transform.position = chosenSpot.transform.position; break; case Building.TYPES.MARKET: createdGO = Instantiate(MarketPrefab); createdGO.transform.position = chosenSpot.transform.position; break; default: break; } if (!!createdGO) { Building building = createdGO.GetComponent <Building>(); attachedWorld.addBuilding(building); chosenSpot.buildingHolder = building; } }
private void tryBuildBuilding(Dictionary <Ressource.TYPE, int> iCost, Building.TYPES iBuildingType) { bool canBuild = true; foreach (Ressource.TYPE t in iCost.Keys) { canBuild = iCost[t] <= attachedWorld.ressource_table[t]; } if (canBuild) { autoBuild(iBuildingType); foreach (Ressource.TYPE t in iCost.Keys) { attachedWorld.ressource_table[t] -= iCost[t]; } } }