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