using System; using System.Collections; using UnityEngine; public class BaseInteractableObject : MonoBehaviour { [SerializeField] public Transform _interactionPoint; [SerializeField] public PopupItemMenu _radialMenuPrefab; protected Player _player; private InteractionStatus _currentStatus=InteractionStatus.Complete; public InteractionStatus Interact(Player player) { _player=player; if (_currentStatus == InteractionStatus.Complete) { UIManager.Instance.ShowItemsMenu(PopupMenuCallback); _currentStatus = InteractionStatus.WaitForChoose; } else if(_currentStatus!=InteractionStatus.WaitForChoose) { if (_player.IsPathComplete(_interactionPoint.position)) { InteractAction(); _currentStatus = InteractionStatus.Complete; } else { _currentStatus = InteractionStatus.FarFromPlayer; } } return _currentStatus; } private void PopupMenuCallback() { _currentStatus = InteractionStatus.InProgress; } protected virtual void InteractAction() { } }