rn-gamekit 0.1.0
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 +18 -0
- package/LICENSE +21 -0
- package/README.md +131 -0
- package/lib/module/assets/defineAssets.js +48 -0
- package/lib/module/assets/defineAssets.js.map +1 -0
- package/lib/module/assets/errors.js +38 -0
- package/lib/module/assets/errors.js.map +1 -0
- package/lib/module/assets/types.js +2 -0
- package/lib/module/assets/types.js.map +1 -0
- package/lib/module/assets/validation.js +99 -0
- package/lib/module/assets/validation.js.map +1 -0
- package/lib/module/core/frameDriver.js +20 -0
- package/lib/module/core/frameDriver.js.map +1 -0
- package/lib/module/core/input/createInputBuffer.js +296 -0
- package/lib/module/core/input/createInputBuffer.js.map +1 -0
- package/lib/module/core/input/types.js +4 -0
- package/lib/module/core/input/types.js.map +1 -0
- package/lib/module/core/session/createGameSession.js +554 -0
- package/lib/module/core/session/createGameSession.js.map +1 -0
- package/lib/module/core/session/deepFreeze.js +155 -0
- package/lib/module/core/session/deepFreeze.js.map +1 -0
- package/lib/module/core/session/diagnostics.js +2 -0
- package/lib/module/core/session/diagnostics.js.map +1 -0
- package/lib/module/core/session/types.js +43 -0
- package/lib/module/core/session/types.js.map +1 -0
- package/lib/module/definition/defineGame.js +57 -0
- package/lib/module/definition/defineGame.js.map +1 -0
- package/lib/module/definition/types.js +4 -0
- package/lib/module/definition/types.js.map +1 -0
- package/lib/module/geometry/types.js +2 -0
- package/lib/module/geometry/types.js.map +1 -0
- package/lib/module/index.js +12 -0
- package/lib/module/index.js.map +1 -0
- package/lib/module/package.json +1 -0
- package/lib/module/react/GamePointerInput.js +385 -0
- package/lib/module/react/GamePointerInput.js.map +1 -0
- package/lib/module/react/GameView.js +223 -0
- package/lib/module/react/GameView.js.map +1 -0
- package/lib/module/react/alphaClock.js +42 -0
- package/lib/module/react/alphaClock.js.map +1 -0
- package/lib/module/react/assets/createGameAssetStore.js +358 -0
- package/lib/module/react/assets/createGameAssetStore.js.map +1 -0
- package/lib/module/react/assets/decodeSkiaImage.js +54 -0
- package/lib/module/react/assets/decodeSkiaImage.js.map +1 -0
- package/lib/module/react/assets/errors.js +10 -0
- package/lib/module/react/assets/errors.js.map +1 -0
- package/lib/module/react/assets/useGameAssets.js +160 -0
- package/lib/module/react/assets/useGameAssets.js.map +1 -0
- package/lib/module/react/bindAppLifecycle.js +58 -0
- package/lib/module/react/bindAppLifecycle.js.map +1 -0
- package/lib/module/react/bindGameSession.js +37 -0
- package/lib/module/react/bindGameSession.js.map +1 -0
- package/lib/module/react/gestureLifecycle.js +68 -0
- package/lib/module/react/gestureLifecycle.js.map +1 -0
- package/lib/module/react/instrumentation.js +4 -0
- package/lib/module/react/instrumentation.js.map +1 -0
- package/lib/module/react/pointerBinding.js +196 -0
- package/lib/module/react/pointerBinding.js.map +1 -0
- package/lib/module/react/pointerCoalescer.js +224 -0
- package/lib/module/react/pointerCoalescer.js.map +1 -0
- package/lib/module/react/pointerContainment.js +27 -0
- package/lib/module/react/pointerContainment.js.map +1 -0
- package/lib/module/react/sprites/GameSprite.js +116 -0
- package/lib/module/react/sprites/GameSprite.js.map +1 -0
- package/lib/module/react/sprites/GameWorld2D.js +44 -0
- package/lib/module/react/sprites/GameWorld2D.js.map +1 -0
- package/lib/module/react/sprites/Sprite.js +147 -0
- package/lib/module/react/sprites/Sprite.js.map +1 -0
- package/lib/module/react/sprites/SpriteBatch.js +173 -0
- package/lib/module/react/sprites/SpriteBatch.js.map +1 -0
- package/lib/module/react/sprites/spriteBatchPolicy.js +25 -0
- package/lib/module/react/sprites/spriteBatchPolicy.js.map +1 -0
- package/lib/module/react/sprites/spriteTransform.js +135 -0
- package/lib/module/react/sprites/spriteTransform.js.map +1 -0
- package/lib/module/react/viewportBinding.js +101 -0
- package/lib/module/react/viewportBinding.js.map +1 -0
- package/lib/module/react.js +13 -0
- package/lib/module/react.js.map +1 -0
- package/lib/module/scene/defineScene.js +29 -0
- package/lib/module/scene/defineScene.js.map +1 -0
- package/lib/module/scene/types.js +4 -0
- package/lib/module/scene/types.js.map +1 -0
- package/lib/module/sprites/sampleSpriteClip.js +50 -0
- package/lib/module/sprites/sampleSpriteClip.js.map +1 -0
- package/lib/module/sprites/spriteAnimationState.js +165 -0
- package/lib/module/sprites/spriteAnimationState.js.map +1 -0
- package/lib/module/testing.js +57 -0
- package/lib/module/testing.js.map +1 -0
- package/lib/module/viewport2d/index.js +4 -0
- package/lib/module/viewport2d/index.js.map +1 -0
- package/lib/module/viewport2d/math.js +129 -0
- package/lib/module/viewport2d/math.js.map +1 -0
- package/lib/module/viewport2d/types.js +2 -0
- package/lib/module/viewport2d/types.js.map +1 -0
- package/lib/typescript/package.json +1 -0
- package/lib/typescript/src/assets/defineAssets.d.ts +20 -0
- package/lib/typescript/src/assets/defineAssets.d.ts.map +1 -0
- package/lib/typescript/src/assets/errors.d.ts +20 -0
- package/lib/typescript/src/assets/errors.d.ts.map +1 -0
- package/lib/typescript/src/assets/types.d.ts +138 -0
- package/lib/typescript/src/assets/types.d.ts.map +1 -0
- package/lib/typescript/src/assets/validation.d.ts +15 -0
- package/lib/typescript/src/assets/validation.d.ts.map +1 -0
- package/lib/typescript/src/core/frameDriver.d.ts +12 -0
- package/lib/typescript/src/core/frameDriver.d.ts.map +1 -0
- package/lib/typescript/src/core/input/createInputBuffer.d.ts +12 -0
- package/lib/typescript/src/core/input/createInputBuffer.d.ts.map +1 -0
- package/lib/typescript/src/core/input/types.d.ts +64 -0
- package/lib/typescript/src/core/input/types.d.ts.map +1 -0
- package/lib/typescript/src/core/session/createGameSession.d.ts +18 -0
- package/lib/typescript/src/core/session/createGameSession.d.ts.map +1 -0
- package/lib/typescript/src/core/session/deepFreeze.d.ts +27 -0
- package/lib/typescript/src/core/session/deepFreeze.d.ts.map +1 -0
- package/lib/typescript/src/core/session/diagnostics.d.ts +36 -0
- package/lib/typescript/src/core/session/diagnostics.d.ts.map +1 -0
- package/lib/typescript/src/core/session/types.d.ts +104 -0
- package/lib/typescript/src/core/session/types.d.ts.map +1 -0
- package/lib/typescript/src/definition/defineGame.d.ts +66 -0
- package/lib/typescript/src/definition/defineGame.d.ts.map +1 -0
- package/lib/typescript/src/definition/types.d.ts +56 -0
- package/lib/typescript/src/definition/types.d.ts.map +1 -0
- package/lib/typescript/src/geometry/types.d.ts +8 -0
- package/lib/typescript/src/geometry/types.d.ts.map +1 -0
- package/lib/typescript/src/index.d.ts +18 -0
- package/lib/typescript/src/index.d.ts.map +1 -0
- package/lib/typescript/src/react/GamePointerInput.d.ts +37 -0
- package/lib/typescript/src/react/GamePointerInput.d.ts.map +1 -0
- package/lib/typescript/src/react/GameView.d.ts +61 -0
- package/lib/typescript/src/react/GameView.d.ts.map +1 -0
- package/lib/typescript/src/react/alphaClock.d.ts +29 -0
- package/lib/typescript/src/react/alphaClock.d.ts.map +1 -0
- package/lib/typescript/src/react/assets/createGameAssetStore.d.ts +33 -0
- package/lib/typescript/src/react/assets/createGameAssetStore.d.ts.map +1 -0
- package/lib/typescript/src/react/assets/decodeSkiaImage.d.ts +12 -0
- package/lib/typescript/src/react/assets/decodeSkiaImage.d.ts.map +1 -0
- package/lib/typescript/src/react/assets/errors.d.ts +8 -0
- package/lib/typescript/src/react/assets/errors.d.ts.map +1 -0
- package/lib/typescript/src/react/assets/useGameAssets.d.ts +35 -0
- package/lib/typescript/src/react/assets/useGameAssets.d.ts.map +1 -0
- package/lib/typescript/src/react/bindAppLifecycle.d.ts +32 -0
- package/lib/typescript/src/react/bindAppLifecycle.d.ts.map +1 -0
- package/lib/typescript/src/react/bindGameSession.d.ts +14 -0
- package/lib/typescript/src/react/bindGameSession.d.ts.map +1 -0
- package/lib/typescript/src/react/gestureLifecycle.d.ts +37 -0
- package/lib/typescript/src/react/gestureLifecycle.d.ts.map +1 -0
- package/lib/typescript/src/react/instrumentation.d.ts +47 -0
- package/lib/typescript/src/react/instrumentation.d.ts.map +1 -0
- package/lib/typescript/src/react/pointerBinding.d.ts +104 -0
- package/lib/typescript/src/react/pointerBinding.d.ts.map +1 -0
- package/lib/typescript/src/react/pointerCoalescer.d.ts +106 -0
- package/lib/typescript/src/react/pointerCoalescer.d.ts.map +1 -0
- package/lib/typescript/src/react/pointerContainment.d.ts +12 -0
- package/lib/typescript/src/react/pointerContainment.d.ts.map +1 -0
- package/lib/typescript/src/react/sprites/GameSprite.d.ts +75 -0
- package/lib/typescript/src/react/sprites/GameSprite.d.ts.map +1 -0
- package/lib/typescript/src/react/sprites/GameWorld2D.d.ts +29 -0
- package/lib/typescript/src/react/sprites/GameWorld2D.d.ts.map +1 -0
- package/lib/typescript/src/react/sprites/Sprite.d.ts +43 -0
- package/lib/typescript/src/react/sprites/Sprite.d.ts.map +1 -0
- package/lib/typescript/src/react/sprites/SpriteBatch.d.ts +41 -0
- package/lib/typescript/src/react/sprites/SpriteBatch.d.ts.map +1 -0
- package/lib/typescript/src/react/sprites/spriteBatchPolicy.d.ts +10 -0
- package/lib/typescript/src/react/sprites/spriteBatchPolicy.d.ts.map +1 -0
- package/lib/typescript/src/react/sprites/spriteTransform.d.ts +86 -0
- package/lib/typescript/src/react/sprites/spriteTransform.d.ts.map +1 -0
- package/lib/typescript/src/react/viewportBinding.d.ts +42 -0
- package/lib/typescript/src/react/viewportBinding.d.ts.map +1 -0
- package/lib/typescript/src/react.d.ts +20 -0
- package/lib/typescript/src/react.d.ts.map +1 -0
- package/lib/typescript/src/scene/defineScene.d.ts +26 -0
- package/lib/typescript/src/scene/defineScene.d.ts.map +1 -0
- package/lib/typescript/src/scene/types.d.ts +71 -0
- package/lib/typescript/src/scene/types.d.ts.map +1 -0
- package/lib/typescript/src/sprites/sampleSpriteClip.d.ts +24 -0
- package/lib/typescript/src/sprites/sampleSpriteClip.d.ts.map +1 -0
- package/lib/typescript/src/sprites/spriteAnimationState.d.ts +45 -0
- package/lib/typescript/src/sprites/spriteAnimationState.d.ts.map +1 -0
- package/lib/typescript/src/testing.d.ts +28 -0
- package/lib/typescript/src/testing.d.ts.map +1 -0
- package/lib/typescript/src/viewport2d/index.d.ts +3 -0
- package/lib/typescript/src/viewport2d/index.d.ts.map +1 -0
- package/lib/typescript/src/viewport2d/math.d.ts +25 -0
- package/lib/typescript/src/viewport2d/math.d.ts.map +1 -0
- package/lib/typescript/src/viewport2d/types.d.ts +59 -0
- package/lib/typescript/src/viewport2d/types.d.ts.map +1 -0
- package/package.json +120 -0
- package/src/assets/defineAssets.ts +62 -0
- package/src/assets/errors.ts +64 -0
- package/src/assets/types.ts +164 -0
- package/src/assets/validation.ts +158 -0
- package/src/core/frameDriver.ts +31 -0
- package/src/core/input/createInputBuffer.ts +337 -0
- package/src/core/input/types.ts +67 -0
- package/src/core/session/createGameSession.ts +652 -0
- package/src/core/session/deepFreeze.ts +158 -0
- package/src/core/session/diagnostics.ts +35 -0
- package/src/core/session/types.ts +122 -0
- package/src/definition/defineGame.ts +94 -0
- package/src/definition/types.ts +67 -0
- package/src/geometry/types.ts +7 -0
- package/src/index.ts +84 -0
- package/src/react/GamePointerInput.tsx +478 -0
- package/src/react/GameView.tsx +317 -0
- package/src/react/alphaClock.ts +59 -0
- package/src/react/assets/createGameAssetStore.ts +459 -0
- package/src/react/assets/decodeSkiaImage.ts +64 -0
- package/src/react/assets/errors.ts +7 -0
- package/src/react/assets/useGameAssets.ts +171 -0
- package/src/react/bindAppLifecycle.ts +79 -0
- package/src/react/bindGameSession.ts +41 -0
- package/src/react/gestureLifecycle.ts +73 -0
- package/src/react/instrumentation.ts +54 -0
- package/src/react/pointerBinding.ts +226 -0
- package/src/react/pointerCoalescer.ts +234 -0
- package/src/react/pointerContainment.ts +23 -0
- package/src/react/sprites/GameSprite.tsx +192 -0
- package/src/react/sprites/GameWorld2D.tsx +46 -0
- package/src/react/sprites/Sprite.tsx +194 -0
- package/src/react/sprites/SpriteBatch.tsx +219 -0
- package/src/react/sprites/spriteBatchPolicy.ts +21 -0
- package/src/react/sprites/spriteTransform.ts +163 -0
- package/src/react/viewportBinding.ts +104 -0
- package/src/react.ts +37 -0
- package/src/scene/defineScene.ts +38 -0
- package/src/scene/types.ts +79 -0
- package/src/sprites/sampleSpriteClip.ts +51 -0
- package/src/sprites/spriteAnimationState.ts +176 -0
- package/src/testing.ts +61 -0
- package/src/viewport2d/index.ts +7 -0
- package/src/viewport2d/math.ts +134 -0
- package/src/viewport2d/types.ts +63 -0
|
@@ -0,0 +1,296 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
function freezePoint(x, y) {
|
|
4
|
+
return Object.freeze({
|
|
5
|
+
x,
|
|
6
|
+
y
|
|
7
|
+
});
|
|
8
|
+
}
|
|
9
|
+
function assertFinitePointerId(pointerId) {
|
|
10
|
+
if (!Number.isFinite(pointerId)) {
|
|
11
|
+
throw new TypeError(`Pointer id must be finite (got ${pointerId})`);
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
function assertFinitePosition(position) {
|
|
15
|
+
if (!Number.isFinite(position.x) || !Number.isFinite(position.y)) {
|
|
16
|
+
throw new TypeError(`Pointer position must be finite (got ${position.x}, ${position.y})`);
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
export function createInputBuffer(input, assertLive) {
|
|
20
|
+
const states = new Map();
|
|
21
|
+
// F1: monotonic count of accepted input events. The lab associates a commit
|
|
22
|
+
// with the inputs its sampled step actually consumed via this counter.
|
|
23
|
+
let acceptedCount = 0;
|
|
24
|
+
for (const [action, actionConfig] of Object.entries(input)) {
|
|
25
|
+
if (actionConfig.type === 'pointer') {
|
|
26
|
+
states.set(action, {
|
|
27
|
+
kind: 'pointer',
|
|
28
|
+
ownsSlot: false,
|
|
29
|
+
active: false,
|
|
30
|
+
pressed: false,
|
|
31
|
+
released: false,
|
|
32
|
+
cancelled: false,
|
|
33
|
+
pointerId: undefined,
|
|
34
|
+
position: undefined,
|
|
35
|
+
delta: {
|
|
36
|
+
x: 0,
|
|
37
|
+
y: 0
|
|
38
|
+
},
|
|
39
|
+
pendingBegin: undefined
|
|
40
|
+
});
|
|
41
|
+
} else {
|
|
42
|
+
states.set(action, {
|
|
43
|
+
kind: 'button',
|
|
44
|
+
held: false,
|
|
45
|
+
pressed: false,
|
|
46
|
+
released: false,
|
|
47
|
+
cancelled: false
|
|
48
|
+
});
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
const getState = action => {
|
|
52
|
+
const state = states.get(action);
|
|
53
|
+
if (!state) {
|
|
54
|
+
throw new Error(`Unknown input action: ${action}`);
|
|
55
|
+
}
|
|
56
|
+
return state;
|
|
57
|
+
};
|
|
58
|
+
const getButton = action => {
|
|
59
|
+
const state = getState(action);
|
|
60
|
+
if (state.kind !== 'button') {
|
|
61
|
+
throw new Error(`Input action "${action}" is a pointer action, not a button`);
|
|
62
|
+
}
|
|
63
|
+
return state;
|
|
64
|
+
};
|
|
65
|
+
const getPointer = action => {
|
|
66
|
+
const state = getState(action);
|
|
67
|
+
if (state.kind !== 'pointer') {
|
|
68
|
+
throw new Error(`Input action "${action}" is a button action, not a pointer`);
|
|
69
|
+
}
|
|
70
|
+
return state;
|
|
71
|
+
};
|
|
72
|
+
const controller = Object.freeze({
|
|
73
|
+
get acceptedCount() {
|
|
74
|
+
return acceptedCount;
|
|
75
|
+
},
|
|
76
|
+
press(action) {
|
|
77
|
+
assertLive();
|
|
78
|
+
acceptedCount += 1;
|
|
79
|
+
const state = getButton(action);
|
|
80
|
+
state.pressed ||= !state.held;
|
|
81
|
+
state.held = true;
|
|
82
|
+
},
|
|
83
|
+
release(action) {
|
|
84
|
+
assertLive();
|
|
85
|
+
acceptedCount += 1;
|
|
86
|
+
const state = getButton(action);
|
|
87
|
+
state.released ||= state.held;
|
|
88
|
+
state.held = false;
|
|
89
|
+
},
|
|
90
|
+
begin(action, pointerId, position) {
|
|
91
|
+
assertLive();
|
|
92
|
+
assertFinitePointerId(pointerId);
|
|
93
|
+
assertFinitePosition(position);
|
|
94
|
+
const state = getPointer(action);
|
|
95
|
+
if (state.ownsSlot && state.active) {
|
|
96
|
+
return; // Secondary pointer: the first pointer owns the action slot.
|
|
97
|
+
}
|
|
98
|
+
if (state.ownsSlot && !state.active) {
|
|
99
|
+
// The current owner released but the terminal edge has not been
|
|
100
|
+
// sampled yet. Queue the first new pointer and transfer after the
|
|
101
|
+
// release/cancel frame.
|
|
102
|
+
if (state.pendingBegin === undefined) {
|
|
103
|
+
state.pendingBegin = {
|
|
104
|
+
pointerId,
|
|
105
|
+
position: freezePoint(position.x, position.y)
|
|
106
|
+
};
|
|
107
|
+
}
|
|
108
|
+
acceptedCount += 1;
|
|
109
|
+
return;
|
|
110
|
+
}
|
|
111
|
+
acceptedCount += 1;
|
|
112
|
+
state.ownsSlot = true;
|
|
113
|
+
state.active = true;
|
|
114
|
+
state.pressed = true;
|
|
115
|
+
state.pointerId = pointerId;
|
|
116
|
+
state.position = freezePoint(position.x, position.y);
|
|
117
|
+
state.delta.x = 0;
|
|
118
|
+
state.delta.y = 0;
|
|
119
|
+
},
|
|
120
|
+
move(action, pointerId, position) {
|
|
121
|
+
assertLive();
|
|
122
|
+
assertFinitePointerId(pointerId);
|
|
123
|
+
assertFinitePosition(position);
|
|
124
|
+
const state = getPointer(action);
|
|
125
|
+
if (!state.ownsSlot || !state.active || state.pointerId !== pointerId) {
|
|
126
|
+
return;
|
|
127
|
+
}
|
|
128
|
+
acceptedCount += 1;
|
|
129
|
+
if (state.position !== undefined) {
|
|
130
|
+
state.delta.x += position.x - state.position.x;
|
|
131
|
+
state.delta.y += position.y - state.position.y;
|
|
132
|
+
}
|
|
133
|
+
state.position = freezePoint(position.x, position.y);
|
|
134
|
+
},
|
|
135
|
+
end(action, pointerId) {
|
|
136
|
+
assertLive();
|
|
137
|
+
assertFinitePointerId(pointerId);
|
|
138
|
+
const state = getPointer(action);
|
|
139
|
+
if (!state.ownsSlot || state.pointerId !== pointerId) {
|
|
140
|
+
return;
|
|
141
|
+
}
|
|
142
|
+
acceptedCount += 1;
|
|
143
|
+
// The slot stays owned until the release edge is sampled so a fast
|
|
144
|
+
// end -> begin between ticks cannot corrupt the terminal frame.
|
|
145
|
+
state.active = false;
|
|
146
|
+
state.released = true;
|
|
147
|
+
},
|
|
148
|
+
cancel(action) {
|
|
149
|
+
assertLive();
|
|
150
|
+
const state = getState(action);
|
|
151
|
+
if (state.kind === 'button') {
|
|
152
|
+
acceptedCount += 1;
|
|
153
|
+
state.cancelled = true;
|
|
154
|
+
state.released ||= state.held;
|
|
155
|
+
state.held = false;
|
|
156
|
+
return;
|
|
157
|
+
}
|
|
158
|
+
if (!state.ownsSlot) {
|
|
159
|
+
return;
|
|
160
|
+
}
|
|
161
|
+
acceptedCount += 1;
|
|
162
|
+
// Same slot semantics as `end`.
|
|
163
|
+
state.active = false;
|
|
164
|
+
state.cancelled = true;
|
|
165
|
+
}
|
|
166
|
+
});
|
|
167
|
+
const samplePointer = state => {
|
|
168
|
+
const sampled = Object.freeze({
|
|
169
|
+
active: state.active,
|
|
170
|
+
pressed: state.pressed,
|
|
171
|
+
released: state.released,
|
|
172
|
+
cancelled: state.cancelled,
|
|
173
|
+
...(state.pointerId !== undefined ? {
|
|
174
|
+
pointerId: state.pointerId
|
|
175
|
+
} : {}),
|
|
176
|
+
...(state.position !== undefined ? {
|
|
177
|
+
position: state.position
|
|
178
|
+
} : {}),
|
|
179
|
+
delta: freezePoint(state.delta.x, state.delta.y)
|
|
180
|
+
});
|
|
181
|
+
state.pressed = false;
|
|
182
|
+
state.released = false;
|
|
183
|
+
state.cancelled = false;
|
|
184
|
+
state.delta.x = 0;
|
|
185
|
+
state.delta.y = 0;
|
|
186
|
+
if (sampled.released || sampled.cancelled) {
|
|
187
|
+
if (state.pendingBegin !== undefined) {
|
|
188
|
+
// Transfer to the queued pointer after the terminal frame.
|
|
189
|
+
state.active = true;
|
|
190
|
+
state.pressed = true;
|
|
191
|
+
state.pointerId = state.pendingBegin.pointerId;
|
|
192
|
+
state.position = state.pendingBegin.position;
|
|
193
|
+
state.delta.x = 0;
|
|
194
|
+
state.delta.y = 0;
|
|
195
|
+
state.pendingBegin = undefined;
|
|
196
|
+
} else {
|
|
197
|
+
state.ownsSlot = false;
|
|
198
|
+
state.pointerId = undefined;
|
|
199
|
+
state.position = undefined;
|
|
200
|
+
}
|
|
201
|
+
}
|
|
202
|
+
return sampled;
|
|
203
|
+
};
|
|
204
|
+
return {
|
|
205
|
+
controller,
|
|
206
|
+
sample() {
|
|
207
|
+
const sampled = new Map();
|
|
208
|
+
for (const [action, state] of states) {
|
|
209
|
+
if (state.kind === 'pointer') {
|
|
210
|
+
sampled.set(action, {
|
|
211
|
+
kind: 'pointer',
|
|
212
|
+
state: samplePointer(state)
|
|
213
|
+
});
|
|
214
|
+
} else {
|
|
215
|
+
sampled.set(action, {
|
|
216
|
+
kind: 'button',
|
|
217
|
+
state: Object.freeze({
|
|
218
|
+
held: state.held,
|
|
219
|
+
pressed: state.pressed,
|
|
220
|
+
released: state.released,
|
|
221
|
+
cancelled: state.cancelled
|
|
222
|
+
})
|
|
223
|
+
});
|
|
224
|
+
state.pressed = false;
|
|
225
|
+
state.released = false;
|
|
226
|
+
state.cancelled = false;
|
|
227
|
+
}
|
|
228
|
+
}
|
|
229
|
+
return Object.freeze({
|
|
230
|
+
button(action) {
|
|
231
|
+
const entry = sampled.get(action);
|
|
232
|
+
if (!entry) {
|
|
233
|
+
throw new Error(`Unknown input action: ${action}`);
|
|
234
|
+
}
|
|
235
|
+
if (entry.kind !== 'button') {
|
|
236
|
+
throw new Error(`Input action "${action}" is a pointer action, not a button`);
|
|
237
|
+
}
|
|
238
|
+
return entry.state;
|
|
239
|
+
},
|
|
240
|
+
pointer(action) {
|
|
241
|
+
const entry = sampled.get(action);
|
|
242
|
+
if (!entry) {
|
|
243
|
+
throw new Error(`Unknown input action: ${action}`);
|
|
244
|
+
}
|
|
245
|
+
if (entry.kind !== 'pointer') {
|
|
246
|
+
throw new Error(`Input action "${action}" is a button action, not a pointer`);
|
|
247
|
+
}
|
|
248
|
+
return entry.state;
|
|
249
|
+
}
|
|
250
|
+
});
|
|
251
|
+
},
|
|
252
|
+
resetForTransition(targetActions) {
|
|
253
|
+
const targetActionSet = new Set(targetActions);
|
|
254
|
+
for (const [action, state] of states) {
|
|
255
|
+
const preservePointer = state.kind === 'pointer' && state.ownsSlot && state.active && targetActionSet.has(action);
|
|
256
|
+
if (state.kind === 'pointer') {
|
|
257
|
+
if (!preservePointer) {
|
|
258
|
+
state.ownsSlot = false;
|
|
259
|
+
state.active = false;
|
|
260
|
+
state.pointerId = undefined;
|
|
261
|
+
state.position = undefined;
|
|
262
|
+
}
|
|
263
|
+
state.pendingBegin = undefined;
|
|
264
|
+
state.delta.x = 0;
|
|
265
|
+
state.delta.y = 0;
|
|
266
|
+
} else {
|
|
267
|
+
// Buttons are semantic scene actions rather than a continuous spatial
|
|
268
|
+
// gesture. Do not leak a held button into a newly created scene.
|
|
269
|
+
state.held = false;
|
|
270
|
+
}
|
|
271
|
+
state.pressed = false;
|
|
272
|
+
state.released = false;
|
|
273
|
+
state.cancelled = false;
|
|
274
|
+
}
|
|
275
|
+
},
|
|
276
|
+
reset() {
|
|
277
|
+
for (const state of states.values()) {
|
|
278
|
+
if (state.kind === 'pointer') {
|
|
279
|
+
state.ownsSlot = false;
|
|
280
|
+
state.active = false;
|
|
281
|
+
state.pointerId = undefined;
|
|
282
|
+
state.position = undefined;
|
|
283
|
+
state.pendingBegin = undefined;
|
|
284
|
+
state.delta.x = 0;
|
|
285
|
+
state.delta.y = 0;
|
|
286
|
+
} else {
|
|
287
|
+
state.held = false;
|
|
288
|
+
}
|
|
289
|
+
state.pressed = false;
|
|
290
|
+
state.released = false;
|
|
291
|
+
state.cancelled = false;
|
|
292
|
+
}
|
|
293
|
+
}
|
|
294
|
+
};
|
|
295
|
+
}
|
|
296
|
+
//# sourceMappingURL=createInputBuffer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["freezePoint","x","y","Object","freeze","assertFinitePointerId","pointerId","Number","isFinite","TypeError","assertFinitePosition","position","createInputBuffer","input","assertLive","states","Map","acceptedCount","action","actionConfig","entries","type","set","kind","ownsSlot","active","pressed","released","cancelled","undefined","delta","pendingBegin","held","getState","state","get","Error","getButton","getPointer","controller","press","release","begin","move","end","cancel","samplePointer","sampled","sample","button","entry","pointer","resetForTransition","targetActions","targetActionSet","Set","preservePointer","has","reset","values"],"sourceRoot":"../../../../src","sources":["core/input/createInputBuffer.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":[],"sourceRoot":"../../../../src","sources":["core/input/types.ts"],"mappings":"","ignoreList":[]}
|