UPF/Assets/Game/Scripts/BuildingManager.cs
2022-10-10 18:10:53 +05:30

69 lines
2.1 KiB
C#

using System;
using EasyButtons;
using UnityEngine;
public class BuildingManager : MonoBehaviour
{
public static BuildingManager instance;
public Building[] buildings;
[Button]
void GetAllBuildings(){
buildings = FindObjectsOfType<Building>();
}
void Start()
{
instance =this;
DBmanager.OnStateChanged.AddListener(UpdateBuildings);
UpdateBuildings();
}
public async void UpdateBuildings(){
foreach (Building building in buildings){
if(!building.gameObject.activeSelf){
continue;
}
bool buildingExists = false;
foreach (BuildingState buildingState in DBmanager.buildingStates){
if(buildingState.id == building.buildingData.buildingName){
buildingExists =true;
}
}
if(!buildingExists){
await DBmanager.AddBuilding(building.buildingData);
}
}
foreach (Building building in buildings){
bool buildingExists = false;
foreach (BuildingState buildingState in DBmanager.buildingStates){
if(buildingState.id == building.buildingData.buildingName){
buildingExists =true;
building.curLevel = buildingState.level;
// building.transform.position = (buildingState.position != Vector3.zero) ? buildingState.position : building.transform.position;
building.lastCollected = buildingState.lastCollectedTimestamp;
break;
}
}
// building.gameObject.SetActive(buildingExists);
}
}
public void OnClickBuyBuilding(BuildingData buildingData){
DBmanager.AddBuilding(buildingData);
}
public Building GetBuildingWithId(string id){
foreach(Building building in buildings){
if(building.buildingData.buildingName == id){
return building;
}
}
return null;
}
}