44 lines
1.9 KiB
C#
44 lines
1.9 KiB
C#
using System;
|
|
using Intrepid.Integration.Input;
|
|
using UnityEngine;
|
|
|
|
namespace Intrepid.Gameplay.Entities.Player.Sentinel.Inputs
|
|
{
|
|
public class SentinelInputActions : SentinelInputs
|
|
{
|
|
public Func<bool> Dash { get; set; }
|
|
|
|
public Func<Vector2> Movement { get; set; }
|
|
public Func<bool> Interact { get; set; }
|
|
public Func<bool> InteractHeld { get; set; }
|
|
public Func<bool> InteractReleased { get; set; }
|
|
public Func<bool> DPadLeft { get; set; }
|
|
public Func<bool> DPadRight { get; set; }
|
|
public Func<bool> EnterPDA { get; set; }
|
|
|
|
public Func<bool> Reset { get; set; }
|
|
|
|
public static SentinelInputActions BuildSentinelInputActions()
|
|
{
|
|
var locking = InputService.Instance.Locking;
|
|
var inputActions = InputService.Instance.InputActions.sentinel;
|
|
return new SentinelInputActions
|
|
{
|
|
Dash = () => locking.IsNotLocked && inputActions.Dash.WasPressedThisFrame(),
|
|
|
|
Movement = () => locking.IsNotLocked
|
|
? inputActions.Movement.ReadValue<Vector2>()
|
|
: Vector2.zero,
|
|
Interact = () => locking.IsNotLocked && inputActions.Interact.WasPressedThisFrame(),
|
|
InteractHeld = () => locking.IsNotLocked && inputActions.Interact.IsPressed(),
|
|
InteractReleased = () => locking.IsNotLocked && inputActions.Interact.WasReleasedThisFrame(),
|
|
DPadLeft = () => locking.IsNotLocked && inputActions.DPadLeft.WasPressedThisFrame(),
|
|
DPadRight = () => locking.IsNotLocked && inputActions.DPadRight.WasPressedThisFrame(),
|
|
EnterPDA = () => locking.IsNotLocked && inputActions.EnterPDA.WasPressedThisFrame(),
|
|
|
|
// debug
|
|
Reset = () => locking.IsNotLocked && inputActions.Reset.WasPressedThisFrame(),
|
|
};
|
|
}
|
|
}
|
|
} |