evershade/Assets/Data/ScriptableObjects/Tile.cs

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