47 lines
1.7 KiB
C#
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;
|
|
}
|
|
}
|
|
} |