Files

55 lines
1.5 KiB
C#

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<OnRightClickEvent>(OnRightClickPressed);
_interactManager.ClearExclusiveRaycaster();
}
[Inject]
public void Construct(EventCoordinator eventCoordinator, InteractManager interactManager)
{
_eventCoordinator = eventCoordinator;
_interactManager = interactManager;
}
public void Initialise(BookTrigger trigger)
{
_bookTrigger = trigger;
_eventCoordinator.Subscribe<OnRightClickEvent>(OnRightClickPressed);
}
private void OnRightClickPressed(OnRightClickEvent e)
{
_bookTrigger.CloseBookInterface().Forget();
}
}
}