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 GameItems { get; set; } public void Initialize(Vector2Int vector2Int) { Debug.Log("GRID: GridSpace Initialize"); // Crop = null; GameItems = new List(); 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; } }