@bloopjs/engine 0.0.87 → 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.
@@ -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"}
@@ -22,6 +22,7 @@ export declare class InputContext {
22
22
  */
23
23
  get dataView(): NonNullable<DataView>;
24
24
  set dataView(dataView: DataView);
25
+ hasDataView(): boolean;
25
26
  /**
26
27
  * Array of all player input contexts.
27
28
  * Access via: context.players[0].keys.a.held
@@ -1 +1 @@
1
- {"version":3,"file":"inputContext.d.ts","sourceRoot":"","sources":["../../js/contexts/inputContext.ts"],"names":[],"mappings":"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,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"}
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 (from context.zig):
50
- * - peer_count: u8 (offset 0)
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.
@@ -98,5 +92,11 @@ export declare class NetContext {
98
92
  * - ack = the frame they've acknowledged from us (-1 if none)
99
93
  */
100
94
  get peers(): PeerInfo[];
95
+ /** Last rollback depth (how many frames were rolled back) */
96
+ get lastRollbackDepth(): number;
97
+ /** Total number of rollbacks during this session */
98
+ get totalRollbacks(): number;
99
+ /** Total frames resimulated during this session */
100
+ get framesResimulated(): number;
101
101
  }
102
102
  //# sourceMappingURL=netContext.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"netContext.d.ts","sourceRoot":"","sources":["../../js/contexts/netContext.ts"],"names":[],"mappings":"AAAA;;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;AAqBF;;;;;;;;;;;;GAYG;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;CACF"}
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":"AAAA,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"}
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/inputs.ts
290
- var MAX_PLAYERS = 12;
291
- var KEYBOARD_OFFSET = 0;
292
- var KEYBOARD_SIZE = 256;
293
- var MOUSE_OFFSET = 256;
294
- var MOUSE_BUTTONS_OFFSET = 16;
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 = MAX_PLAYERS * PLAYER_INPUTS_SIZE;
297
- var EVENT_PAYLOAD_SIZE = 8;
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 + KEYBOARD_OFFSET));
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 + MOUSE_OFFSET));
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(0, true);
399
+ return this.#dataView.getFloat32(MOUSE_CTX_X_OFFSET, true);
392
400
  }
393
401
  get y() {
394
- return this.#dataView.getFloat32(4, true);
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(8, true);
408
+ return this.#dataView.getFloat32(MOUSE_CTX_WHEEL_X_OFFSET, true);
401
409
  }
