using System; using System.Collections; using System.Collections.Generic; using UnityEngine; public class SlotManager : MonoBehaviour { public GridManager spawnerRef; public int x; public int y; public HealthComponent TowerHealth; public bool IsOccupied => TowerHealth != null && TowerHealth.TryGetComponent(out HealthComponent _); public Transform TowerSpawnPoint; /// <summary> /// (Sender, spawnerRef, X, Y) /// </summary> public event Action<SlotManager, GridManager, int, int> OnSlotClicked; public event Action<SlotManager, GridManager, int, int> OnSlotHovered; public event Action<SlotManager, GridManager, int, int> OnSlotUnHovered; public void OnClick() { if (IsOccupied) return; OnSlotClicked?.Invoke(this, spawnerRef, x, y); } public void OnHovered() { if (IsOccupied) return; OnSlotHovered?.Invoke(this, spawnerRef, x, y); } public void OnUnHovered() { if (IsOccupied) return; OnSlotUnHovered?.Invoke(this, spawnerRef, x, y); } }