evershade/Assets/Data/ScriptableObjects/Grid.cs

50 lines
1.1 KiB
C#

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;
}
}