using System; using EasyButtons; using UnityEngine; public class BuildingManager : MonoBehaviour { public Building[] buildings; [Button] void GetAllBuildings(){ buildings = FindObjectsOfType(); } void Start() { 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); } }