55 lines
1.5 KiB
C#
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();
|
|
}
|
|
}
|
|
} |