@codexo/exojs 0.7.12 → 0.7.13
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +334 -0
- package/dist/esm/core/Application.d.ts +3 -1
- package/dist/esm/core/Application.js +7 -6
- package/dist/esm/core/Application.js.map +1 -1
- package/dist/esm/core/Scene.d.ts +30 -0
- package/dist/esm/core/Scene.js +56 -0
- package/dist/esm/core/Scene.js.map +1 -1
- package/dist/esm/core/SceneManager.js +2 -2
- package/dist/esm/core/SceneManager.js.map +1 -1
- package/dist/esm/debug/DebugOverlay.js +2 -2
- package/dist/esm/debug/DebugOverlay.js.map +1 -1
- package/dist/esm/debug/PointerStackLayer.js +1 -1
- package/dist/esm/debug/PointerStackLayer.js.map +1 -1
- package/dist/esm/index.js +4 -3
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/input/ArcadeStickGamepadMapping.js +18 -19
- package/dist/esm/input/ArcadeStickGamepadMapping.js.map +1 -1
- package/dist/esm/input/Gamepad.d.ts +164 -62
- package/dist/esm/input/Gamepad.js +290 -134
- package/dist/esm/input/Gamepad.js.map +1 -1
- package/dist/esm/input/GamepadAxis.d.ts +120 -0
- package/dist/esm/input/GamepadAxis.js +106 -0
- package/dist/esm/input/GamepadAxis.js.map +1 -0
- package/dist/esm/input/GamepadButton.d.ts +110 -0
- package/dist/esm/input/GamepadButton.js +99 -0
- package/dist/esm/input/GamepadButton.js.map +1 -0
- package/dist/esm/input/GamepadDefinitions.js +4 -0
- package/dist/esm/input/GamepadDefinitions.js.map +1 -1
- package/dist/esm/input/GamepadMapping.d.ts +28 -24
- package/dist/esm/input/GamepadMapping.js +33 -16
- package/dist/esm/input/GamepadMapping.js.map +1 -1
- package/dist/esm/input/GamepadPromptLayouts.d.ts +10 -8
- package/dist/esm/input/GamepadPromptLayouts.js +21 -20
- package/dist/esm/input/GamepadPromptLayouts.js.map +1 -1
- package/dist/esm/input/GenericDualAnalogGamepadMapping.d.ts +6 -3
- package/dist/esm/input/GenericDualAnalogGamepadMapping.js +55 -46
- package/dist/esm/input/GenericDualAnalogGamepadMapping.js.map +1 -1
- package/dist/esm/input/InputBinding.d.ts +74 -0
- package/dist/esm/input/InputBinding.js +100 -0
- package/dist/esm/input/InputBinding.js.map +1 -0
- package/dist/esm/input/InputManager.d.ts +79 -33
- package/dist/esm/input/InputManager.js +229 -104
- package/dist/esm/input/InputManager.js.map +1 -1
- package/dist/esm/input/InteractionManager.d.ts +1 -1
- package/dist/esm/input/InteractionManager.js +13 -13
- package/dist/esm/input/InteractionManager.js.map +1 -1
- package/dist/esm/input/JoyConLeftGamepadMapping.d.ts +14 -9
- package/dist/esm/input/JoyConLeftGamepadMapping.js +39 -9
- package/dist/esm/input/JoyConLeftGamepadMapping.js.map +1 -1
- package/dist/esm/input/JoyConRightGamepadMapping.d.ts +14 -9
- package/dist/esm/input/JoyConRightGamepadMapping.js +35 -9
- package/dist/esm/input/JoyConRightGamepadMapping.js.map +1 -1
- package/dist/esm/input/Pointer.d.ts +84 -71
- package/dist/esm/input/Pointer.js +71 -71
- package/dist/esm/input/Pointer.js.map +1 -1
- package/dist/esm/input/SteamDeckGamepadMapping.d.ts +18 -0
- package/dist/esm/input/SteamDeckGamepadMapping.js +76 -0
- package/dist/esm/input/SteamDeckGamepadMapping.js.map +1 -0
- package/dist/esm/input/index.d.ts +7 -4
- package/dist/esm/input/types.d.ts +0 -76
- package/dist/esm/input/types.js +1 -80
- package/dist/esm/input/types.js.map +1 -1
- package/dist/esm/resources/CacheFirstStrategy.d.ts +7 -4
- package/dist/esm/resources/CacheFirstStrategy.js +11 -8
- package/dist/esm/resources/CacheFirstStrategy.js.map +1 -1
- package/dist/esm/resources/CacheStrategy.d.ts +14 -6
- package/dist/esm/resources/Loader.d.ts +8 -3
- package/dist/esm/resources/Loader.js +19 -37
- package/dist/esm/resources/Loader.js.map +1 -1
- package/dist/esm/resources/NetworkOnlyStrategy.d.ts +3 -0
- package/dist/esm/resources/NetworkOnlyStrategy.js +8 -3
- package/dist/esm/resources/NetworkOnlyStrategy.js.map +1 -1
- package/dist/esm/resources/factories/ImageFactory.d.ts +2 -2
- package/dist/esm/resources/factories/ImageFactory.js.map +1 -1
- package/dist/esm/resources/factories/TextureFactory.d.ts +2 -2
- package/dist/esm/resources/factories/TextureFactory.js.map +1 -1
- package/dist/esm/resources/factories/VttFactory.d.ts +3 -3
- package/dist/esm/resources/factories/VttFactory.js +83 -6
- package/dist/esm/resources/factories/VttFactory.js.map +1 -1
- package/dist/exo.esm.js +1390 -795
- package/dist/exo.esm.js.map +1 -1
- package/package.json +2 -1
- package/dist/esm/input/GamepadChannels.d.ts +0 -47
- package/dist/esm/input/GamepadChannels.js +0 -53
- package/dist/esm/input/GamepadChannels.js.map +0 -1
- package/dist/esm/input/GamepadControl.d.ts +0 -33
- package/dist/esm/input/GamepadControl.js +0 -42
- package/dist/esm/input/GamepadControl.js.map +0 -1
- package/dist/esm/input/Input.d.ts +0 -52
- package/dist/esm/input/Input.js +0 -90
- package/dist/esm/input/Input.js.map +0 -1
|
@@ -7,8 +7,10 @@ import { ChannelSize, maxPointers, ChannelOffset } from './types.js';
|
|
|
7
7
|
import { Gamepad } from './Gamepad.js';
|
|
8
8
|
import { PointerState, Pointer, PointerStateFlag } from './Pointer.js';
|
|
9
9
|
import { GestureRecognizer } from './GestureRecognizer.js';
|
|
10
|
+
import { InputBinding } from './InputBinding.js';
|
|
10
11
|
import { builtInGamepadDefinitions, resolveGamepadDefinition } from './GamepadDefinitions.js';
|
|
11
12
|
|
|
13
|
+
const gamepadSlots = 4;
|
|
12
14
|
var InputManagerFlag;
|
|
13
15
|
(function (InputManagerFlag) {
|
|
14
16
|
InputManagerFlag[InputManagerFlag["None"] = 0] = "None";
|
|
@@ -25,10 +27,11 @@ var InputManagerFlag;
|
|
|
25
27
|
* rotate / long-press).
|
|
26
28
|
*
|
|
27
29
|
* All raw inputs are written into a shared `Float32Array` channel buffer.
|
|
28
|
-
* Bind {@link
|
|
29
|
-
*
|
|
30
|
-
*
|
|
31
|
-
*
|
|
30
|
+
* Bind input listeners via the {@link onTrigger} / {@link onActive} /
|
|
31
|
+
* {@link onStart} / {@link onStop} factory methods (or via
|
|
32
|
+
* {@link Gamepad.onTrigger}-style methods on individual pads), or
|
|
33
|
+
* subscribe to the signal-style notifications
|
|
34
|
+
* (`onKeyDown`, `onPointerDown`, `onGamepadConnected`, `onAnyGamepadButtonDown`, …).
|
|
32
35
|
*
|
|
33
36
|
* Driven each frame by {@link Application.update}; constructed
|
|
34
37
|
* automatically — you do not instantiate this class yourself.
|
|
@@ -36,18 +39,19 @@ var InputManagerFlag;
|
|
|
36
39
|
class InputManager {
|
|
37
40
|
canvas;
|
|
38
41
|
channels = new Float32Array(ChannelSize.Container);
|
|
39
|
-
inputs = new Set();
|
|
40
42
|
pointers = {};
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
43
|
+
_gamepads;
|
|
44
|
+
gamepadsByBrowserIndex = new Map();
|
|
45
|
+
bindings = new Set();
|
|
46
|
+
bindingDetacher = { detach: (binding) => { this.bindings.delete(binding); } };
|
|
44
47
|
wheelOffset = new Vector();
|
|
45
48
|
flags = new Flags();
|
|
46
49
|
channelsPressed = [];
|
|
47
50
|
channelsReleased = [];
|
|
48
51
|
gamepadDefinitions;
|
|
52
|
+
slotStrategy;
|
|
49
53
|
// Slot allocation for unified pointer tracking (mouse / touch / pen).
|
|
50
|
-
pointerSlots = new Map();
|
|
54
|
+
pointerSlots = new Map();
|
|
51
55
|
freeSlots = Array.from({ length: maxPointers }, (_, i) => i);
|
|
52
56
|
gestureRecognizer;
|
|
53
57
|
canvasFocusedValue;
|
|
@@ -76,9 +80,22 @@ class InputManager {
|
|
|
76
80
|
onMouseWheel = new Signal();
|
|
77
81
|
onKeyDown = new Signal();
|
|
78
82
|
onKeyUp = new Signal();
|
|
83
|
+
/** Fires when a physical pad connects to any slot. */
|
|
79
84
|
onGamepadConnected = new Signal();
|
|
85
|
+
/** Fires when a physical pad disconnects from any slot. */
|
|
80
86
|
onGamepadDisconnected = new Signal();
|
|
81
|
-
|
|
87
|
+
/**
|
|
88
|
+
* Fires when a `'compact'`-strategy disconnect shifts a higher-numbered
|
|
89
|
+
* slot's pad into a lower one. Dispatched once per moved pad with the
|
|
90
|
+
* destination slot and the slot index it came from.
|
|
91
|
+
*/
|
|
92
|
+
onAnyGamepadReassigned = new Signal();
|
|
93
|
+
/** Fires whenever any pad reports a button press transition. */
|
|
94
|
+
onAnyGamepadButtonDown = new Signal();
|
|
95
|
+
/** Fires whenever any pad reports a button release transition. */
|
|
96
|
+
onAnyGamepadButtonUp = new Signal();
|
|
97
|
+
/** Fires whenever any pad reports an axis value change. */
|
|
98
|
+
onAnyGamepadAxisChange = new Signal();
|
|
82
99
|
/** Fires on every two-touch-pointer move where the distance between them changed. `scale` > 1 = spreading, < 1 = pinching. */
|
|
83
100
|
onPinch = new Signal();
|
|
84
101
|
/** Fires on every two-touch-pointer move where the angle between them changed. `angleDelta` is in radians. */
|
|
@@ -86,16 +103,25 @@ class InputManager {
|
|
|
86
103
|
/** Fires when a pointer has been held without significant movement for ≥ 500 ms. */
|
|
87
104
|
onLongPress = new Signal();
|
|
88
105
|
constructor(app) {
|
|
89
|
-
const { gamepadDefinitions = [], pointerDistanceThreshold } = app.options;
|
|
106
|
+
const { gamepadDefinitions = [], pointerDistanceThreshold, gamepadSlotStrategy = 'sticky', } = app.options;
|
|
90
107
|
this.canvas = app.canvas;
|
|
91
108
|
this.canvasFocusedValue = document.activeElement === this.canvas;
|
|
92
109
|
this.pointerDistanceThreshold = pointerDistanceThreshold;
|
|
93
110
|
this.gamepadDefinitions = [...gamepadDefinitions, ...builtInGamepadDefinitions];
|
|
111
|
+
this.slotStrategy = gamepadSlotStrategy;
|
|
94
112
|
// Disable the browser's default pan/zoom/double-tap-zoom on touch devices so
|
|
95
113
|
// pointer events reach the canvas without being swallowed by the browser's
|
|
96
114
|
// native touch gestures.
|
|
97
115
|
this.canvas.style.touchAction = 'none';
|
|
98
116
|
this.gestureRecognizer = new GestureRecognizer(pointerDistanceThreshold, this.onPinch, this.onRotate, this.onLongPress);
|
|
117
|
+
const slot0 = new Gamepad(0, this.channels);
|
|
118
|
+
const slot1 = new Gamepad(1, this.channels);
|
|
119
|
+
const slot2 = new Gamepad(2, this.channels);
|
|
120
|
+
const slot3 = new Gamepad(3, this.channels);
|
|
121
|
+
this._gamepads = [slot0, slot1, slot2, slot3];
|
|
122
|
+
for (const pad of this._gamepads) {
|
|
123
|
+
this.wireGamepadEvents(pad);
|
|
124
|
+
}
|
|
99
125
|
this.addEventListeners();
|
|
100
126
|
}
|
|
101
127
|
/**
|
|
@@ -109,7 +135,6 @@ class InputManager {
|
|
|
109
135
|
return { x: pointer.x, y: pointer.y };
|
|
110
136
|
}
|
|
111
137
|
}
|
|
112
|
-
// Fall back to first non-cancelled pointer.
|
|
113
138
|
for (const pointer of Object.values(this.pointers)) {
|
|
114
139
|
if (pointer.currentState !== PointerState.Cancelled) {
|
|
115
140
|
return { x: pointer.x, y: pointer.y };
|
|
@@ -124,58 +149,103 @@ class InputManager {
|
|
|
124
149
|
get canvasFocused() {
|
|
125
150
|
return this.canvasFocusedValue;
|
|
126
151
|
}
|
|
152
|
+
/**
|
|
153
|
+
* Always-4 array of {@link Gamepad} slot mailboxes. Each entry exists for
|
|
154
|
+
* the application's full lifetime; check `pad.connected` for hardware
|
|
155
|
+
* presence. Listeners attached to a slot survive disconnect/reconnect.
|
|
156
|
+
*/
|
|
127
157
|
get gamepads() {
|
|
128
|
-
return this.
|
|
158
|
+
return this._gamepads;
|
|
129
159
|
}
|
|
130
|
-
|
|
131
|
-
|
|
160
|
+
/** The slot strategy active for this `InputManager`. */
|
|
161
|
+
get gamepadSlotStrategy() {
|
|
162
|
+
return this.slotStrategy;
|
|
132
163
|
}
|
|
133
164
|
/**
|
|
134
|
-
*
|
|
135
|
-
*
|
|
136
|
-
* inputs; chainable.
|
|
165
|
+
* Direct accessor for a single gamepad slot. Equivalent to
|
|
166
|
+
* `app.input.gamepads[slot]` but reads more clearly at call sites.
|
|
137
167
|
*/
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
168
|
+
getGamepad(slot) {
|
|
169
|
+
return this._gamepads[slot];
|
|
170
|
+
}
|
|
171
|
+
/** Subset of {@link gamepads} containing only currently connected pads, in slot order. */
|
|
172
|
+
get connectedGamepads() {
|
|
173
|
+
const result = [];
|
|
174
|
+
for (const pad of this._gamepads) {
|
|
175
|
+
if (pad.connected) {
|
|
176
|
+
result.push(pad);
|
|
177
|
+
}
|
|
142
178
|
}
|
|
143
|
-
|
|
144
|
-
return this;
|
|
179
|
+
return result;
|
|
145
180
|
}
|
|
146
|
-
/**
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
181
|
+
/** Number of slots currently occupied by a physical gamepad. */
|
|
182
|
+
get connectedGamepadCount() {
|
|
183
|
+
let count = 0;
|
|
184
|
+
for (const pad of this._gamepads) {
|
|
185
|
+
if (pad.connected) {
|
|
186
|
+
count++;
|
|
187
|
+
}
|
|
151
188
|
}
|
|
152
|
-
|
|
153
|
-
return this;
|
|
189
|
+
return count;
|
|
154
190
|
}
|
|
155
|
-
/**
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
clear(destroyInputs = false) {
|
|
161
|
-
if (destroyInputs) {
|
|
162
|
-
for (const input of this.inputs) {
|
|
163
|
-
input.destroy();
|
|
191
|
+
/** First connected gamepad in slot order, or `null` when no pads are attached. */
|
|
192
|
+
get firstConnectedGamepad() {
|
|
193
|
+
for (const pad of this._gamepads) {
|
|
194
|
+
if (pad.connected) {
|
|
195
|
+
return pad;
|
|
164
196
|
}
|
|
165
197
|
}
|
|
166
|
-
|
|
167
|
-
|
|
198
|
+
return null;
|
|
199
|
+
}
|
|
200
|
+
/** `true` when at least one slot is occupied by a physical gamepad. */
|
|
201
|
+
get hasGamepad() {
|
|
202
|
+
for (const pad of this._gamepads) {
|
|
203
|
+
if (pad.connected) {
|
|
204
|
+
return true;
|
|
205
|
+
}
|
|
206
|
+
}
|
|
207
|
+
return false;
|
|
208
|
+
}
|
|
209
|
+
/**
|
|
210
|
+
* Register a callback fired once when any of `channels` becomes active.
|
|
211
|
+
* Manual lifecycle — call `.unbind()` on the returned binding to detach.
|
|
212
|
+
*/
|
|
213
|
+
onStart(channel, callback, options) {
|
|
214
|
+
const binding = this.createBinding(channel, options);
|
|
215
|
+
binding.onStart.add(callback);
|
|
216
|
+
return binding;
|
|
217
|
+
}
|
|
218
|
+
/** Register a callback fired every frame while any of `channels` is active. */
|
|
219
|
+
onActive(channel, callback, options) {
|
|
220
|
+
const binding = this.createBinding(channel, options);
|
|
221
|
+
binding.onActive.add(callback);
|
|
222
|
+
return binding;
|
|
223
|
+
}
|
|
224
|
+
/** Register a callback fired once when all of `channels` become inactive. */
|
|
225
|
+
onStop(channel, callback, options) {
|
|
226
|
+
const binding = this.createBinding(channel, options);
|
|
227
|
+
binding.onStop.add(callback);
|
|
228
|
+
return binding;
|
|
229
|
+
}
|
|
230
|
+
/**
|
|
231
|
+
* Register a callback fired when the input is released within
|
|
232
|
+
* {@link InputBindingOptions.threshold} ms of activation (a "tap").
|
|
233
|
+
*/
|
|
234
|
+
onTrigger(channel, callback, options) {
|
|
235
|
+
const binding = this.createBinding(channel, options);
|
|
236
|
+
binding.onTrigger.add(callback);
|
|
237
|
+
return binding;
|
|
168
238
|
}
|
|
169
239
|
/**
|
|
170
240
|
* Per-frame entry point invoked by {@link Application.update}. Polls
|
|
171
241
|
* the gamepad API, drains queued keyboard/pointer/wheel deltas into
|
|
172
242
|
* the channel buffer, fires the corresponding Signals, then evaluates
|
|
173
|
-
* each registered
|
|
243
|
+
* each registered binding.
|
|
174
244
|
*/
|
|
175
245
|
update() {
|
|
176
246
|
this.updateGamepads();
|
|
177
|
-
for (const
|
|
178
|
-
|
|
247
|
+
for (const binding of this.bindings) {
|
|
248
|
+
binding.update(this.channels);
|
|
179
249
|
}
|
|
180
250
|
if (this.flags.value !== InputManagerFlag.None) {
|
|
181
251
|
this.updateEvents();
|
|
@@ -188,12 +258,14 @@ class InputManager {
|
|
|
188
258
|
for (const pointer of Object.values(this.pointers)) {
|
|
189
259
|
pointer.destroy();
|
|
190
260
|
}
|
|
191
|
-
for (const
|
|
192
|
-
|
|
261
|
+
for (const pad of this._gamepads) {
|
|
262
|
+
pad.destroy();
|
|
263
|
+
}
|
|
264
|
+
for (const binding of Array.from(this.bindings)) {
|
|
265
|
+
binding.unbind();
|
|
193
266
|
}
|
|
194
|
-
this.
|
|
195
|
-
this.
|
|
196
|
-
this.gamepadsValue.length = 0;
|
|
267
|
+
this.bindings.clear();
|
|
268
|
+
this.gamepadsByBrowserIndex.clear();
|
|
197
269
|
this.channelsPressed.length = 0;
|
|
198
270
|
this.channelsReleased.length = 0;
|
|
199
271
|
this.pointerSlots.clear();
|
|
@@ -213,18 +285,40 @@ class InputManager {
|
|
|
213
285
|
this.onKeyUp.destroy();
|
|
214
286
|
this.onGamepadConnected.destroy();
|
|
215
287
|
this.onGamepadDisconnected.destroy();
|
|
216
|
-
this.
|
|
288
|
+
this.onAnyGamepadReassigned.destroy();
|
|
289
|
+
this.onAnyGamepadButtonDown.destroy();
|
|
290
|
+
this.onAnyGamepadButtonUp.destroy();
|
|
291
|
+
this.onAnyGamepadAxisChange.destroy();
|
|
217
292
|
this.onPinch.destroy();
|
|
218
293
|
this.onRotate.destroy();
|
|
219
294
|
this.onLongPress.destroy();
|
|
220
295
|
this.onCanvasFocusChange.destroy();
|
|
221
296
|
}
|
|
297
|
+
createBinding(channel, options = {}) {
|
|
298
|
+
const list = Array.isArray(channel) ? channel : [channel];
|
|
299
|
+
const slot = options.gamepadSlot ?? 0;
|
|
300
|
+
const resolved = list.map((c) => this.resolveExternalChannel(c, slot));
|
|
301
|
+
const binding = new InputBinding(resolved, options, this.bindingDetacher);
|
|
302
|
+
this.bindings.add(binding);
|
|
303
|
+
return binding;
|
|
304
|
+
}
|
|
305
|
+
resolveExternalChannel(channel, slot) {
|
|
306
|
+
if (channel >= ChannelOffset.Gamepads && channel < ChannelOffset.Gamepads + ChannelSize.Category) {
|
|
307
|
+
return ChannelOffset.Gamepads + (slot * ChannelSize.Gamepad) + (channel ^ ChannelOffset.Gamepads);
|
|
308
|
+
}
|
|
309
|
+
return channel;
|
|
310
|
+
}
|
|
311
|
+
wireGamepadEvents(pad) {
|
|
312
|
+
pad.onButtonDown.add((button, value) => { this.onAnyGamepadButtonDown.dispatch(pad, button, value); });
|
|
313
|
+
pad.onButtonUp.add((button, value) => { this.onAnyGamepadButtonUp.dispatch(pad, button, value); });
|
|
314
|
+
pad.onAxisChange.add((axis, value) => { this.onAnyGamepadAxisChange.dispatch(pad, axis, value); });
|
|
315
|
+
}
|
|
222
316
|
_assignSlot(pointerId) {
|
|
223
317
|
if (this.pointerSlots.has(pointerId)) {
|
|
224
318
|
return this.pointerSlots.get(pointerId);
|
|
225
319
|
}
|
|
226
320
|
if (this.freeSlots.length === 0) {
|
|
227
|
-
return null;
|
|
321
|
+
return null;
|
|
228
322
|
}
|
|
229
323
|
const slot = this.freeSlots.shift();
|
|
230
324
|
this.pointerSlots.set(pointerId, slot);
|
|
@@ -234,14 +328,10 @@ class InputManager {
|
|
|
234
328
|
const slot = this.pointerSlots.get(pointerId);
|
|
235
329
|
if (slot !== undefined) {
|
|
236
330
|
this.pointerSlots.delete(pointerId);
|
|
237
|
-
// Push to the front so slot 0 is recovered first, keeping allocation predictable.
|
|
238
331
|
this.freeSlots.unshift(slot);
|
|
239
332
|
}
|
|
240
333
|
}
|
|
241
334
|
handleKeyDown(event) {
|
|
242
|
-
// Game-engine convention: keys only register while the canvas
|
|
243
|
-
// owns focus. Otherwise typing into adjacent <input> fields would
|
|
244
|
-
// also drive game state, which is never what users want.
|
|
245
335
|
if (!this.canvasFocusedValue) {
|
|
246
336
|
return;
|
|
247
337
|
}
|
|
@@ -249,9 +339,6 @@ class InputManager {
|
|
|
249
339
|
this.channels[channel] = 1;
|
|
250
340
|
this.channelsPressed.push(channel);
|
|
251
341
|
this.flags.push(InputManagerFlag.KeyDown);
|
|
252
|
-
// Consume the event: stop default browser actions (page scroll on
|
|
253
|
-
// arrow/space, find-as-you-type on /, etc.) and stop propagation
|
|
254
|
-
// so other listeners on the page don't double-handle.
|
|
255
342
|
stopEvent(event);
|
|
256
343
|
}
|
|
257
344
|
handleKeyUp(event) {
|
|
@@ -267,7 +354,7 @@ class InputManager {
|
|
|
267
354
|
handlePointerOver(event) {
|
|
268
355
|
const slot = this._assignSlot(event.pointerId);
|
|
269
356
|
if (slot === null) {
|
|
270
|
-
return;
|
|
357
|
+
return;
|
|
271
358
|
}
|
|
272
359
|
this.pointers[event.pointerId] = new Pointer(event, this.canvas, this.channels, slot);
|
|
273
360
|
this.flags.push(InputManagerFlag.PointerUpdate);
|
|
@@ -292,10 +379,6 @@ class InputManager {
|
|
|
292
379
|
pointer.handlePress(event);
|
|
293
380
|
this.gestureRecognizer.onPointerDown(pointer);
|
|
294
381
|
this.flags.push(InputManagerFlag.PointerUpdate);
|
|
295
|
-
// preventDefault stops native drag / text-selection;
|
|
296
|
-
// stopImmediatePropagation prevents bubbling to host-page click
|
|
297
|
-
// handlers so an embedded canvas doesn't accidentally trigger UI
|
|
298
|
-
// outside its bounds.
|
|
299
382
|
stopEvent(event);
|
|
300
383
|
}
|
|
301
384
|
handlePointerMove(event) {
|
|
@@ -355,13 +438,6 @@ class InputManager {
|
|
|
355
438
|
this.onCanvasFocusChange.dispatch(false);
|
|
356
439
|
}
|
|
357
440
|
}
|
|
358
|
-
/**
|
|
359
|
-
* Force every currently-held keyboard channel back to zero and emit
|
|
360
|
-
* onKeyUp for each. Called on canvas/window blur so keys held when
|
|
361
|
-
* focus leaves don't stay stuck "down" forever — without this, a user
|
|
362
|
-
* who alt-tabs while pressing W would have W register as held until
|
|
363
|
-
* they manually release while focus is back.
|
|
364
|
-
*/
|
|
365
441
|
releaseAllKeyboardChannels() {
|
|
366
442
|
for (let offset = 0; offset < ChannelSize.Category; offset++) {
|
|
367
443
|
const channel = ChannelOffset.Keyboard + offset;
|
|
@@ -410,49 +486,98 @@ class InputManager {
|
|
|
410
486
|
this.canvas.removeEventListener('selectstart', stopEvent, activeListenerOption);
|
|
411
487
|
}
|
|
412
488
|
updateGamepads() {
|
|
413
|
-
const
|
|
414
|
-
|
|
415
|
-
for (const
|
|
416
|
-
if (!
|
|
489
|
+
const browserGamepads = window.navigator.getGamepads();
|
|
490
|
+
const seenBrowserIndices = new Set();
|
|
491
|
+
for (const browserGamepad of browserGamepads) {
|
|
492
|
+
if (!browserGamepad) {
|
|
417
493
|
continue;
|
|
418
494
|
}
|
|
419
|
-
const
|
|
420
|
-
if (
|
|
495
|
+
const browserIndex = browserGamepad.index;
|
|
496
|
+
if (browserIndex < 0) {
|
|
421
497
|
continue;
|
|
422
498
|
}
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
if (
|
|
426
|
-
const
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
|
|
430
|
-
this.
|
|
431
|
-
|
|
432
|
-
else {
|
|
433
|
-
gamepad.connect(activeGamepad);
|
|
499
|
+
seenBrowserIndices.add(browserIndex);
|
|
500
|
+
const existing = this.gamepadsByBrowserIndex.get(browserIndex);
|
|
501
|
+
if (existing === undefined) {
|
|
502
|
+
const pad = this.assignSlotForNewPad(browserGamepad);
|
|
503
|
+
if (pad === null) {
|
|
504
|
+
continue;
|
|
505
|
+
}
|
|
506
|
+
this.gamepadsByBrowserIndex.set(browserIndex, pad);
|
|
507
|
+
this.onGamepadConnected.dispatch(pad);
|
|
434
508
|
}
|
|
435
|
-
|
|
436
|
-
|
|
437
|
-
|
|
438
|
-
|
|
439
|
-
|
|
440
|
-
if (this.gamepadSlotsActive[gamepad.index] === 0) {
|
|
441
|
-
gamepad.disconnect();
|
|
442
|
-
this.gamepadsValue.splice(index, 1);
|
|
443
|
-
this.gamepadsByIndex.delete(gamepad.index);
|
|
444
|
-
this.onGamepadDisconnected.dispatch(gamepad, this.gamepadsValue);
|
|
445
|
-
gamepad.destroy();
|
|
509
|
+
}
|
|
510
|
+
for (const [browserIndex, pad] of Array.from(this.gamepadsByBrowserIndex.entries())) {
|
|
511
|
+
if (!seenBrowserIndices.has(browserIndex)) {
|
|
512
|
+
this.gamepadsByBrowserIndex.delete(browserIndex);
|
|
513
|
+
this.handleGamepadDisconnect(pad);
|
|
446
514
|
}
|
|
447
515
|
}
|
|
516
|
+
for (const pad of this._gamepads) {
|
|
517
|
+
pad.update();
|
|
518
|
+
}
|
|
448
519
|
return this;
|
|
449
520
|
}
|
|
450
|
-
|
|
451
|
-
|
|
452
|
-
|
|
453
|
-
|
|
521
|
+
assignSlotForNewPad(browserGamepad) {
|
|
522
|
+
const definition = resolveGamepadDefinition(browserGamepad, this.gamepadDefinitions);
|
|
523
|
+
for (const pad of this._gamepads) {
|
|
524
|
+
if (!pad.connected) {
|
|
525
|
+
pad._bind(browserGamepad, definition);
|
|
526
|
+
return pad;
|
|
527
|
+
}
|
|
528
|
+
}
|
|
529
|
+
return null;
|
|
530
|
+
}
|
|
531
|
+
handleGamepadDisconnect(pad) {
|
|
532
|
+
if (this.slotStrategy !== 'compact') {
|
|
533
|
+
// Sticky: pad's slot becomes empty in place; fire onDisconnect
|
|
534
|
+
// on that slot directly.
|
|
535
|
+
pad._unbind();
|
|
536
|
+
this.onGamepadDisconnected.dispatch(pad);
|
|
537
|
+
return;
|
|
538
|
+
}
|
|
539
|
+
// Compact: in semantic terms the user lost a player, and the trailing
|
|
540
|
+
// (highest-numbered) occupied slot is the one that becomes empty.
|
|
541
|
+
// 1. Snapshot the highest occupied slot before any state change.
|
|
542
|
+
// 2. Silently vacate the disconnecting pad (no onDisconnect yet).
|
|
543
|
+
// 3. Shift higher-numbered occupied slots down to fill any gaps,
|
|
544
|
+
// firing onPadReassigned for each slot that received a new pad.
|
|
545
|
+
// 4. Fire onDisconnect on the slot that ended up empty (the one
|
|
546
|
+
// snapshotted in step 1).
|
|
547
|
+
let lastOccupiedSlot = -1;
|
|
548
|
+
for (let i = gamepadSlots - 1; i >= 0; i--) {
|
|
549
|
+
if (this._gamepads[i].connected) {
|
|
550
|
+
lastOccupiedSlot = i;
|
|
551
|
+
break;
|
|
552
|
+
}
|
|
553
|
+
}
|
|
554
|
+
pad._silentUnbind();
|
|
555
|
+
for (let target = 0; target < gamepadSlots; target++) {
|
|
556
|
+
if (this._gamepads[target].connected) {
|
|
557
|
+
continue;
|
|
558
|
+
}
|
|
559
|
+
for (let source = target + 1; source < gamepadSlots; source++) {
|
|
560
|
+
const sourcePad = this._gamepads[source];
|
|
561
|
+
if (!sourcePad.connected) {
|
|
562
|
+
continue;
|
|
563
|
+
}
|
|
564
|
+
const browserIndex = sourcePad.browserGamepad?.index;
|
|
565
|
+
const targetPad = this._gamepads[target];
|
|
566
|
+
const sourceSlot = sourcePad.slot;
|
|
567
|
+
targetPad._rebindFrom(sourcePad);
|
|
568
|
+
if (browserIndex !== undefined) {
|
|
569
|
+
this.gamepadsByBrowserIndex.set(browserIndex, targetPad);
|
|
570
|
+
}
|
|
571
|
+
targetPad.onPadReassigned.dispatch(sourceSlot);
|
|
572
|
+
this.onAnyGamepadReassigned.dispatch(targetPad, sourceSlot);
|
|
573
|
+
break;
|
|
574
|
+
}
|
|
575
|
+
}
|
|
576
|
+
if (lastOccupiedSlot >= 0) {
|
|
577
|
+
const emptiedSlot = this._gamepads[lastOccupiedSlot];
|
|
578
|
+
emptiedSlot._dispatchDisconnect();
|
|
579
|
+
this.onGamepadDisconnected.dispatch(emptiedSlot);
|
|
454
580
|
}
|
|
455
|
-
this.gamepadsValue.splice(insertIndex, 0, gamepad);
|
|
456
581
|
}
|
|
457
582
|
updateEvents() {
|
|
458
583
|
if (this.flags.pop(InputManagerFlag.KeyDown)) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"InputManager.js","sources":["../../../../src/input/InputManager.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"InputManager.js","sources":["../../../../src/input/InputManager.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
|
|
@@ -81,7 +81,7 @@ export declare class InteractionManager {
|
|
|
81
81
|
/**
|
|
82
82
|
* Process all pending pointer events accumulated since the last frame.
|
|
83
83
|
* Must be called once per frame from {@link Application.update}, after
|
|
84
|
-
* `
|
|
84
|
+
* `input.update()` has run (so signals are already dispatched and
|
|
85
85
|
* queued here) and before game-state updates so that user listeners on
|
|
86
86
|
* `onPointerDown` etc. fire before per-frame logic mutates state.
|
|
87
87
|
*
|
|
@@ -75,12 +75,12 @@ class InteractionManager {
|
|
|
75
75
|
this._onPointerTapHandler = this._handlePointerTap.bind(this);
|
|
76
76
|
this._onPointerCancelHandler = this._handlePointerCancel.bind(this);
|
|
77
77
|
this._onPointerLeaveHandler = this._handlePointerLeave.bind(this);
|
|
78
|
-
app.
|
|
79
|
-
app.
|
|
80
|
-
app.
|
|
81
|
-
app.
|
|
82
|
-
app.
|
|
83
|
-
app.
|
|
78
|
+
app.input.onPointerDown.add(this._onPointerDownHandler);
|
|
79
|
+
app.input.onPointerMove.add(this._onPointerMoveHandler);
|
|
80
|
+
app.input.onPointerUp.add(this._onPointerUpHandler);
|
|
81
|
+
app.input.onPointerTap.add(this._onPointerTapHandler);
|
|
82
|
+
app.input.onPointerCancel.add(this._onPointerCancelHandler);
|
|
83
|
+
app.input.onPointerLeave.add(this._onPointerLeaveHandler);
|
|
84
84
|
}
|
|
85
85
|
/**
|
|
86
86
|
* Returns the RenderNode currently hovered by the given pointer, or null.
|
|
@@ -124,12 +124,12 @@ class InteractionManager {
|
|
|
124
124
|
return this._quadtree;
|
|
125
125
|
}
|
|
126
126
|
destroy() {
|
|
127
|
-
this._app.
|
|
128
|
-
this._app.
|
|
129
|
-
this._app.
|
|
130
|
-
this._app.
|
|
131
|
-
this._app.
|
|
132
|
-
this._app.
|
|
127
|
+
this._app.input.onPointerDown.remove(this._onPointerDownHandler);
|
|
128
|
+
this._app.input.onPointerMove.remove(this._onPointerMoveHandler);
|
|
129
|
+
this._app.input.onPointerUp.remove(this._onPointerUpHandler);
|
|
130
|
+
this._app.input.onPointerTap.remove(this._onPointerTapHandler);
|
|
131
|
+
this._app.input.onPointerCancel.remove(this._onPointerCancelHandler);
|
|
132
|
+
this._app.input.onPointerLeave.remove(this._onPointerLeaveHandler);
|
|
133
133
|
this._lastHit.clear();
|
|
134
134
|
this._pending.clear();
|
|
135
135
|
this._capturedPointers.clear();
|
|
@@ -147,7 +147,7 @@ class InteractionManager {
|
|
|
147
147
|
/**
|
|
148
148
|
* Process all pending pointer events accumulated since the last frame.
|
|
149
149
|
* Must be called once per frame from {@link Application.update}, after
|
|
150
|
-
* `
|
|
150
|
+
* `input.update()` has run (so signals are already dispatched and
|
|
151
151
|
* queued here) and before game-state updates so that user listeners on
|
|
152
152
|
* `onPointerDown` etc. fire before per-frame logic mutates state.
|
|
153
153
|
*
|