using Sandbox; namespace VeloX; public class InputResolver { public Vector2 MouseDelta => Input.MouseDelta; public Vector2 MouseWheel => Input.MouseWheel; public Angles AnalogLook => Input.AnalogLook; public Vector3 AnalogMove { get { if ( Input.UsingController ) { Vector2 input = 0; input.x = Input.GetAnalog( InputAnalog.RightTrigger ) - Input.GetAnalog( InputAnalog.LeftTrigger ); input.y = -Input.GetAnalog( InputAnalog.LeftStickX ); return input; } return Input.AnalogMove; } } public bool Down( string action ) { return Input.Down( action ); } public float Brake { get { if ( Input.UsingController ) return Input.GetAnalog( InputAnalog.LeftTrigger ); return Input.Down( "Brake" ) ? 1 : 0; } } public float Throttle { get { if ( Input.UsingController ) return Input.GetAnalog( InputAnalog.RightTrigger ); return Input.Down( "Throttle" ) ? 1 : 0; } } public bool Pressed( string action ) { return Input.Pressed( action ); } public bool Released( string action ) { return Input.Released( action ); } public float GetAnalog( InputAnalog analog ) { return Input.GetAnalog( analog ); } public void TriggerHaptics( float leftMotor, float rightMotor, float leftTrigger = 0f, float rightTrigger = 0f, int duration = 500 ) { Input.TriggerHaptics( leftMotor, rightMotor, leftTrigger, rightTrigger, duration ); } public void TriggerHaptics( HapticEffect effect, float lengthScale = 1, float frequencyScale = 1, float amplitudeScale = 1 ) { Input.TriggerHaptics( effect, lengthScale, frequencyScale, amplitudeScale ); } public void StopAllHaptics() { Input.StopAllHaptics(); } }