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