@bloopjs/web 0.0.83 → 0.0.85
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/App.d.ts +4 -2
- package/dist/App.d.ts.map +1 -1
- package/dist/mod.js +13 -10
- package/dist/mod.js.map +6 -6
- package/package.json +3 -3
- package/src/App.ts +11 -3
- package/src/debugui/components/Root.tsx +1 -1
package/dist/App.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { type Bloop, type MountOptions, type Sim } from "@bloopjs/bloop";
|
|
1
|
+
import { type Bloop, type LoadTapeOptions, type MountOptions, type Sim } from "@bloopjs/bloop";
|
|
2
2
|
import { DebugUi, type DebugUiOptions } from "./debugui/mod.ts";
|
|
3
3
|
import { type RoomEvents } from "./netcode/broker";
|
|
4
4
|
export type StartOptions = {
|
|
@@ -16,6 +16,8 @@ export type StartOptions = {
|
|
|
16
16
|
brokerUrl?: string;
|
|
17
17
|
/** Enable debug UI with optional configuration */
|
|
18
18
|
debugUi?: boolean | DebugUiOptions;
|
|
19
|
+
/** Tape recording options */
|
|
20
|
+
tape?: MountOptions["tape"];
|
|
19
21
|
};
|
|
20
22
|
/** Start a bloop game on the web */
|
|
21
23
|
export declare function start(opts: StartOptions): Promise<App>;
|
|
@@ -42,7 +44,7 @@ export declare class App {
|
|
|
42
44
|
/** Join a multiplayer room via the broker */
|
|
43
45
|
joinRoom(roomId: string, callbacks: RoomEvents): void;
|
|
44
46
|
/** Load a tape for replay */
|
|
45
|
-
loadTape(tape: Uint8Array): void;
|
|
47
|
+
loadTape(tape: Uint8Array, options?: LoadTapeOptions): void;
|
|
46
48
|
/** Event listeners for before a frame is processed */
|
|
47
49
|
beforeFrame: ReturnType<typeof createListener>;
|
|
48
50
|
/** Event listeners for after a frame is processed */
|
package/dist/App.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"App.d.ts","sourceRoot":"","sources":["../src/App.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"App.d.ts","sourceRoot":"","sources":["../src/App.ts"],"names":[],"mappings":"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"}
|
package/dist/mod.js
CHANGED
|
@@ -1346,7 +1346,7 @@ function readTapeHeader(tape) {
|
|
|
1346
1346
|
eventCount: view.getUint16(14, true)
|
|
1347
1347
|
};
|
|
1348
1348
|
}
|
|
1349
|
-
var DEFAULT_WASM_URL = new URL("https://unpkg.com/@bloopjs/engine@0.0.
|
|
1349
|
+
var DEFAULT_WASM_URL = new URL("https://unpkg.com/@bloopjs/engine@0.0.85/wasm/bloop.wasm");
|
|
1350
1350
|
var MAX_ROLLBACK_FRAMES = 500;
|
|
1351
1351
|
var TIME_CTX_OFFSET = 0;
|
|
1352
1352
|
var INPUT_CTX_OFFSET = TIME_CTX_OFFSET + 4;
|
|
@@ -1440,7 +1440,7 @@ class Sim {
|
|
|
1440
1440
|
return copy;
|
|
1441
1441
|
}
|
|
1442
1442
|
static NETWORK_MAX_PACKET_BYTES = 2 * 1024 * 1024;
|
|
1443
|
-
record(maxEvents =
|
|
1443
|
+
record(maxEvents = 1e5, maxPacketBytes = Sim.NETWORK_MAX_PACKET_BYTES) {
|
|
1444
1444
|
const serializer = this.#serialize ? this.#serialize() : null;
|
|
1445
1445
|
const size = serializer ? serializer.size : 0;
|
|
1446
1446
|
const result = this.wasm.start_recording(size, maxEvents, maxPacketBytes);
|
|
@@ -1456,7 +1456,7 @@ class Sim {
|
|
|
1456
1456
|
copy.set(memoryView);
|
|
1457
1457
|
return copy;
|
|
1458
1458
|
}
|
|
1459
|
-
loadTape(tape) {
|
|
1459
|
+
loadTape(tape, options) {
|
|
1460
1460
|
const tapePtr = this.wasm.alloc(tape.byteLength);
|
|
1461
1461
|
assert(tapePtr > 0, `failed to allocate ${tape.byteLength} bytes for tape load, pointer=${tapePtr}`);
|
|
1462
1462
|
const memoryView = new Uint8Array(this.#memory.buffer, tapePtr, tape.byteLength);
|
|
@@ -1464,7 +1464,9 @@ class Sim {
|
|
|
1464
1464
|
if (this.isRecording) {
|
|
1465
1465
|
this.wasm.stop_recording();
|
|
1466
1466
|
}
|
|
1467
|
-
const
|
|
1467
|
+
const checkpointInterval = options?.checkpointInterval ?? 0;
|
|
1468
|
+
const checkpointMaxSize = options?.checkpointMaxSize ?? 10 * 1024 * 1024;
|
|
1469
|
+
const result = this.wasm.load_tape(tapePtr, tape.byteLength, checkpointInterval, checkpointMaxSize);
|
|
1468
1470
|
assert(result === 0, `failed to load tape, error code=${result}`);
|
|
1469
1471
|
this.wasm.free(tapePtr, tape.byteLength);
|
|
1470
1472
|
}
|
|
@@ -1674,14 +1676,15 @@ async function mount(mountable, options) {
|
|
|
1674
1676
|
function calculateTapeConfig(tape) {
|
|
1675
1677
|
let maxEvents;
|
|
1676
1678
|
if (!tape) {
|
|
1677
|
-
maxEvents =
|
|
1679
|
+
maxEvents = 1e5;
|
|
1678
1680
|
} else if ("maxEvents" in tape) {
|
|
1679
1681
|
maxEvents = tape.maxEvents;
|
|
1680
1682
|
} else {
|
|
1681
1683
|
const avgEvents = tape.averageEventsPerFrame ?? 2;
|
|
1682
1684
|
maxEvents = Math.ceil(tape.duration * 60 * avgEvents);
|
|
1683
1685
|
}
|
|
1684
|
-
const
|
|
1686
|
+
const localOnly = tape?.localOnly ?? false;
|
|
1687
|
+
const maxPacketBytes = localOnly ? 0 : Sim.NETWORK_MAX_PACKET_BYTES;
|
|
1685
1688
|
return { maxEvents, maxPacketBytes };
|
|
1686
1689
|
}
|
|
1687
1690
|
|
|
@@ -3078,7 +3081,7 @@ function readTapeHeader2(tape) {
|
|
|
3078
3081
|
eventCount: view.getUint16(14, true)
|
|
3079
3082
|
};
|
|
3080
3083
|
}
|
|
3081
|
-
var DEFAULT_WASM_URL2 = new URL("https://unpkg.com/@bloopjs/engine@0.0.
|
|
3084
|
+
var DEFAULT_WASM_URL2 = new URL("https://unpkg.com/@bloopjs/engine@0.0.85/wasm/bloop.wasm");
|
|
3082
3085
|
var TIME_CTX_OFFSET2 = 0;
|
|
3083
3086
|
var INPUT_CTX_OFFSET2 = TIME_CTX_OFFSET2 + 4;
|
|
3084
3087
|
var EVENTS_OFFSET2 = INPUT_CTX_OFFSET2 + 4;
|
|
@@ -6350,9 +6353,9 @@ class App {
|
|
|
6350
6353
|
joinRoom(roomId, callbacks) {
|
|
6351
6354
|
joinRoom(this.brokerUrl, roomId, callbacks);
|
|
6352
6355
|
}
|
|
6353
|
-
loadTape(tape) {
|
|
6356
|
+
loadTape(tape, options) {
|
|
6354
6357
|
const header = readTapeHeader2(tape);
|
|
6355
|
-
this.sim.loadTape(tape);
|
|
6358
|
+
this.sim.loadTape(tape, options);
|
|
6356
6359
|
this.sim.seek(header.startFrame);
|
|
6357
6360
|
this.sim.pause();
|
|
6358
6361
|
debugState.tapeStartFrame.value = header.startFrame;
|
|
@@ -6701,5 +6704,5 @@ export {
|
|
|
6701
6704
|
App
|
|
6702
6705
|
};
|
|
6703
6706
|
|
|
6704
|
-
//# debugId=
|
|
6707
|
+
//# debugId=84BFA067C8C329F964756E2164756E21
|
|
6705
6708
|
//# sourceMappingURL=mod.js.map
|