@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 +35 -4
- package/dist/mod.js.map +5 -5
- package/package.json +3 -3
- package/src/App.ts +1 -1
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
|
|
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=
|
|
5437
|
+
//# debugId=21872C7DCAA4B68264756E2164756E21
|
|
5407
5438
|
//# sourceMappingURL=mod.js.map
|