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