@bloopjs/web 0.0.50 → 0.0.52

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/mod.js CHANGED
@@ -81,6 +81,8 @@ __export2(exports_engine, {
81
81
  SNAPSHOT_HEADER_ENGINE_LEN_OFFSET: () => SNAPSHOT_HEADER_ENGINE_LEN_OFFSET,
82
82
  PlayerInputContext: () => PlayerInputContext,
83
83
  PLAYER_INPUTS_SIZE: () => PLAYER_INPUTS_SIZE,
84
+ NetContext: () => NetContext,
85
+ NET_CTX_OFFSET: () => NET_CTX_OFFSET,
84
86
  MouseContext: () => MouseContext,
85
87
  MOUSE_OFFSET: () => MOUSE_OFFSET,
86
88
  MOUSE_BUTTONS_OFFSET: () => MOUSE_BUTTONS_OFFSET,
@@ -1145,10 +1147,33 @@ class TimeContext {
1145
1147
  return this.dataView.getUint32(8, true) / 1000;
1146
1148
  }
1147
1149
  }
1150
+
1151
+ class NetContext {
1152
+ dataView;
1153
+ constructor(dataView) {
1154
+ this.dataView = dataView;
1155
+ }
1156
+ get peerCount() {
1157
+ if (!this.dataView) {
1158
+ throw new Error("NetContext DataView is not initialized");
1159
+ }
1160
+ return this.dataView.getUint8(0);
1161
+ }
1162
+ get isInSession() {
1163
+ return this.peerCount > 0;
1164
+ }
1165
+ get matchFrame() {
1166
+ if (!this.dataView) {
1167
+ throw new Error("NetContext DataView is not initialized");
1168
+ }
1169
+ return this.dataView.getUint32(4, true);
1170
+ }
1171
+ }
1148
1172
  var DEFAULT_WASM_URL = new URL("../wasm/bloop.wasm", import.meta.url);
1149
1173
  var TIME_CTX_OFFSET = 0;
1150
1174
  var INPUT_CTX_OFFSET = TIME_CTX_OFFSET + 4;
1151
1175
  var EVENTS_OFFSET = INPUT_CTX_OFFSET + 4;
1176
+ var NET_CTX_OFFSET = EVENTS_OFFSET + 4;
1152
1177
  var SNAPSHOT_HEADER_LEN = 16;
1153
1178
  var SNAPSHOT_HEADER_USER_LEN_OFFSET = 4;
1154
1179
  var SNAPSHOT_HEADER_ENGINE_LEN_OFFSET = 8;
@@ -1401,8 +1426,10 @@ async function mount(opts) {
1401
1426
  opts.hooks.setBuffer(memory.buffer);
1402
1427
  opts.hooks.systemsCallback(system_handle, ptr);
1403
1428
  },
1404
- __before_frame: function(frame) {
1429
+ __before_frame: function(ptr, frame) {
1405
1430
  try {
1431
+ opts.hooks.setBuffer(memory.buffer);
1432
+ opts.hooks.setContext(ptr);
1406
1433
  opts.hooks.beforeFrame?.(frame);
1407
1434
  } catch (e) {
1408
1435
  console.error("Error in beforeFrame hook:", e);
@@ -1461,7 +1488,8 @@ class Bloop {
1461
1488
  get players() {
1462
1489
  return inputs.players;
1463
1490
  },
1464
- rawPointer: -1
1491
+ rawPointer: -1,
1492
+ net: new NetContext
1465
1493
  };
1466
1494
  }
1467
1495
  get bag() {
@@ -1508,9 +1536,11 @@ class Bloop {
1508
1536
  const dv = new DataView(this.#engineBuffer, ptr);
1509
1537
  const timeCtxPtr = dv.getUint32(TIME_CTX_OFFSET, true);
1510
1538
  const inputCtxPtr = dv.getUint32(INPUT_CTX_OFFSET, true);
1539
+ const netCtxPtr = dv.getUint32(NET_CTX_OFFSET, true);
1511
1540
  this.#context.rawPointer = ptr;
1512
1541
  this.#context.inputs.dataView = new DataView(this.#engineBuffer, inputCtxPtr);
1513
1542
  this.#context.time.dataView = new DataView(this.#engineBuffer, timeCtxPtr);
1543
+ this.#context.net.dataView = new DataView(this.#engineBuffer, netCtxPtr);
1514
1544
  },
1515
1545
  systemsCallback: (system_handle, ptr) => {
1516
1546
  this.hooks.setContext(ptr);
@@ -2588,6 +2618,7 @@ var DEFAULT_WASM_URL2 = new URL("../wasm/bloop.wasm", import.meta.url);
2588
2618
  var TIME_CTX_OFFSET2 = 0;
2589
2619
  var INPUT_CTX_OFFSET2 = TIME_CTX_OFFSET2 + 4;
2590
2620
  var EVENTS_OFFSET2 = INPUT_CTX_OFFSET2 + 4;
2621
+ var NET_CTX_OFFSET2 = EVENTS_OFFSET2 + 4;
2591
2622
 
2592
2623
  // ../../node_modules/partysocket/dist/chunk-V6LO7DXK.mjs
2593
2624
  if (!globalThis.EventTarget || !globalThis.Event) {
@@ -5105,7 +5136,7 @@ class App {
5105
5136
  }
5106
5137
  this.game.hooks.beforeFrame = (frame) => {
5107
5138
  logger.frameNumber = this.#sim.time.frame;
5108
- logger.matchFrame = this.#sim.wasm.get_match_frame();
5139
+ logger.matchFrame = this.game.context.net.matchFrame;
5109
5140
  this.beforeFrame.notify(frame);
5110
5141
  };
5111
5142
  this.subscribe();
@@ -5403,5 +5434,5 @@ export {
5403
5434
  App
5404
5435
  };
5405
5436
 
5406
- //# debugId=C0F22781B267720E64756E2164756E21
5437
+ //# debugId=21872C7DCAA4B68264756E2164756E21
5407
5438
  //# sourceMappingURL=mod.js.map