using System;
using UnityEngine.InputSystem;
namespace SalientVoid.Input
{
/// <summary>
/// Simple event container for UI-specific actions
/// </summary>
public class UiInputActions
{
public event Action<InputAction.CallbackContext> Cancel;
public event Action<InputAction.CallbackContext> Click;
public event Action<InputAction.CallbackContext> MiddleClick;
public event Action<InputAction.CallbackContext> Navigate;
public event Action<InputAction.CallbackContext> Point;
public event Action<InputAction.CallbackContext> RightClick;
public event Action<InputAction.CallbackContext> ScrollWheel;
public event Action<InputAction.CallbackContext> Submit;
public event Action<InputAction.CallbackContext> TrackedDeviceOrientation;
public event Action<InputAction.CallbackContext> TrackedDevicePosition;
public void Bind(InputControls.UIActions control)
{
control.Cancel.performed += context => Cancel?.Invoke(context);
control.Click.performed += context => Click?.Invoke(context);
control.MiddleClick.performed += context => MiddleClick?.Invoke(context);
control.Navigate.performed += context => Navigate?.Invoke(context);
control.Point.performed += context => Point?.Invoke(context);
control.RightClick.performed += context => RightClick?.Invoke(context);
control.ScrollWheel.performed += context => ScrollWheel?.Invoke(context);
control.Submit.performed += context => Submit?.Invoke(context);
control.TrackedDeviceOrientation.performed += context => TrackedDeviceOrientation?.Invoke(context);
control.TrackedDevicePosition.performed += context => TrackedDevicePosition?.Invoke(context);
}
}
}