miepzerino
2025-04-07 6b1abe7afb9350a7890f6b893f59f72a3988aaab
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]
@@ -52,7 +53,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(int seed, List<Vector3Int> destroyedTiles, Dictionary<Vector2Int, TileBase[]> chunkCache, FogOfWarData fogOfWarData)
    {
        this.seed = seed;
        this.destroyedTiles = new List<DestroyedTile>();
@@ -61,6 +63,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 +91,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