402
410
  get wheelY() {
403
- return this.#dataView.getFloat32(12, true);
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 = MOUSE_BUTTONS_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,14 +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 PEER_CONNECTED_OFFSET = 0;
1049
- var PEER_PACKET_COUNT_OFFSET = 1;
1050
- var PEER_SEQ_OFFSET = 2;
1051
- var PEER_ACK_OFFSET = 4;
1052
- var PEER_ACK_COUNT_OFFSET = 6;
1053
1053
  var STATUS_MAP = {
1054
1054
  0: "offline",
1055
1055
  1: "local",
@@ -1060,7 +1060,7 @@ var STATUS_MAP = {
1060
1060
 
1061
1061
  class NetContext {
1062
1062
  dataView;
1063
- #peers = Array.from({ length: MAX_PEERS }, () => ({
1063
+ #peers = Array.from({ length: MAX_PLAYERS }, () => ({
1064
1064
  isLocal: false,
1065
1065
  seq: -1,
1066
1066
  ack: -1
@@ -1078,38 +1078,38 @@ class NetContext {
1078
1078
  if (!this.#hasValidBuffer()) {
1079
1079
  throw new Error("NetContext dataView is not valid");
1080
1080
  }
1081
- return this.dataView.getUint8(0);
1081
+ return this.dataView.getUint8(NET_CTX_PEER_COUNT_OFFSET);
1082
1082
  }
1083
1083
  get localPeerId() {
1084
1084
  if (!this.#hasValidBuffer()) {
1085
1085
  throw new Error("NetContext dataView is not valid");
1086
1086
  }
1087
- return this.dataView.getUint8(1);
1087
+ return this.dataView.getUint8(NET_CTX_LOCAL_PEER_ID_OFFSET);
1088
1088
  }
1089
1089
  get isInSession() {
1090
1090
  if (!this.#hasValidBuffer()) {
1091
1091
  throw new Error("NetContext dataView is not valid");
1092
1092
  }
1093
- return this.dataView.getUint8(2) !== 0;
1093
+ return this.dataView.getUint8(NET_CTX_IN_SESSION_OFFSET) !== 0;
1094
1094
  }
1095
1095
  get status() {
1096
1096
  if (!this.#hasValidBuffer()) {
1097
1097
  throw new Error("NetContext dataView is not valid");
1098
1098
  }
1099
- const statusByte = this.dataView.getUint8(3);
1099
+ const statusByte = this.dataView.getUint8(NET_CTX_STATUS_OFFSET);
1100
1100
  return STATUS_MAP[statusByte] ?? "local";
1101
1101
  }
1102
1102
  get matchFrame() {
1103
1103
  if (!this.#hasValidBuffer()) {
1104
1104
  throw new Error("NetContext dataView is not valid");
1105
1105
  }
1106
- return this.dataView.getUint32(4, true);
1106
+ return this.dataView.getUint32(NET_CTX_MATCH_FRAME_OFFSET, true);
1107
1107
  }
1108
1108
  get sessionStartFrame() {
1109
1109
  if (!this.#hasValidBuffer()) {
1110
1110
  throw new Error("NetContext dataView is not valid");
1111
1111
  }
1112
- return this.dataView.getUint32(8, true);
1112
+ return this.dataView.getUint32(NET_CTX_SESSION_START_FRAME_OFFSET, true);
1113
1113
  }
1114
1114
  get roomCode() {
1115
1115
  if (!this.#hasValidBuffer()) {
@@ -1117,7 +1117,7 @@ class NetContext {
1117
1117
  }
1118
1118
  const bytes = [];
1119
1119
  for (let i = 0;i < 8; i++) {
1120
- const byte = this.dataView.getUint8(12 + i);
1120
+ const byte = this.dataView.getUint8(NET_CTX_ROOM_CODE_OFFSET + i);
1121
1121
  if (byte === 0)
1122
1122
  break;
1123
1123
  bytes.push(byte);
@@ -1130,7 +1130,7 @@ class NetContext {
1130
1130
  }
1131
1131
  const bytes = [];
1132
1132
  for (let i = 0;i < 8; i++) {
1133
- const byte = this.dataView.getUint8(20 + i);
1133
+ const byte = this.dataView.getUint8(NET_CTX_WANTS_ROOM_CODE_OFFSET + i);
1134
1134
  if (byte === 0)
1135
1135
  break;
1136
1136
  bytes.push(byte);
@@ -1142,11 +1142,11 @@ class NetContext {
1142
1142
  throw new Error("NetContext dataView is not valid");
1143
1143
  }
1144
1144
  for (let i = 0;i < 8; i++) {
1145
- this.dataView.setUint8(20 + i, 0);
1145
+ this.dataView.setUint8(NET_CTX_WANTS_ROOM_CODE_OFFSET + i, 0);
1146
1146
  }
1147
1147
  if (code) {
1148
1148
  for (let i = 0;i < Math.min(code.length, 7); i++) {
1149
- this.dataView.setUint8(20 + i, code.charCodeAt(i));
1149
+ this.dataView.setUint8(NET_CTX_WANTS_ROOM_CODE_OFFSET + i, code.charCodeAt(i));
1150
1150
  }
1151
1151
  }
1152
1152
  }
@@ -1154,13 +1154,13 @@ class NetContext {
1154
1154
  if (!this.#hasValidBuffer()) {
1155
1155
  return false;
1156
1156
  }
1157
- return this.dataView.getUint8(28) !== 0;
1157
+ return this.dataView.getUint8(NET_CTX_WANTS_DISCONNECT_OFFSET) !== 0;
1158
1158
  }
1159
1159
  set wantsDisconnect(value) {
1160
1160
  if (!this.#hasValidBuffer()) {
1161
1161
  throw new Error("NetContext dataView is not valid");
1162
1162
  }
1163
- this.dataView.setUint8(28, value ? 1 : 0);
1163
+ this.dataView.setUint8(NET_CTX_WANTS_DISCONNECT_OFFSET, value ? 1 : 0);
1164
1164
  }
1165
1165
  get peers() {
1166
1166
  if (!this.#hasValidBuffer()) {
@@ -1170,23 +1170,23 @@ class NetContext {
1170
1170
  const localPeerId = this.localPeerId;
1171
1171
  const matchFrame = this.matchFrame;
1172
1172
  let minRemoteSeq = -1;
1173
- for (let i = 0;i < MAX_PEERS; i++) {
1173
+ for (let i = 0;i < MAX_PLAYERS; i++) {
1174
1174
  if (i === localPeerId)
1175
1175
  continue;
1176
- const peerOffset = PEERS_ARRAY_OFFSET + i * PEER_CTX_SIZE;
1177
- if (dv.getUint8(peerOffset + PEER_CONNECTED_OFFSET) !== 1)
1176
+ const peerOffset = NET_CTX_PEERS_OFFSET + i * PEER_CTX_SIZE;
1177
+ if (dv.getUint8(peerOffset + PEER_CTX_CONNECTED_OFFSET) !== 1)
1178
1178
  continue;
1179
- if (dv.getUint8(peerOffset + PEER_PACKET_COUNT_OFFSET) === 0)
1179
+ const seq = dv.getInt16(peerOffset + PEER_CTX_SEQ_OFFSET, true);
1180
+ if (seq < 0)
1180
1181
  continue;
1181
- const seq = dv.getUint16(peerOffset + PEER_SEQ_OFFSET, true);
1182
1182
  if (minRemoteSeq === -1 || seq < minRemoteSeq) {
1183
1183
  minRemoteSeq = seq;
1184
1184
  }
1185
1185
  }
1186
1186
  this.#peersResult.length = 0;
1187
- for (let i = 0;i < MAX_PEERS; i++) {
1188
- const peerOffset = PEERS_ARRAY_OFFSET + i * PEER_CTX_SIZE;
1189
- if (dv.getUint8(peerOffset + PEER_CONNECTED_OFFSET) !== 1)
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)
1190
1190
  continue;
1191
1191
  const peer = this.#peers[i];
1192
1192
  if (!peer) {
@@ -1198,15 +1198,31 @@ class NetContext {
1198
1198
  peer.seq = matchFrame;
1199
1199
  peer.ack = minRemoteSeq;
1200
1200
  } else {
1201
- const packetCount = dv.getUint8(peerOffset + PEER_PACKET_COUNT_OFFSET);
1202
- const ackCount = dv.getUint8(peerOffset + PEER_ACK_COUNT_OFFSET);
1203
- peer.seq = packetCount === 0 ? -1 : dv.getUint16(peerOffset + PEER_SEQ_OFFSET, true);
1204
- peer.ack = ackCount === 0 ? -1 : dv.getUint16(peerOffset + PEER_ACK_OFFSET, true);
1201
+ peer.seq = dv.getInt16(peerOffset + PEER_CTX_SEQ_OFFSET, true);
1202
+ peer.ack = dv.getInt16(peerOffset + PEER_CTX_ACK_OFFSET, true);
1205
1203
  }
1206
1204
  this.#peersResult.push(peer);
1207
1205
  }
1208
1206
  return this.#peersResult;
1209
1207
  }
1208
+ get lastRollbackDepth() {
1209
+ if (!this.#hasValidBuffer()) {
1210
+ throw new Error("NetContext dataView is not valid");
1211
+ }
1212
+ return this.dataView.getUint32(NET_CTX_LAST_ROLLBACK_DEPTH_OFFSET, true);
1213
+ }
1214
+ get totalRollbacks() {
1215
+ if (!this.#hasValidBuffer()) {
1216
+ throw new Error("NetContext dataView is not valid");
1217
+ }
1218
+ return this.dataView.getUint32(NET_CTX_TOTAL_ROLLBACKS_OFFSET, true);
1219
+ }
1220
+ get framesResimulated() {
1221
+ if (!this.#hasValidBuffer()) {
1222
+ throw new Error("NetContext dataView is not valid");
1223
+ }
1224
+ return Number(this.dataView.getBigUint64(NET_CTX_FRAMES_RESIMULATED_OFFSET, true));
1225
+ }
1210
1226
  }
1211
1227
  // js/contexts/timeContext.ts
1212
1228
  class TimeContext {
@@ -1218,21 +1234,42 @@ class TimeContext {
1218
1234
  if (!this.dataView) {
1219
1235
  throw new Error("TimeContext DataView is not initialized");
1220
1236
  }
1221
- return this.dataView.getUint32(0, true);
1237
+ return this.dataView.getUint32(TIME_CTX_FRAME_OFFSET, true);
1222
1238
  }
1223
1239
  get dt() {
1224
1240
  if (!this.dataView) {
1225
1241
  throw new Error("TimeContext DataView is not initialized");
1226
1242
  }
1227
- return this.dataView.getUint32(4, true) / 1000;
1243
+ return this.dataView.getUint32(TIME_CTX_DT_MS_OFFSET, true) / 1000;
1228
1244
  }
1229
1245
  get time() {
1230
1246
  if (!this.dataView) {
1231
1247
  throw new Error("TimeContext DataView is not initialized");
1232
1248
  }
1233
- return this.dataView.getUint32(8, true) / 1000;
1249
+ return this.dataView.getUint32(TIME_CTX_TOTAL_MS_OFFSET, true) / 1000;
1234
1250
  }
1235
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
+ }
1236
1273
  // js/tape.ts
1237
1274
  var TAPE_MAGIC = 1413566533;
1238
1275
  function readTapeHeader(tape) {
@@ -1250,7 +1287,7 @@ function readTapeHeader(tape) {
1250
1287
  };
1251
1288
  }
1252
1289
  // js/defaultUrl.ts
1253
- var DEFAULT_WASM_URL = new URL("https://unpkg.com/@bloopjs/engine@0.0.87/wasm/bloop.wasm");
1290
+ var DEFAULT_WASM_URL = new URL("https://unpkg.com/@bloopjs/engine@0.0.89/wasm/bloop.wasm");
1254
1291
 
1255
1292
  // js/engine.ts
1256
1293
  var MAX_ROLLBACK_FRAMES = 500;
@@ -1276,16 +1313,21 @@ export {
1276
1313
  SNAPSHOT_HEADER_ENGINE_LEN_OFFSET,
1277
1314
  PlayerInputContext,
1278
1315
  PLAYER_INPUTS_SIZE,
1316
+ PLAYER_INPUTS_MOUSE_CTX_OFFSET,
1317
+ PLAYER_INPUTS_KEY_CTX_OFFSET,
1279
1318
  NetContext,
1280
1319
  NET_CTX_OFFSET,
1281
1320
  MouseContext,
1282
- MOUSE_OFFSET,
1283
- MOUSE_BUTTONS_OFFSET,
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,
1284
1325
  MAX_ROLLBACK_FRAMES,
1285
1326
  MAX_PLAYERS,
1286
1327
  KeyboardContext,
1287
- KEYBOARD_SIZE,
1288
- KEYBOARD_OFFSET,
1328
+ KEY_CTX_SIZE,
1329
+ KEY_CTX_SIZE as KEYBOARD_SIZE,
1330
+ PLAYER_INPUTS_KEY_CTX_OFFSET as KEYBOARD_OFFSET,
1289
1331
  InputContext,
1290
1332
  INPUT_CTX_SIZE,
1291
1333
  INPUT_CTX_OFFSET,
@@ -1296,5 +1338,5 @@ export {
1296
1338
  DEFAULT_WASM_URL
1297
1339
  };
1298
1340
 
1299
- //# debugId=9B6D95398695556E64756E2164756E21
1341
+ //# debugId=E58B71F8E35933D164756E2164756E21
1300
1342
  //# sourceMappingURL=engine.js.map