evershade/Assets/Data/ScriptableObjects/TileGrid.cs

52 lines
1.1 KiB
C#

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