using System.Collections.Generic; using UnityEngine.Tilemaps; using UnityEngine; using System; namespace GatherAndDefend.LevelEditor { [Serializable] public class TilemapData { [SerializeField] private string _key; [SerializeField] private List tiles; public string Key => _key; public void LoadToTilemap(Tilemap reference) { foreach (TileData data in tiles) { reference.SetTile(data.Position, data.Tile); } } public void SaveFromTilemap(Tilemap reference) { _key = reference.name; tiles = new List(); BoundsInt bounds = reference.cellBounds; for (int i = bounds.xMin; i <= bounds.xMax; i++) { for (int j = bounds.yMin; j <= bounds.yMax; j++) { Vector3Int position = new Vector3Int(i, j); TileBase tile = reference.GetTile(position); if (!tile) continue; var tileData = new TileData(position, tile); tiles.Add(tileData); } } } public TilemapData() { tiles = new List(); } } }