From ab5a24f4c0cffbc8e8f76e40293f2201027b7c50 Mon Sep 17 00:00:00 2001
From: miepzerino <o.skotnik@gmail.com>
Date: Mon, 07 Apr 2025 22:59:16 +0000
Subject: [PATCH] #49 added parallax and tiling to background

---
 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