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 treeControllers; //merge manager to saver? public override void ApplyData(string s) { TreesDataContainer treesDataContainer = new(); JsonUtility.FromJsonOverwrite(s, treesDataContainer); List 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 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; } } }