100 lines
2.1 KiB
C#
100 lines
2.1 KiB
C#
using System.Collections.Generic;
|
|
using UnityEngine;
|
|
|
|
public class Tile : ScriptableObject
|
|
{
|
|
public bool blockMovement;
|
|
public bool blockBuilding = true;
|
|
|
|
public bool blockInteractable;
|
|
|
|
public IInteractable Interactable;
|
|
|
|
public List<GameItem> GameItems { get; set; }
|
|
|
|
public void Initialize(Vector2Int vector2Int)
|
|
{
|
|
Debug.Log("GRID: GridSpace Initialize");
|
|
// Crop = null;
|
|
GameItems = new List<GameItem>();
|
|
RemoveAllInteractables();
|
|
}
|
|
|
|
public void AddGameItem(GameItem gameItem)
|
|
{
|
|
GameItems.Add(gameItem);
|
|
}
|
|
|
|
public void RemoveGameItem(GameItem gameItem)
|
|
{
|
|
GameItems.Remove(gameItem);
|
|
}
|
|
|
|
public void ClearGameItems()
|
|
{
|
|
GameItems.Clear();
|
|
}
|
|
|
|
|
|
public void ClearInteractableItem()
|
|
{
|
|
}
|
|
|
|
|
|
public bool IsBuildable()
|
|
{
|
|
// has no items or interactable on it
|
|
return GameItems.Count == 0 && Interactable != null && !blockBuilding;
|
|
}
|
|
|
|
|
|
// public int GetInteractableCount()
|
|
// {
|
|
// var count = 0;
|
|
// if (treeInteractable != null)
|
|
// count++;
|
|
// if (rockInteractable != null)
|
|
// count++;
|
|
// if (boxInteractable != null)
|
|
// count++;
|
|
// if (cropInteractable != null)
|
|
// count++;
|
|
// return count;
|
|
// }
|
|
|
|
|
|
public void SetInteractable(TreeInteractable interactable)
|
|
{
|
|
RemoveAllInteractables();
|
|
Interactable = interactable;
|
|
}
|
|
|
|
public void SetInteractable(RockInteractable interactable)
|
|
{
|
|
RemoveAllInteractables();
|
|
Interactable = interactable;
|
|
}
|
|
|
|
public void SetInteractable(BoxInteractable interactable)
|
|
{
|
|
RemoveAllInteractables();
|
|
Interactable = interactable;
|
|
}
|
|
|
|
public void SetInteractable(CropInteractable interactable)
|
|
{
|
|
RemoveAllInteractables();
|
|
Interactable = interactable;
|
|
}
|
|
|
|
public void SetInteractable(Interactable interactable)
|
|
{
|
|
RemoveAllInteractables();
|
|
Interactable = interactable;
|
|
}
|
|
|
|
public void RemoveAllInteractables()
|
|
{
|
|
Interactable = null;
|
|
}
|
|
} |