public void SetData(ResourceNodeData data) { gameObject.SetActive(false); myGuid = Guid.Parse(data.MyGuid); gameObject.transform.parent = GameObject.Find("Resources").transform.Find(resourceType.ToString() + "s").transform; respawningResources = data.RespawningResources; BaseResourceAmount = data.BaseResourceAmount; resourceType = data.ResourceType; CanRespawn = data.CanRespawn; TimeToRespawn = data.TimeToRespawn; DestroyWhenEmpty = data.DestroyWhenEmpty; resourceAmount = data.ResourceAmount; futureResourceAmount = data.FutureResourceAmount; ColorResource(resourceAmount); TeamIsKnown = data.TeamIsKnown; respawnSeconds = data.RespawnSeconds; gameObject.GetComponent <MeshRenderer>().enabled = (TeamIsKnown & (1 << GameWorld.Instance.LocalTeamId)) > 0; Enabled = data.Enabled; if (!Enabled) { gameObject.GetComponent <MeshRenderer>().enabled = false; } gameObject.SetActive(true); if (respawningResources) { StartCoroutine(respawnResource(respawnSeconds)); } gameObject.transform.localEulerAngles = new Vector3(data.RotationX, data.RotationY, data.RotationZ); }
public ResourceNodeData GetResourceNodeCollection(AreaTypes collectionAreaType) { ResourceNodeData rnd = null; rnd = resNodeData.Find(x => x.thisAreaType == collectionAreaType); return(rnd); }
public ResourceNodeData GetData() { ResourceNodeData data = new ResourceNodeData(myGuid, TeamIsKnown, respawningResources, BaseResourceAmount, resourceType, CanRespawn, TimeToRespawn, DestroyWhenEmpty, resourceAmount, futureResourceAmount, gameObject.transform.position, gameObject.transform.localEulerAngles, Prefab, respawnSeconds, Enabled); return(data); }
private IEnumerator LoadEnumerator(string name) { if (File.Exists(GetSavePath() + $"/{name}.txt")) { string saveString = File.ReadAllText(Application.dataPath + $"/Saves/{name}.txt"); SaveObject saveObject = JsonUtility.FromJson <SaveObject>(saveString); if (SceneManager.GetActiveScene().name != saveObject.LevelName) { AsyncOperation asyncLoadLevel = SceneManager.LoadSceneAsync(saveObject.LevelName, LoadSceneMode.Single); while (!asyncLoadLevel.isDone) { Debug.Log("Loading the Scene"); yield return(null); } } if (name == "QuickSave") { UiController.UpdateEventText("QuickLoading..."); } else { UiController.UpdateEventText("Loading..."); } for (int i = 0; i < ResourceList.Count;) { ResourceList[i].Destroy(); } for (int i = 0; i < saveObject.Resources.Count; i++) { ResourceNodeData data = saveObject.ResourceData[i]; GameObject newNode = (GameObject)GameObject.Instantiate(Resources.Load($"Prefabs/Resources/{data.Prefab}"), new Vector3(data.PositionX, data.PositionY, data.PositionZ), Quaternion.identity); newNode.GetComponent <ResourceNode>().SetData(data); } foreach (UnitController controller in UnitControllerList) { controller.SetData(saveObject.TeamMindGroupData.FirstOrDefault(data => data.TeamId == controller.TeamId).MindGroupDataList); } for (int i = 0; i < AntList.Count;) { AntList[i].Destroy(); } for (int i = 0; i < saveObject.Ants.Count; i++) { AntData data = saveObject.AntData[i]; GameObject newAnt = (GameObject)GameObject.Instantiate(Resources.Load($"Prefabs/{data.Prefab}"), new Vector3(data.PositionX, data.PositionY, data.PositionZ), Quaternion.identity); newAnt.GetComponent <Ant>().SetData(data); } for (int i = 0; i < BaseControllerList.Count; i++) { BaseControllerList[i].SetData(saveObject.BaseControllerData[i]); } if (name == "QuickSave") { UiController.UpdateEventText("QuickLoad Complete!"); } else { UiController.UpdateEventText("Load Complete!"); } } else { UiController.UpdateEventText("Save file not found!", Color.red); } }