using BriarQueen.Framework.Coordinators.Events; using BriarQueen.Framework.Events.Input; using BriarQueen.Framework.Managers.Interaction; using Cysharp.Threading.Tasks; using UnityEngine; using UnityEngine.UI; using VContainer; namespace BriarQueen.Game.Items.Environment.General.Book { public class BookInterface : MonoBehaviour { [SerializeField] private CanvasGroup _canvasGroup; [SerializeField] private GraphicRaycaster _graphicRaycaster; private BookTrigger _bookTrigger; private EventCoordinator _eventCoordinator; private InteractManager _interactManager; internal CanvasGroup CanvasGroup => _canvasGroup; private void Start() { _interactManager.SetExclusiveRaycaster(_graphicRaycaster); } private void OnDestroy() { _eventCoordinator.Unsubscribe(OnRightClickPressed); _interactManager.ClearExclusiveRaycaster(); } [Inject] public void Construct(EventCoordinator eventCoordinator, InteractManager interactManager) { _eventCoordinator = eventCoordinator; _interactManager = interactManager; } public void Initialise(BookTrigger trigger) { _bookTrigger = trigger; _eventCoordinator.Subscribe(OnRightClickPressed); } private void OnRightClickPressed(OnRightClickEvent e) { _bookTrigger.CloseBookInterface().Forget(); } } }