using UnityEngine; [CreateAssetMenu(fileName = "Grid", menuName = "Game Data/Map Grid")] public class TileGrid : ScriptableObject { public Vector2Int size; private Tile[,] _tiles; // Initialize the grid with the size of the map public TileGrid(Vector2Int size) { this.size = size; Initialize(this.size); } public void Initialize(Vector2Int gSize) { size = gSize; _tiles = new Tile[gSize.x, gSize.y]; } public Tile GetTile(int x, int y) { return _tiles[x, y]; } public void SetTile(int x, int y, Tile tile) { _tiles[x, y] = tile; } 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; } }