From 40ac185dc7a017d95771fe580c77eab20e663908 Mon Sep 17 00:00:00 2001
From: miepzerino <o.skotnik@gmail.com>
Date: Tue, 08 Apr 2025 17:36:08 +0000
Subject: [PATCH] #46 added interactables

---
 Assets/Scripts/Managers/GameManager.cs |   21 ++++++++++++++-------
 1 files changed, 14 insertions(+), 7 deletions(-)

diff --git a/Assets/Scripts/Managers/GameManager.cs b/Assets/Scripts/Managers/GameManager.cs
index 6bbffac..a759205 100644
--- a/Assets/Scripts/Managers/GameManager.cs
+++ b/Assets/Scripts/Managers/GameManager.cs
@@ -22,8 +22,6 @@
     public Tilemap tilemap;
     [NonSerialized]
     public GenerateTileMap generateTileMap;
-    [NonSerialized]
-    public List<Vector3Int> destroyedTiles = new List<Vector3Int>();
     public GameObject pickups;
     public Tilemap fogTilemap;
     public FogOfWar fogOfWar;
@@ -47,7 +45,7 @@
             LoadMapState();
         }
         Debug.Log("waiting for async map loading");
-        StartCoroutine(generateTileMap.GenerateTiles(LoadTileMapsFinished, destroyedTiles));
+        StartCoroutine(generateTileMap.GenerateTiles(LoadTileMapsFinished, generateTileMap.destroyedTiles));
     }
 
     private void InitializeBackgroundTiles()
@@ -71,18 +69,24 @@
 
     private void LoadMapState()
     {
-        SaveDataMap mapState = SaveSystem.LoadMapState();
+        SaveDataMap mapState = GetComponent<SaveSystemManager>().GetMapStateFromSave();
         if (mapState != null)
         {
             //fogOfWar.LoadFromSaveData(mapState.fogOfWarData);
             generateTileMap.SetSettingsFromSeed(mapState.seed);
+
             if (mapState.destroyedTiles != null && mapState.destroyedTiles.Count > 0)
             {
                 // TODO rework load map (it's fucky wucky currently as I had to make an extra class for it to jsonify the tiles correctly, as unity does not like lists of arrays or 2d arrays)
                 foreach (DestroyedTile tile in mapState.destroyedTiles)
                 {
-                    destroyedTiles.Add(tile.tileCoord.ConvertToVector3Int());
+                    generateTileMap.destroyedTiles.Add(tile.tileCoord.ConvertToVector3Int());
                 }                //destroyedTiles.AddRange(mapState.destroyedTiles.Select(tile => { return tile.tileCoord; }).ToList().ConvertToVector3Int());
+            }
+            // Load chunk cache
+            if (mapState.chunkData != null)
+            {
+                generateTileMap.LoadChunkDataFromSave(mapState.chunkData);
             }
         }
     }
@@ -92,7 +96,7 @@
         Debug.Log("done async map loading");
         levelChanger.GetComponent<Animator>().SetBool("SceneLoading", false);
         //Initialize background tiles after the tilemap is loaded
-        InitializeBackgroundTiles();
+        //InitializeBackgroundTiles();
         GameLoaded();
     }
     public void GameLoaded()
@@ -198,8 +202,10 @@
                         CharacterLootObtained(tileGameObject.transform.position, item, dropAmount);
                     }
                 }
+                // Update tilemap
                 tilemap.SetTile(cellCoord, null);
-                destroyedTiles.Add(cellCoord);
+                generateTileMap.destroyedTiles.Add(cellCoord);
+                generateTileMap.UpdateChunkCache(cellCoord, cellWorldPosition);
                 CharacterEvents.characterDrillingToPosition.Invoke(cellWorldPosition, drillDirection);
             }
             else
@@ -208,6 +214,7 @@
             }
         }
     }
+
     #endregion
 
 

--
Gitblit v1.9.3