@bloopjs/engine 0.0.88 → 0.0.89
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/dist/codegen/offsets.d.ts +40 -0
- package/dist/codegen/offsets.d.ts.map +1 -0
- package/dist/contexts/inputContext.d.ts +1 -0
- package/dist/contexts/inputContext.d.ts.map +1 -1
- package/dist/contexts/netContext.d.ts +2 -8
- package/dist/contexts/netContext.d.ts.map +1 -1
- package/dist/contexts/timeContext.d.ts.map +1 -1
- package/dist/engine.js +102 -77
- package/dist/engine.js.map +9 -8
- package/dist/inputs.d.ts +2 -7
- package/dist/inputs.d.ts.map +1 -1
- package/js/codegen/offsets.ts +48 -0
- package/js/contexts/inputContext.ts +20 -12
- package/js/contexts/netContext.ts +50 -51
- package/js/contexts/timeContext.ts +9 -3
- package/js/defaultUrl.ts +1 -1
- package/js/inputs.ts +18 -14
- package/package.json +1 -1
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
export declare const TIME_CTX_FRAME_OFFSET = 0;
|
|
2
|
+
export declare const TIME_CTX_DT_MS_OFFSET = 4;
|
|
3
|
+
export declare const TIME_CTX_TOTAL_MS_OFFSET = 8;
|
|
4
|
+
export declare const TIME_CTX_IS_RESIMULATING_OFFSET = 16;
|
|
5
|
+
export declare const TIME_CTX_SIZE = 24;
|
|
6
|
+
export declare const PEER_CTX_CONNECTED_OFFSET = 0;
|
|
7
|
+
export declare const PEER_CTX_PACKET_COUNT_OFFSET = 1;
|
|
8
|
+
export declare const PEER_CTX_SEQ_OFFSET = 2;
|
|
9
|
+
export declare const PEER_CTX_ACK_OFFSET = 4;
|
|
10
|
+
export declare const PEER_CTX_ACK_COUNT_OFFSET = 6;
|
|
11
|
+
export declare const PEER_CTX_SIZE = 8;
|
|
12
|
+
export declare const NET_CTX_PEER_COUNT_OFFSET = 0;
|
|
13
|
+
export declare const NET_CTX_LOCAL_PEER_ID_OFFSET = 1;
|
|
14
|
+
export declare const NET_CTX_IN_SESSION_OFFSET = 2;
|
|
15
|
+
export declare const NET_CTX_STATUS_OFFSET = 3;
|
|
16
|
+
export declare const NET_CTX_MATCH_FRAME_OFFSET = 4;
|
|
17
|
+
export declare const NET_CTX_SESSION_START_FRAME_OFFSET = 8;
|
|
18
|
+
export declare const NET_CTX_ROOM_CODE_OFFSET = 12;
|
|
19
|
+
export declare const NET_CTX_WANTS_ROOM_CODE_OFFSET = 20;
|
|
20
|
+
export declare const NET_CTX_WANTS_DISCONNECT_OFFSET = 28;
|
|
21
|
+
export declare const NET_CTX_PEERS_OFFSET = 32;
|
|
22
|
+
export declare const NET_CTX_LAST_ROLLBACK_DEPTH_OFFSET = 128;
|
|
23
|
+
export declare const NET_CTX_TOTAL_ROLLBACKS_OFFSET = 132;
|
|
24
|
+
export declare const NET_CTX_FRAMES_RESIMULATED_OFFSET = 136;
|
|
25
|
+
export declare const NET_CTX_SIZE = 144;
|
|
26
|
+
export declare const MOUSE_CTX_X_OFFSET = 0;
|
|
27
|
+
export declare const MOUSE_CTX_Y_OFFSET = 4;
|
|
28
|
+
export declare const MOUSE_CTX_WHEEL_X_OFFSET = 8;
|
|
29
|
+
export declare const MOUSE_CTX_WHEEL_Y_OFFSET = 12;
|
|
30
|
+
export declare const MOUSE_CTX_BUTTON_STATES_OFFSET = 16;
|
|
31
|
+
export declare const MOUSE_CTX_SIZE = 24;
|
|
32
|
+
export declare const KEY_CTX_KEY_STATES_OFFSET = 0;
|
|
33
|
+
export declare const KEY_CTX_SIZE = 256;
|
|
34
|
+
export declare const PLAYER_INPUTS_KEY_CTX_OFFSET = 0;
|
|
35
|
+
export declare const PLAYER_INPUTS_MOUSE_CTX_OFFSET = 256;
|
|
36
|
+
export declare const PLAYER_INPUTS_SIZE = 280;
|
|
37
|
+
export declare const INPUT_CTX_PLAYERS_OFFSET = 0;
|
|
38
|
+
export declare const INPUT_CTX_SIZE = 3360;
|
|
39
|
+
export declare const MAX_PLAYERS = 12;
|
|
40
|
+
//# sourceMappingURL=offsets.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"offsets.d.ts","sourceRoot":"","sources":["../../js/codegen/offsets.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,qBAAqB,IAAI,CAAC;AACvC,eAAO,MAAM,qBAAqB,IAAI,CAAC;AACvC,eAAO,MAAM,wBAAwB,IAAI,CAAC;AAC1C,eAAO,MAAM,+BAA+B,KAAK,CAAC;AAClD,eAAO,MAAM,aAAa,KAAK,CAAC;AAEhC,eAAO,MAAM,yBAAyB,IAAI,CAAC;AAC3C,eAAO,MAAM,4BAA4B,IAAI,CAAC;AAC9C,eAAO,MAAM,mBAAmB,IAAI,CAAC;AACrC,eAAO,MAAM,mBAAmB,IAAI,CAAC;AACrC,eAAO,MAAM,yBAAyB,IAAI,CAAC;AAC3C,eAAO,MAAM,aAAa,IAAI,CAAC;AAE/B,eAAO,MAAM,yBAAyB,IAAI,CAAC;AAC3C,eAAO,MAAM,4BAA4B,IAAI,CAAC;AAC9C,eAAO,MAAM,yBAAyB,IAAI,CAAC;AAC3C,eAAO,MAAM,qBAAqB,IAAI,CAAC;AACvC,eAAO,MAAM,0BAA0B,IAAI,CAAC;AAC5C,eAAO,MAAM,kCAAkC,IAAI,CAAC;AACpD,eAAO,MAAM,wBAAwB,KAAK,CAAC;AAC3C,eAAO,MAAM,8BAA8B,KAAK,CAAC;AACjD,eAAO,MAAM,+BAA+B,KAAK,CAAC;AAClD,eAAO,MAAM,oBAAoB,KAAK,CAAC;AACvC,eAAO,MAAM,kCAAkC,MAAM,CAAC;AACtD,eAAO,MAAM,8BAA8B,MAAM,CAAC;AAClD,eAAO,MAAM,iCAAiC,MAAM,CAAC;AACrD,eAAO,MAAM,YAAY,MAAM,CAAC;AAEhC,eAAO,MAAM,kBAAkB,IAAI,CAAC;AACpC,eAAO,MAAM,kBAAkB,IAAI,CAAC;AACpC,eAAO,MAAM,wBAAwB,IAAI,CAAC;AAC1C,eAAO,MAAM,wBAAwB,KAAK,CAAC;AAC3C,eAAO,MAAM,8BAA8B,KAAK,CAAC;AACjD,eAAO,MAAM,cAAc,KAAK,CAAC;AAEjC,eAAO,MAAM,yBAAyB,IAAI,CAAC;AAC3C,eAAO,MAAM,YAAY,MAAM,CAAC;AAEhC,eAAO,MAAM,4BAA4B,IAAI,CAAC;AAC9C,eAAO,MAAM,8BAA8B,MAAM,CAAC;AAClD,eAAO,MAAM,kBAAkB,MAAM,CAAC;AAEtC,eAAO,MAAM,wBAAwB,IAAI,CAAC;AAC1C,eAAO,MAAM,cAAc,OAAO,CAAC;AAEnC,eAAO,MAAM,WAAW,KAAK,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"inputContext.d.ts","sourceRoot":"","sources":["../../js/contexts/inputContext.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"inputContext.d.ts","sourceRoot":"","sources":["../../js/contexts/inputContext.ts"],"names":[],"mappings":"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Q,CAEjB;IACD,IAAI,EAAE,IAAI,QAAQ,CAEjB;IACD,IAAI,EAAE,IAAI,QAAQ,CAEjB;IACD,IAAI,EAAE,IAAI,QAAQ,CAEjB;IACD,IAAI,EAAE,IAAI,QAAQ,CAEjB;IACD,IAAI,EAAE,IAAI,QAAQ,CAEjB;IACD,IAAI,EAAE,IAAI,QAAQ,CAEjB;IACD,IAAI,GAAG,IAAI,QAAQ,CAElB;IACD,IAAI,GAAG,IAAI,QAAQ,CAElB;IACD,IAAI,GAAG,IAAI,QAAQ,CAElB;IACD,IAAI,GAAG,IAAI,QAAQ,CAElB;IACD,IAAI,GAAG,IAAI,QAAQ,CAElB;IACD,IAAI,GAAG,IAAI,QAAQ,CAElB;IACD,IAAI,GAAG,IAAI,QAAQ,CAElB;IACD,IAAI,GAAG,IAAI,QAAQ,CAElB;IACD,IAAI,GAAG,IAAI,QAAQ,CAElB;IACD,IAAI,GAAG,IAAI,QAAQ,CAElB;IACD,IAAI,GAAG,IAAI,QAAQ,CAElB;IACD,IAAI,GAAG,IAAI,QAAQ,CAElB;IACD,IAAI,GAAG,IAAI,QAAQ,CAElB;IACD,IAAI,GAAG,IAAI,QAAQ,CAElB;IACD,IAAI,GAAG,IAAI,QAAQ,CAElB;IACD,IAAI,GAAG,IAAI,QAAQ,CAElB;IACD,IAAI,GAAG,IAAI,QAAQ,CAElB;IACD,IAAI,GAAG,IAAI,QAAQ,CAElB;IACD,IAAI,GAAG,IAAI,QAAQ,CAElB;IACD,IAAI,GAAG,IAAI,QAAQ,CAElB;IACD,IAAI,GAAG,IAAI,QAAQ,CAElB;IACD,IAAI,GAAG,IAAI,QAAQ,CAElB;IACD,IAAI,GAAG,IAAI,QAAQ,CAElB;IACD,IAAI,GAAG,IAAI,QAAQ,CAElB;IACD,IAAI,GAAG,IAAI,QAAQ,CAElB;IACD,IAAI,GAAG,IAAI,QAAQ,CAElB;CAoBF"}
|
|
@@ -46,14 +46,8 @@ export type PeerInfo = {
|
|
|
46
46
|
ack: number;
|
|
47
47
|
};
|
|
48
48
|
/**
|
|
49
|
-
* NetCtx struct layout
|
|
50
|
-
*
|
|
51
|
-
* - local_peer_id: u8 (offset 1)
|
|
52
|
-
* - in_session: u8 (offset 2)
|
|
53
|
-
* - status: u8 (offset 3)
|
|
54
|
-
* - match_frame: u32 (offset 4)
|
|
55
|
-
* - session_start_frame: u32 (offset 8)
|
|
56
|
-
* - room_code: [8]u8 (offset 12)
|
|
49
|
+
* NetCtx struct layout is defined in context.zig.
|
|
50
|
+
* Field offsets are generated in codegen/offsets.ts.
|
|
57
51
|
*
|
|
58
52
|
* All getters read directly from the engine's memory via DataView.
|
|
59
53
|
* State is managed by the Zig engine, not TypeScript.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"netContext.d.ts","sourceRoot":"","sources":["../../js/contexts/netContext.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"netContext.d.ts","sourceRoot":"","sources":["../../js/contexts/netContext.ts"],"names":[],"mappings":"AAqBA;;GAEG;AACH,MAAM,MAAM,SAAS,GACjB,SAAS,GACT,OAAO,GACP,cAAc,GACd,WAAW,GACX,cAAc,CAAC;AAEnB,MAAM,MAAM,QAAQ,GAChB;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,IAAI,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAA;CAAE,GAC/C;IAAE,IAAI,EAAE,WAAW,CAAC;IAAC,IAAI,EAAE;QAAE,MAAM,EAAE,MAAM,CAAA;KAAE,CAAA;CAAE,GAC/C;IAAE,IAAI,EAAE,WAAW,CAAC;IAAC,IAAI,EAAE;QAAE,MAAM,EAAE,MAAM,CAAA;KAAE,CAAA;CAAE,GAC/C;IAAE,IAAI,EAAE,YAAY,CAAC;IAAC,IAAI,EAAE;QAAE,MAAM,EAAE,MAAM,CAAA;KAAE,CAAA;CAAE,GAChD;IAAE,IAAI,EAAE,sBAAsB,CAAC;IAAC,IAAI,EAAE;QAAE,MAAM,EAAE,MAAM,CAAA;KAAE,CAAA;CAAE,GAC1D;IAAE,IAAI,EAAE,eAAe,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAA;CAAE,GACtD;IAAE,IAAI,EAAE,aAAa,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAA;CAAE,CAAC;AAEzD,MAAM,MAAM,YAAY,GAAG,OAAO,CAAC,QAAQ,EAAE;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC,CAAC,MAAM,CAAC,CAAC;AAEvE;;GAEG;AACH,MAAM,MAAM,QAAQ,GAAG;IACrB,OAAO,EAAE,OAAO,CAAC;IACjB,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;CACb,CAAC;AAUF;;;;;;GAMG;AACH,qBAAa,UAAU;;IACrB,QAAQ,CAAC,EAAE,QAAQ,CAAC;gBAUR,QAAQ,CAAC,EAAE,QAAQ;IAW/B,iFAAiF;IACjF,IAAI,SAAS,IAAI,MAAM,CAKtB;IAED,mCAAmC;IACnC,IAAI,WAAW,IAAI,MAAM,CAKxB;IAED,qDAAqD;IACrD,IAAI,WAAW,IAAI,OAAO,CAKzB;IAED,6BAA6B;IAC7B,IAAI,MAAM,IAAI,SAAS,CAMtB;IAED,wEAAwE;IACxE,IAAI,UAAU,IAAI,MAAM,CAKvB;IAED;;;OAGG;IACH,IAAI,iBAAiB,IAAI,MAAM,CAK9B;IAED,wDAAwD;IACxD,IAAI,QAAQ,IAAI,MAAM,CAYrB;IAED,oDAAoD;IACpD,IAAI,aAAa,IAAI,MAAM,GAAG,SAAS,CAYtC;IAED,IAAI,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,EAczC;IAED,mDAAmD;IACnD,IAAI,eAAe,IAAI,OAAO,CAK7B;IAED,IAAI,eAAe,CAAC,KAAK,EAAE,OAAO,EAKjC;IAED;;;;;;;;;;;OAWG;IACH,IAAI,KAAK,IAAI,QAAQ,EAAE,CA+CtB;IAED,6DAA6D;IAC7D,IAAI,iBAAiB,IAAI,MAAM,CAK9B;IAED,oDAAoD;IACpD,IAAI,cAAc,IAAI,MAAM,CAK3B;IAED,mDAAmD;IACnD,IAAI,iBAAiB,IAAI,MAAM,CAM9B;CACF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"timeContext.d.ts","sourceRoot":"","sources":["../../js/contexts/timeContext.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"timeContext.d.ts","sourceRoot":"","sources":["../../js/contexts/timeContext.ts"],"names":[],"mappings":"AAMA,qBAAa,WAAW;IACtB,QAAQ,CAAC,EAAE,QAAQ,CAAC;gBAER,QAAQ,CAAC,EAAE,QAAQ;IAI/B,4EAA4E;IAC5E,IAAI,KAAK,IAAI,MAAM,CAKlB;IAED,iDAAiD;IACjD,IAAI,EAAE,IAAI,MAAM,CAKf;IAED,2DAA2D;IAC3D,IAAI,IAAI,IAAI,MAAM,CAKjB;CACF"}
|
package/dist/engine.js
CHANGED
|
@@ -286,34 +286,39 @@ var NetJoinFailReason;
|
|
|
286
286
|
NetJoinFailReason2[NetJoinFailReason2["room_not_found"] = 3] = "room_not_found";
|
|
287
287
|
NetJoinFailReason2[NetJoinFailReason2["already_in_room"] = 4] = "already_in_room";
|
|
288
288
|
})(NetJoinFailReason ||= {});
|
|
289
|
-
// js/
|
|
290
|
-
var
|
|
291
|
-
var
|
|
292
|
-
var
|
|
293
|
-
var
|
|
294
|
-
var
|
|
289
|
+
// js/codegen/offsets.ts
|
|
290
|
+
var TIME_CTX_FRAME_OFFSET = 0;
|
|
291
|
+
var TIME_CTX_DT_MS_OFFSET = 4;
|
|
292
|
+
var TIME_CTX_TOTAL_MS_OFFSET = 8;
|
|
293
|
+
var PEER_CTX_CONNECTED_OFFSET = 0;
|
|
294
|
+
var PEER_CTX_SEQ_OFFSET = 2;
|
|
295
|
+
var PEER_CTX_ACK_OFFSET = 4;
|
|
296
|
+
var PEER_CTX_SIZE = 8;
|
|
297
|
+
var NET_CTX_PEER_COUNT_OFFSET = 0;
|
|
298
|
+
var NET_CTX_LOCAL_PEER_ID_OFFSET = 1;
|
|
299
|
+
var NET_CTX_IN_SESSION_OFFSET = 2;
|
|
300
|
+
var NET_CTX_STATUS_OFFSET = 3;
|
|
301
|
+
var NET_CTX_MATCH_FRAME_OFFSET = 4;
|
|
302
|
+
var NET_CTX_SESSION_START_FRAME_OFFSET = 8;
|
|
303
|
+
var NET_CTX_ROOM_CODE_OFFSET = 12;
|
|
304
|
+
var NET_CTX_WANTS_ROOM_CODE_OFFSET = 20;
|
|
305
|
+
var NET_CTX_WANTS_DISCONNECT_OFFSET = 28;
|
|
306
|
+
var NET_CTX_PEERS_OFFSET = 32;
|
|
307
|
+
var NET_CTX_LAST_ROLLBACK_DEPTH_OFFSET = 128;
|
|
308
|
+
var NET_CTX_TOTAL_ROLLBACKS_OFFSET = 132;
|
|
309
|
+
var NET_CTX_FRAMES_RESIMULATED_OFFSET = 136;
|
|
310
|
+
var MOUSE_CTX_X_OFFSET = 0;
|
|
311
|
+
var MOUSE_CTX_Y_OFFSET = 4;
|
|
312
|
+
var MOUSE_CTX_WHEEL_X_OFFSET = 8;
|
|
313
|
+
var MOUSE_CTX_WHEEL_Y_OFFSET = 12;
|
|
314
|
+
var MOUSE_CTX_BUTTON_STATES_OFFSET = 16;
|
|
315
|
+
var MOUSE_CTX_SIZE = 24;
|
|
316
|
+
var KEY_CTX_SIZE = 256;
|
|
317
|
+
var PLAYER_INPUTS_KEY_CTX_OFFSET = 0;
|
|
318
|
+
var PLAYER_INPUTS_MOUSE_CTX_OFFSET = 256;
|
|
295
319
|
var PLAYER_INPUTS_SIZE = 280;
|
|
296
|
-
var INPUT_CTX_SIZE =
|
|
297
|
-
var
|
|
298
|
-
var EVENT_PAYLOAD_ALIGN = 4;
|
|
299
|
-
function keyToKeyCode(key) {
|
|
300
|
-
return Key[key];
|
|
301
|
-
}
|
|
302
|
-
function keyCodeToKey(code) {
|
|
303
|
-
return Key[code];
|
|
304
|
-
}
|
|
305
|
-
function mouseButtonToMouseButtonCode(button) {
|
|
306
|
-
return MouseButton[button];
|
|
307
|
-
}
|
|
308
|
-
function mouseButtonCodeToMouseButton(code) {
|
|
309
|
-
return MouseButton[code];
|
|
310
|
-
}
|
|
311
|
-
function inputSourceToInputSourceCode(source) {
|
|
312
|
-
return InputSource[source];
|
|
313
|
-
}
|
|
314
|
-
function inputSourceCodeToInputSource(code) {
|
|
315
|
-
return InputSource[code];
|
|
316
|
-
}
|
|
320
|
+
var INPUT_CTX_SIZE = 3360;
|
|
321
|
+
var MAX_PLAYERS = 12;
|
|
317
322
|
|
|
318
323
|
// js/contexts/inputContext.ts
|
|
319
324
|
class PlayerInputContext {
|
|
@@ -325,13 +330,13 @@ class PlayerInputContext {
|
|
|
325
330
|
}
|
|
326
331
|
get keys() {
|
|
327
332
|
if (!this.#keys) {
|
|
328
|
-
this.#keys = new KeyboardContext(new DataView(this.#dataView.buffer, this.#dataView.byteOffset +
|
|
333
|
+
this.#keys = new KeyboardContext(new DataView(this.#dataView.buffer, this.#dataView.byteOffset + PLAYER_INPUTS_KEY_CTX_OFFSET));
|
|
329
334
|
}
|
|
330
335
|
return this.#keys;
|
|
331
336
|
}
|
|
332
337
|
get mouse() {
|
|
333
338
|
if (!this.#mouse) {
|
|
334
|
-
this.#mouse = new MouseContext(new DataView(this.#dataView.buffer, this.#dataView.byteOffset +
|
|
339
|
+
this.#mouse = new MouseContext(new DataView(this.#dataView.buffer, this.#dataView.byteOffset + PLAYER_INPUTS_MOUSE_CTX_OFFSET));
|
|
335
340
|
}
|
|
336
341
|
return this.#mouse;
|
|
337
342
|
}
|
|
@@ -356,6 +361,9 @@ class InputContext {
|
|
|
356
361
|
this.#dataView = dataView;
|
|
357
362
|
this.#buildPlayers();
|
|
358
363
|
}
|
|
364
|
+
hasDataView() {
|
|
365
|
+
return !!this.#dataView;
|
|
366
|
+
}
|
|
359
367
|
#buildPlayers() {
|
|
360
368
|
this.#players = [];
|
|
361
369
|
for (let i = 0;i < MAX_PLAYERS; i++) {
|
|
@@ -388,19 +396,19 @@ class MouseContext {
|
|
|
388
396
|
this.#dataView = dataView;
|
|
389
397
|
}
|
|
390
398
|
get x() {
|
|
391
|
-
return this.#dataView.getFloat32(
|
|
399
|
+
return this.#dataView.getFloat32(MOUSE_CTX_X_OFFSET, true);
|
|
392
400
|
}
|
|
393
401
|
get y() {
|
|
394
|
-
return this.#dataView.getFloat32(
|
|
402
|
+
return this.#dataView.getFloat32(MOUSE_CTX_Y_OFFSET, true);
|
|
395
403
|
}
|
|
396
404
|
get wheel() {
|
|
397
405
|
return { x: this.wheelX, y: this.wheelY };
|
|
398
406
|
}
|
|
399
407
|
get wheelX() {
|
|
400
|
-
return this.#dataView.getFloat32(
|
|
408
|
+
return this.#dataView.getFloat32(MOUSE_CTX_WHEEL_X_OFFSET, true);
|
|
401
409
|
}
|
|
402
410
|
get wheelY() {
|
|
403
|
-
return this.#dataView.getFloat32(
|
|
411
|
+
return this.#dataView.getFloat32(MOUSE_CTX_WHEEL_Y_OFFSET, true);
|
|
404
412
|
}
|
|
405
413
|
get left() {
|
|
406
414
|
return this.#buttonState(1 /* Left */);
|
|
@@ -419,7 +427,7 @@ class MouseContext {
|
|
|
419
427
|
state = { down: false, held: false, up: false };
|
|
420
428
|
this.#buttonStates.set(code, state);
|
|
421
429
|
}
|
|
422
|
-
const offset =
|
|
430
|
+
const offset = MOUSE_CTX_BUTTON_STATES_OFFSET;
|
|
423
431
|
state.held = !!(this.#dataView.getUint8(offset + code) & 1);
|
|
424
432
|
state.down = state.held && !(this.#dataView.getUint8(offset + code) & 2);
|
|
425
433
|
state.up = !state.held && !!(this.#dataView.getUint8(offset + code) & 2);
|
|
@@ -1042,15 +1050,6 @@ class KeyboardContext {
|
|
|
1042
1050
|
}
|
|
1043
1051
|
}
|
|
1044
1052
|
// js/contexts/netContext.ts
|
|
1045
|
-
var MAX_PEERS = 12;
|
|
1046
|
-
var PEERS_ARRAY_OFFSET = 32;
|
|
1047
|
-
var PEER_CTX_SIZE = 8;
|
|
1048
|
-
var LAST_ROLLBACK_DEPTH_OFFSET = 128;
|
|
1049
|
-
var TOTAL_ROLLBACKS_OFFSET = 132;
|
|
1050
|
-
var FRAMES_RESIMULATED_OFFSET = 136;
|
|
1051
|
-
var PEER_CONNECTED_OFFSET = 0;
|
|
1052
|
-
var PEER_SEQ_OFFSET = 2;
|
|
1053
|
-
var PEER_ACK_OFFSET = 4;
|
|
1054
1053
|
var STATUS_MAP = {
|
|
1055
1054
|
0: "offline",
|
|
1056
1055
|
1: "local",
|
|
@@ -1061,7 +1060,7 @@ var STATUS_MAP = {
|
|
|
1061
1060
|
|
|
1062
1061
|
class NetContext {
|
|
1063
1062
|
dataView;
|
|
1064
|
-
#peers = Array.from({ length:
|
|
1063
|
+
#peers = Array.from({ length: MAX_PLAYERS }, () => ({
|
|
1065
1064
|
isLocal: false,
|
|
1066
1065
|
seq: -1,
|
|
1067
1066
|
ack: -1
|
|
@@ -1079,38 +1078,38 @@ class NetContext {
|
|
|
1079
1078
|
if (!this.#hasValidBuffer()) {
|
|
1080
1079
|
throw new Error("NetContext dataView is not valid");
|
|
1081
1080
|
}
|
|
1082
|
-
return this.dataView.getUint8(
|
|
1081
|
+
return this.dataView.getUint8(NET_CTX_PEER_COUNT_OFFSET);
|
|
1083
1082
|
}
|
|
1084
1083
|
get localPeerId() {
|
|
1085
1084
|
if (!this.#hasValidBuffer()) {
|
|
1086
1085
|
throw new Error("NetContext dataView is not valid");
|
|
1087
1086
|
}
|
|
1088
|
-
return this.dataView.getUint8(
|
|
1087
|
+
return this.dataView.getUint8(NET_CTX_LOCAL_PEER_ID_OFFSET);
|
|
1089
1088
|
}
|
|
1090
1089
|
get isInSession() {
|
|
1091
1090
|
if (!this.#hasValidBuffer()) {
|
|
1092
1091
|
throw new Error("NetContext dataView is not valid");
|
|
1093
1092
|
}
|
|
1094
|
-
return this.dataView.getUint8(
|
|
1093
|
+
return this.dataView.getUint8(NET_CTX_IN_SESSION_OFFSET) !== 0;
|
|
1095
1094
|
}
|
|
1096
1095
|
get status() {
|
|
1097
1096
|
if (!this.#hasValidBuffer()) {
|
|
1098
1097
|
throw new Error("NetContext dataView is not valid");
|
|
1099
1098
|
}
|
|
1100
|
-
const statusByte = this.dataView.getUint8(
|
|
1099
|
+
const statusByte = this.dataView.getUint8(NET_CTX_STATUS_OFFSET);
|
|
1101
1100
|
return STATUS_MAP[statusByte] ?? "local";
|
|
1102
1101
|
}
|
|
1103
1102
|
get matchFrame() {
|
|
1104
1103
|
if (!this.#hasValidBuffer()) {
|
|
1105
1104
|
throw new Error("NetContext dataView is not valid");
|
|
1106
1105
|
}
|
|
1107
|
-
return this.dataView.getUint32(
|
|
1106
|
+
return this.dataView.getUint32(NET_CTX_MATCH_FRAME_OFFSET, true);
|
|
1108
1107
|
}
|
|
1109
1108
|
get sessionStartFrame() {
|
|
1110
1109
|
if (!this.#hasValidBuffer()) {
|
|
1111
1110
|
throw new Error("NetContext dataView is not valid");
|
|
1112
1111
|
}
|
|
1113
|
-
return this.dataView.getUint32(
|
|
1112
|
+
return this.dataView.getUint32(NET_CTX_SESSION_START_FRAME_OFFSET, true);
|
|
1114
1113
|
}
|
|
1115
1114
|
get roomCode() {
|
|
1116
1115
|
if (!this.#hasValidBuffer()) {
|
|
@@ -1118,7 +1117,7 @@ class NetContext {
|
|
|
1118
1117
|
}
|
|
1119
1118
|
const bytes = [];
|
|
1120
1119
|
for (let i = 0;i < 8; i++) {
|
|
1121
|
-
const byte = this.dataView.getUint8(
|
|
1120
|
+
const byte = this.dataView.getUint8(NET_CTX_ROOM_CODE_OFFSET + i);
|
|
1122
1121
|
if (byte === 0)
|
|
1123
1122
|
break;
|
|
1124
1123
|
bytes.push(byte);
|
|
@@ -1131,7 +1130,7 @@ class NetContext {
|
|
|
1131
1130
|
}
|
|
1132
1131
|
const bytes = [];
|
|
1133
1132
|
for (let i = 0;i < 8; i++) {
|
|
1134
|
-
const byte = this.dataView.getUint8(
|
|
1133
|
+
const byte = this.dataView.getUint8(NET_CTX_WANTS_ROOM_CODE_OFFSET + i);
|
|
1135
1134
|
if (byte === 0)
|
|
1136
1135
|
break;
|
|
1137
1136
|
bytes.push(byte);
|
|
@@ -1143,11 +1142,11 @@ class NetContext {
|
|
|
1143
1142
|
throw new Error("NetContext dataView is not valid");
|
|
1144
1143
|
}
|
|
1145
1144
|
for (let i = 0;i < 8; i++) {
|
|
1146
|
-
this.dataView.setUint8(
|
|
1145
|
+
this.dataView.setUint8(NET_CTX_WANTS_ROOM_CODE_OFFSET + i, 0);
|
|
1147
1146
|
}
|
|
1148
1147
|
if (code) {
|
|
1149
1148
|
for (let i = 0;i < Math.min(code.length, 7); i++) {
|
|
1150
|
-
this.dataView.setUint8(
|
|
1149
|
+
this.dataView.setUint8(NET_CTX_WANTS_ROOM_CODE_OFFSET + i, code.charCodeAt(i));
|
|
1151
1150
|
}
|
|
1152
1151
|
}
|
|
1153
1152
|
}
|
|
@@ -1155,13 +1154,13 @@ class NetContext {
|
|
|
1155
1154
|
if (!this.#hasValidBuffer()) {
|
|
1156
1155
|
return false;
|
|
1157
1156
|
}
|
|
1158
|
-
return this.dataView.getUint8(
|
|
1157
|
+
return this.dataView.getUint8(NET_CTX_WANTS_DISCONNECT_OFFSET) !== 0;
|
|
1159
1158
|
}
|
|
1160
1159
|
set wantsDisconnect(value) {
|
|
1161
1160
|
if (!this.#hasValidBuffer()) {
|
|
1162
1161
|
throw new Error("NetContext dataView is not valid");
|
|
1163
1162
|
}
|
|
1164
|
-
this.dataView.setUint8(
|
|
1163
|
+
this.dataView.setUint8(NET_CTX_WANTS_DISCONNECT_OFFSET, value ? 1 : 0);
|
|
1165
1164
|
}
|
|
1166
1165
|
get peers() {
|
|
1167
1166
|
if (!this.#hasValidBuffer()) {
|
|
@@ -1171,13 +1170,13 @@ class NetContext {
|
|
|
1171
1170
|
const localPeerId = this.localPeerId;
|
|
1172
1171
|
const matchFrame = this.matchFrame;
|
|
1173
1172
|
let minRemoteSeq = -1;
|
|
1174
|
-
for (let i = 0;i <
|
|
1173
|
+
for (let i = 0;i < MAX_PLAYERS; i++) {
|
|
1175
1174
|
if (i === localPeerId)
|
|
1176
1175
|
continue;
|
|
1177
|
-
const peerOffset =
|
|
1178
|
-
if (dv.getUint8(peerOffset +
|
|
1176
|
+
const peerOffset = NET_CTX_PEERS_OFFSET + i * PEER_CTX_SIZE;
|
|
1177
|
+
if (dv.getUint8(peerOffset + PEER_CTX_CONNECTED_OFFSET) !== 1)
|
|
1179
1178
|
continue;
|
|
1180
|
-
const seq = dv.getInt16(peerOffset +
|
|
1179
|
+
const seq = dv.getInt16(peerOffset + PEER_CTX_SEQ_OFFSET, true);
|
|
1181
1180
|
if (seq < 0)
|
|
1182
1181
|
continue;
|
|
1183
1182
|
if (minRemoteSeq === -1 || seq < minRemoteSeq) {
|
|
@@ -1185,9 +1184,9 @@ class NetContext {
|
|
|
1185
1184
|
}
|
|
1186
1185
|
}
|
|
1187
1186
|
this.#peersResult.length = 0;
|
|
1188
|
-
for (let i = 0;i <
|
|
1189
|
-
const peerOffset =
|
|
1190
|
-
if (dv.getUint8(peerOffset +
|
|
1187
|
+
for (let i = 0;i < MAX_PLAYERS; i++) {
|
|
1188
|
+
const peerOffset = NET_CTX_PEERS_OFFSET + i * PEER_CTX_SIZE;
|
|
1189
|
+
if (dv.getUint8(peerOffset + PEER_CTX_CONNECTED_OFFSET) !== 1)
|
|
1191
1190
|
continue;
|
|
1192
1191
|
const peer = this.#peers[i];
|
|
1193
1192
|
if (!peer) {
|
|
@@ -1199,8 +1198,8 @@ class NetContext {
|
|
|
1199
1198
|
peer.seq = matchFrame;
|
|
1200
1199
|
peer.ack = minRemoteSeq;
|
|
1201
1200
|
} else {
|
|
1202
|
-
peer.seq = dv.getInt16(peerOffset +
|
|
1203
|
-
peer.ack = dv.getInt16(peerOffset +
|
|
1201
|
+
peer.seq = dv.getInt16(peerOffset + PEER_CTX_SEQ_OFFSET, true);
|
|
1202
|
+
peer.ack = dv.getInt16(peerOffset + PEER_CTX_ACK_OFFSET, true);
|
|
1204
1203
|
}
|
|
1205
1204
|
this.#peersResult.push(peer);
|
|
1206
1205
|
}
|
|
@@ -1210,19 +1209,19 @@ class NetContext {
|
|
|
1210
1209
|
if (!this.#hasValidBuffer()) {
|
|
1211
1210
|
throw new Error("NetContext dataView is not valid");
|
|
1212
1211
|
}
|
|
1213
|
-
return this.dataView.getUint32(
|
|
1212
|
+
return this.dataView.getUint32(NET_CTX_LAST_ROLLBACK_DEPTH_OFFSET, true);
|
|
1214
1213
|
}
|
|
1215
1214
|
get totalRollbacks() {
|
|
1216
1215
|
if (!this.#hasValidBuffer()) {
|
|
1217
1216
|
throw new Error("NetContext dataView is not valid");
|
|
1218
1217
|
}
|
|
1219
|
-
return this.dataView.getUint32(
|
|
1218
|
+
return this.dataView.getUint32(NET_CTX_TOTAL_ROLLBACKS_OFFSET, true);
|
|
1220
1219
|
}
|
|
1221
1220
|
get framesResimulated() {
|
|
1222
1221
|
if (!this.#hasValidBuffer()) {
|
|
1223
1222
|
throw new Error("NetContext dataView is not valid");
|
|
1224
1223
|
}
|
|
1225
|
-
return Number(this.dataView.getBigUint64(
|
|
1224
|
+
return Number(this.dataView.getBigUint64(NET_CTX_FRAMES_RESIMULATED_OFFSET, true));
|
|
1226
1225
|
}
|
|
1227
1226
|
}
|
|
1228
1227
|
// js/contexts/timeContext.ts
|
|
@@ -1235,21 +1234,42 @@ class TimeContext {
|
|
|
1235
1234
|
if (!this.dataView) {
|
|
1236
1235
|
throw new Error("TimeContext DataView is not initialized");
|
|
1237
1236
|
}
|
|
1238
|
-
return this.dataView.getUint32(
|
|
1237
|
+
return this.dataView.getUint32(TIME_CTX_FRAME_OFFSET, true);
|
|
1239
1238
|
}
|
|
1240
1239
|
get dt() {
|
|
1241
1240
|
if (!this.dataView) {
|
|
1242
1241
|
throw new Error("TimeContext DataView is not initialized");
|
|
1243
1242
|
}
|
|
1244
|
-
return this.dataView.getUint32(
|
|
1243
|
+
return this.dataView.getUint32(TIME_CTX_DT_MS_OFFSET, true) / 1000;
|
|
1245
1244
|
}
|
|
1246
1245
|
get time() {
|
|
1247
1246
|
if (!this.dataView) {
|
|
1248
1247
|
throw new Error("TimeContext DataView is not initialized");
|
|
1249
1248
|
}
|
|
1250
|
-
return this.dataView.getUint32(
|
|
1249
|
+
return this.dataView.getUint32(TIME_CTX_TOTAL_MS_OFFSET, true) / 1000;
|
|
1251
1250
|
}
|
|
1252
1251
|
}
|
|
1252
|
+
// js/inputs.ts
|
|
1253
|
+
var EVENT_PAYLOAD_SIZE = 8;
|
|
1254
|
+
var EVENT_PAYLOAD_ALIGN = 4;
|
|
1255
|
+
function keyToKeyCode(key) {
|
|
1256
|
+
return Key[key];
|
|
1257
|
+
}
|
|
1258
|
+
function keyCodeToKey(code) {
|
|
1259
|
+
return Key[code];
|
|
1260
|
+
}
|
|
1261
|
+
function mouseButtonToMouseButtonCode(button) {
|
|
1262
|
+
return MouseButton[button];
|
|
1263
|
+
}
|
|
1264
|
+
function mouseButtonCodeToMouseButton(code) {
|
|
1265
|
+
return MouseButton[code];
|
|
1266
|
+
}
|
|
1267
|
+
function inputSourceToInputSourceCode(source) {
|
|
1268
|
+
return InputSource[source];
|
|
1269
|
+
}
|
|
1270
|
+
function inputSourceCodeToInputSource(code) {
|
|
1271
|
+
return InputSource[code];
|
|
1272
|
+
}
|
|
1253
1273
|
// js/tape.ts
|
|
1254
1274
|
var TAPE_MAGIC = 1413566533;
|
|
1255
1275
|
function readTapeHeader(tape) {
|
|
@@ -1267,7 +1287,7 @@ function readTapeHeader(tape) {
|
|
|
1267
1287
|
};
|
|
1268
1288
|
}
|
|
1269
1289
|
// js/defaultUrl.ts
|
|
1270
|
-
var DEFAULT_WASM_URL = new URL("https://unpkg.com/@bloopjs/engine@0.0.
|
|
1290
|
+
var DEFAULT_WASM_URL = new URL("https://unpkg.com/@bloopjs/engine@0.0.89/wasm/bloop.wasm");
|
|
1271
1291
|
|
|
1272
1292
|
// js/engine.ts
|
|
1273
1293
|
var MAX_ROLLBACK_FRAMES = 500;
|
|
@@ -1293,16 +1313,21 @@ export {
|
|
|
1293
1313
|
SNAPSHOT_HEADER_ENGINE_LEN_OFFSET,
|
|
1294
1314
|
PlayerInputContext,
|
|
1295
1315
|
PLAYER_INPUTS_SIZE,
|
|
1316
|
+
PLAYER_INPUTS_MOUSE_CTX_OFFSET,
|
|
1317
|
+
PLAYER_INPUTS_KEY_CTX_OFFSET,
|
|
1296
1318
|
NetContext,
|
|
1297
1319
|
NET_CTX_OFFSET,
|
|
1298
1320
|
MouseContext,
|
|
1299
|
-
MOUSE_OFFSET,
|
|
1300
|
-
|
|
1321
|
+
PLAYER_INPUTS_MOUSE_CTX_OFFSET as MOUSE_OFFSET,
|
|
1322
|
+
MOUSE_CTX_SIZE,
|
|
1323
|
+
MOUSE_CTX_BUTTON_STATES_OFFSET,
|
|
1324
|
+
MOUSE_CTX_BUTTON_STATES_OFFSET as MOUSE_BUTTONS_OFFSET,
|
|
1301
1325
|
MAX_ROLLBACK_FRAMES,
|
|
1302
1326
|
MAX_PLAYERS,
|
|
1303
1327
|
KeyboardContext,
|
|
1304
|
-
|
|
1305
|
-
|
|
1328
|
+
KEY_CTX_SIZE,
|
|
1329
|
+
KEY_CTX_SIZE as KEYBOARD_SIZE,
|
|
1330
|
+
PLAYER_INPUTS_KEY_CTX_OFFSET as KEYBOARD_OFFSET,
|
|
1306
1331
|
InputContext,
|
|
1307
1332
|
INPUT_CTX_SIZE,
|
|
1308
1333
|
INPUT_CTX_OFFSET,
|
|
@@ -1313,5 +1338,5 @@ export {
|
|
|
1313
1338
|
DEFAULT_WASM_URL
|
|
1314
1339
|
};
|
|
1315
1340
|
|
|
1316
|
-
//# debugId=
|
|
1341
|
+
//# debugId=E58B71F8E35933D164756E2164756E21
|
|
1317
1342
|
//# sourceMappingURL=engine.js.map
|