/**
* Gamepad input handling
* @class Gamepad
*/
export class Gamepad {
get gamepads() {
return navigator.getGamepads
? navigator.getGamepads()
: navigator.webkitGetGamepads || [];
}
get(id) {
const gamepad = this.gamepads[id];
return gamepad
? {
axes: gamepad.axes.map((value) =>
Math.abs(value) >= 0.05 ? value : 0
),
buttons: gamepad.buttons.map((button) =>
typeof button === "number"
? { pressed: button === 1, touched: button === 1, value: button }
: button
),
timestamp: gamepad.timestamp,
}
: null;
}
}