Files
beyond/Assets/Scripts/Save/TreesSaver.cs

47 lines
1.7 KiB
C#

using PixelCrushers;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
namespace Beyond
{
[AddComponentMenu("Pixel Crushers/Save System/Savers/TreesSaver")]
public class TreesSaver : Saver
{
public List<TreeSpotController> treeControllers;
//merge manager to saver?
public override void ApplyData(string s)
{
TreesDataContainer treesDataContainer = new();
JsonUtility.FromJsonOverwrite(s, treesDataContainer);
List<TreeStateData> treesStateData = treesDataContainer.treesData;
Debug.Log(treesStateData.Count);
for (int i = 0; i < treeControllers.Count; i++)
{
if (i < treesStateData.Count)
{
treeControllers[i].health = treesStateData[i].health;
if (!treeControllers[i].isActiveAndEnabled && treesStateData[i].isEnabled)
{
treeControllers[i].gameObject.SetActiveUpHierarchy(true);
}
treeControllers[i].SetTreeStateInstant(treesStateData[i].treeState);
}
}
}
public override string RecordData()
{
List<TreeStateData> treesStateData = new();
treeControllers.ForEach(controller => treesStateData.Add(new TreeStateData(controller.currentTreeState, controller.health, controller.isActiveAndEnabled)));
TreesDataContainer treesDataContainer = new();
treesDataContainer.treesData = treesStateData;
Debug.Log(treesStateData.Count);
string json = JsonUtility.ToJson(treesDataContainer, true);
Debug.Log(json);
return json;
}
}
}