1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
---@meta
---@alias GamepadStatus "wired"|"draining"|"charging"|"charged"
---@class (exact) Gamepad: GamepadMethods
---@class GamepadClass: GamepadMethods
local module =
---@class GamepadMethods
local methods =
---How many gamepads are connected.
---@return integer
---@nodiscard
---All connected gamepads.
---@param fill Gamepad[]?
---@return Gamepad[]?
---@nodiscard
---All gamepads that connected this frame.
---@param fill Gamepad[]?
---@return Gamepad[]?
---@nodiscard
---The most recently active gamepad.
---@return Gamepad?
---@nodiscard
---The gamepad name.
---@param self Gamepad
---@return string
---@nodiscard
---If the gamepad was connected this frame.
---@param self Gamepad
---@return boolean
---@nodiscard
---Charging status of the gamepad.
---@param self Gamepad
---@return GamepadStatus
---@return integer percent A value from `0-100` for `"charging"` and `"draining"`.
---@nodiscard
---If the button is down.
---@param self Gamepad
---@param btn GamepadButton
---@return boolean
---@nodiscard
---If the button was pressed this frame.
---@param self Gamepad
---@param btn GamepadButton
---@return boolean
---@nodiscard
---If the button was released this frame.
---@param self Gamepad
---@param btn GamepadButton
---@return boolean
---@nodiscard
---If the button was repeated this frame.
---@param self Gamepad
---@param btn GamepadButton
---@return boolean
---@nodiscard
---If the button state changed this frame.
---@param self Gamepad
---@param btn GamepadButton
---@return boolean
---@nodiscard
---The button value from `0.0` (fully up) to `1.0` (fully down).
---@param self Gamepad
---@param btn GamepadButton
---@return number
---@nodiscard
---The axis value from `-1.0` to `1.0`.
---@param self Gamepad
---@param axis GamepadAxis
---@return number
---@nodiscard
---If the axis changed this frame.
---@param self Gamepad
---@param axis GamepadAxis
---@return boolean
---@nodiscard
return module