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