39 lines
No EOL
946 B
C#
39 lines
No EOL
946 B
C#
using SharpDX.XInput;
|
|
|
|
namespace SM.Game.Controls
|
|
{
|
|
public struct GameController
|
|
{
|
|
public static float GlobalDeadband = 2500;
|
|
|
|
private Controller _controller;
|
|
|
|
public float Deadband { get; set; }
|
|
public bool IsConnected => _controller.IsConnected;
|
|
|
|
public UserIndex Index { get; private set; }
|
|
|
|
public GameController(int id) : this((UserIndex)id)
|
|
{}
|
|
|
|
public GameController(UserIndex index = UserIndex.Any)
|
|
{
|
|
_controller = new Controller(index);
|
|
Index = index;
|
|
Deadband = GlobalDeadband;
|
|
}
|
|
|
|
public GameControllerState GetState()
|
|
{
|
|
if (!IsConnected)
|
|
{
|
|
return new GameControllerState(true);
|
|
}
|
|
|
|
Gamepad state = _controller.GetState().Gamepad;
|
|
|
|
return new GameControllerState(state, ref this);
|
|
}
|
|
|
|
}
|
|
} |