| | |
| | | public Tilemap tilemap; |
| | | [NonSerialized] |
| | | public GenerateTileMap generateTileMap; |
| | | [NonSerialized] |
| | | public List<Vector3Int> destroyedTiles = new List<Vector3Int>(); |
| | | public GameObject pickups; |
| | | public Tilemap fogTilemap; |
| | | public FogOfWar fogOfWar; |
| | |
| | | LoadMapState(); |
| | | } |
| | | Debug.Log("waiting for async map loading"); |
| | | StartCoroutine(generateTileMap.GenerateTiles(LoadTileMapsFinished, destroyedTiles)); |
| | | StartCoroutine(generateTileMap.GenerateTiles(LoadTileMapsFinished, generateTileMap.destroyedTiles)); |
| | | } |
| | | |
| | | private void InitializeBackgroundTiles() |
| | |
| | | |
| | | 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); |
| | | } |
| | | } |
| | | } |
| | |
| | | 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 |
| | |
| | | } |
| | | } |
| | | } |
| | | |
| | | #endregion |
| | | |
| | | |