using Pausable;
using UnityEngine;

namespace Interactable.Interactor
{
    public class KeyPressInteractor : ColliderTriggerInteractor, IPausable
    {
        protected bool isPlayerInside = false;
        protected Input.PlayerInput playerInput = null;

        protected override void Start()
        {
            base.Start();

            playerInput = new Input.PlayerInput();
            playerInput.Enable();
            playerInput.PlayerControl.Interact.performed += (context) => Interact();
        }

        protected virtual void Interact()
        {
            if (IsPaused && isPlayerInside)
                interactable.Interact();
        }

        protected override void OnTriggerEnter2D(Collider2D other)
            => isPlayerInside = true;
        protected virtual void OnTriggerExit2D(Collider2D other)
            => isPlayerInside = false;

        public bool IsPaused { get; protected set; } = false;
        public void Pause() => IsPaused = true;
        public void Resume() => IsPaused = false;
    }
}