From 6b1abe7afb9350a7890f6b893f59f72a3988aaab Mon Sep 17 00:00:00 2001 From: miepzerino <o.skotnik@gmail.com> Date: Mon, 07 Apr 2025 16:15:36 +0000 Subject: [PATCH] #50 added saveDataManager --- Assets/Scripts/Saving/SaveData.cs | 36 ++++++++++++++++++++++++++++++++++-- 1 files changed, 34 insertions(+), 2 deletions(-) diff --git a/Assets/Scripts/Saving/SaveData.cs b/Assets/Scripts/Saving/SaveData.cs index 0bf35d0..4366667 100644 --- a/Assets/Scripts/Saving/SaveData.cs +++ b/Assets/Scripts/Saving/SaveData.cs @@ -1,8 +1,9 @@ using Assets.Scripts.Helpers; using System; -using System.Collections; using System.Collections.Generic; +using System.Linq; using UnityEngine; +using UnityEngine.Tilemaps; #region player data [Serializable] @@ -51,14 +52,19 @@ { public int seed; public List<DestroyedTile> destroyedTiles; - public SaveDataMap(List<Vector3Int> destroyedTiles, int seed) + public FogOfWarData fogOfWarData; + public List<SerializedChunkData> chunkData; // New field + public SaveDataMap(int seed, List<Vector3Int> destroyedTiles, Dictionary<Vector2Int, TileBase[]> chunkCache, FogOfWarData fogOfWarData) { this.seed = seed; this.destroyedTiles = new List<DestroyedTile>(); + this.fogOfWarData = fogOfWarData; foreach (var item in destroyedTiles.ConvertToListIntArray()) { this.destroyedTiles.Add(new DestroyedTile(item)); } + // Convert chunk cache to serializable format + this.chunkData = chunkCache.Select(kvp => new SerializedChunkData(kvp.Key, kvp.Value)).ToList(); } } @@ -71,4 +77,30 @@ } public int[] tileCoord; } + +[System.Serializable] +public class FogTileData +{ + public int x; + public int y; + public int fogLevelIndex; // -1 for no fog, 0+ for fog level index +} + +[System.Serializable] +public class FogOfWarData +{ + public List<FogTileData> discoveredTiles = new List<FogTileData>(); +} +[System.Serializable] +public class SerializedChunkData +{ + public Vector2Int position; + public string[] tileNames; // Store tile names instead of TileBase references + + public SerializedChunkData(Vector2Int pos, TileBase[] tiles) + { + position = pos; + tileNames = tiles.Select(t => t != null ? t.name : "null").ToArray(); + } +} #endregion -- Gitblit v1.9.3