コード例 #1
0
    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);
    }
コード例 #2
0
    public ResourceNodeData GetResourceNodeCollection(AreaTypes collectionAreaType)
    {
        ResourceNodeData rnd = null;

        rnd = resNodeData.Find(x => x.thisAreaType == collectionAreaType);

        return(rnd);
    }
コード例 #3
0
    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);
    }
コード例 #4
0
    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);
        }
    }