From a576c4a6edc69f703422ab289ee46b05011b9275 Mon Sep 17 00:00:00 2001 From: miepzerino <o.skotnik@gmail.com> Date: Sun, 06 Apr 2025 17:46:38 +0000 Subject: [PATCH] #48 added cache to map savefile --- Assets/Scripts/Saving/SaveData.cs | 19 ++++++++++++++++++- 1 files changed, 18 insertions(+), 1 deletions(-) diff --git a/Assets/Scripts/Saving/SaveData.cs b/Assets/Scripts/Saving/SaveData.cs index cb1ee37..939850c 100644 --- a/Assets/Scripts/Saving/SaveData.cs +++ b/Assets/Scripts/Saving/SaveData.cs @@ -2,7 +2,9 @@ using System; using System.Collections; using System.Collections.Generic; +using System.Linq; using UnityEngine; +using UnityEngine.Tilemaps; #region player data [Serializable] @@ -52,7 +54,8 @@ public int seed; public List<DestroyedTile> destroyedTiles; public FogOfWarData fogOfWarData; - public SaveDataMap(List<Vector3Int> destroyedTiles, int seed, FogOfWarData fogOfWarData) + public List<SerializedChunkData> chunkData; // New field + public SaveDataMap(List<Vector3Int> destroyedTiles, int seed, FogOfWarData fogOfWarData, Dictionary<Vector2Int, TileBase[]> chunkCache) { this.seed = seed; this.destroyedTiles = new List<DestroyedTile>(); @@ -61,6 +64,8 @@ { this.destroyedTiles.Add(new DestroyedTile(item)); } + // Convert chunk cache to serializable format + this.chunkData = chunkCache.Select(kvp => new SerializedChunkData(kvp.Key, kvp.Value)).ToList(); } } @@ -87,4 +92,16 @@ { 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