// [CreateAssetMenu(fileName = "Grid", menuName = "Game Data/Map Grid")] // public class TileGridSo : ScriptableObject // { // public Vector2Int size; // private TileSo[,] _tiles; // // // Initialize the grid with the size of the map // public TileGridSo(Vector2Int size) // { // this.size = size; // Initialize(this.size); // } // // public void Initialize(Vector2Int gSize) // { // size = gSize; // _tiles = new TileSo[gSize.x, gSize.y]; // } // // public TileSo GetTile(int x, int y) // { // return _tiles[x, y]; // } // // public void SetTile(int x, int y, TileSo tileSo) // { // _tiles[x, y] = tileSo; // } // // // public void ClearTile(int x, int y) // { // _tiles[x, y] = null; // } // // public bool IsTileOccupied(int x, int y) // { // return _tiles[x, y] != null; // } // // public bool IsTileOccupiedByInteractableItem(int x, int y) // { // return _tiles[x, y] != null && _tiles[x, y].Interactable != null; // } // // public bool IsTileOccupiedByCrop(int x, int y) // { // return _tiles[x, y] != null && _tiles[x, y].Interactable.Type == InteractableType.Crop; // } // }