quake2ts 0.0.567 → 0.0.569
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/package.json +1 -1
- package/packages/client/dist/browser/index.global.js +13 -13
- package/packages/client/dist/browser/index.global.js.map +1 -1
- package/packages/client/dist/tsconfig.tsbuildinfo +1 -1
- package/packages/game/dist/browser/index.global.js +5 -5
- package/packages/game/dist/browser/index.global.js.map +1 -1
- package/packages/game/dist/cjs/index.cjs +127 -0
- package/packages/game/dist/cjs/index.cjs.map +1 -1
- package/packages/game/dist/esm/index.js +124 -0
- package/packages/game/dist/esm/index.js.map +1 -1
- package/packages/game/dist/tsconfig.tsbuildinfo +1 -1
- package/packages/game/dist/types/entities/index.d.ts +1 -1
- package/packages/game/dist/types/entities/index.d.ts.map +1 -1
- package/packages/test-utils/dist/index.cjs +275 -73
- package/packages/test-utils/dist/index.cjs.map +1 -1
- package/packages/test-utils/dist/index.d.cts +73 -3
- package/packages/test-utils/dist/index.d.ts +73 -3
- package/packages/test-utils/dist/index.js +263 -70
- package/packages/test-utils/dist/index.js.map +1 -1
|
@@ -2,7 +2,7 @@ import * as vitest from 'vitest';
|
|
|
2
2
|
import { Mock } from 'vitest';
|
|
3
3
|
import { Vec3, CollisionPlane, CollisionBrush, CollisionNode, CollisionLeaf, CollisionModel, PlayerState, EntityState, createRandomGenerator, NetDriver, UserCommand } from '@quake2ts/shared';
|
|
4
4
|
export { intersects, ladderTrace, stairTrace } from '@quake2ts/shared';
|
|
5
|
-
import { GameStateSnapshot, Entity, ScriptHookRegistry, SpawnContext, EntitySystem, SpawnRegistry } from '@quake2ts/game';
|
|
5
|
+
import { GameStateSnapshot, Entity, ScriptHookRegistry, SpawnContext, EntitySystem, SpawnRegistry, MonsterMove, DamageMod } from '@quake2ts/game';
|
|
6
6
|
import { NetworkTransport, Server, ServerStatic, Client, ClientState } from '@quake2ts/server';
|
|
7
7
|
import { ImageData } from '@napi-rs/canvas';
|
|
8
8
|
import { LaunchOptions, BrowserContextOptions, Browser, BrowserContext, Page } from 'playwright';
|
|
@@ -97,6 +97,12 @@ declare function makeBrushFromMinsMaxs(mins: Vec3, maxs: Vec3, contents?: number
|
|
|
97
97
|
declare const createPlayerStateFactory: (overrides?: Partial<PlayerState>) => PlayerState;
|
|
98
98
|
declare const createEntityStateFactory: (overrides?: Partial<EntityState>) => EntityState;
|
|
99
99
|
declare const createGameStateSnapshotFactory: (overrides?: Partial<GameStateSnapshot>) => GameStateSnapshot;
|
|
100
|
+
declare function createEntityFactory(overrides?: Partial<Entity>): Entity;
|
|
101
|
+
declare function createPlayerEntityFactory(overrides?: Partial<Entity>): Entity;
|
|
102
|
+
declare function createMonsterEntityFactory(classname: string, overrides?: Partial<Entity>): Entity;
|
|
103
|
+
declare function createItemEntityFactory(classname: string, overrides?: Partial<Entity>): Entity;
|
|
104
|
+
declare function createProjectileEntityFactory(classname: string, overrides?: Partial<Entity>): Entity;
|
|
105
|
+
declare function createTriggerEntityFactory(classname: string, overrides?: Partial<Entity>): Entity;
|
|
100
106
|
|
|
101
107
|
interface MockEngine {
|
|
102
108
|
sound: Mock<[Entity, number, string, number, number, number], void>;
|
|
@@ -129,9 +135,68 @@ declare function createTestContext(options?: {
|
|
|
129
135
|
seed?: number;
|
|
130
136
|
initialEntities?: Entity[];
|
|
131
137
|
}): TestContext;
|
|
132
|
-
declare function
|
|
138
|
+
declare function createSpawnTestContext(mapName?: string): TestContext;
|
|
139
|
+
declare function createCombatTestContext(): TestContext;
|
|
140
|
+
declare function createPhysicsTestContext(): TestContext;
|
|
133
141
|
declare function createEntity(): Entity;
|
|
134
142
|
|
|
143
|
+
interface MockAI {
|
|
144
|
+
checkAttack: Mock;
|
|
145
|
+
findTarget: Mock;
|
|
146
|
+
visible: Mock;
|
|
147
|
+
infront: Mock;
|
|
148
|
+
}
|
|
149
|
+
interface MockMonsterAI {
|
|
150
|
+
stand: Mock;
|
|
151
|
+
walk: Mock;
|
|
152
|
+
run: Mock;
|
|
153
|
+
dodge: Mock;
|
|
154
|
+
attack: Mock;
|
|
155
|
+
melee: Mock;
|
|
156
|
+
sight: Mock;
|
|
157
|
+
idle: Mock;
|
|
158
|
+
}
|
|
159
|
+
declare function createMockAI(overrides?: Partial<MockAI>): MockAI;
|
|
160
|
+
declare function createMockMonsterAI(overrides?: Partial<MockMonsterAI>): MockMonsterAI;
|
|
161
|
+
declare function createMockMonsterMove(first: number, last: number, think: (self: Entity, context: EntitySystem) => void, action: (self: Entity, dist: number, context: EntitySystem) => void): MonsterMove;
|
|
162
|
+
|
|
163
|
+
interface MockDamageInfo {
|
|
164
|
+
damage: number;
|
|
165
|
+
mod: DamageMod;
|
|
166
|
+
knockback: number;
|
|
167
|
+
attacker: Entity | null;
|
|
168
|
+
inflictor: Entity | null;
|
|
169
|
+
dir: {
|
|
170
|
+
x: number;
|
|
171
|
+
y: number;
|
|
172
|
+
z: number;
|
|
173
|
+
} | null;
|
|
174
|
+
point: {
|
|
175
|
+
x: number;
|
|
176
|
+
y: number;
|
|
177
|
+
z: number;
|
|
178
|
+
} | null;
|
|
179
|
+
}
|
|
180
|
+
declare function createMockDamageInfo(overrides?: Partial<MockDamageInfo>): MockDamageInfo;
|
|
181
|
+
declare function createMockWeapon(name?: string): {
|
|
182
|
+
name: string;
|
|
183
|
+
ammoType: string;
|
|
184
|
+
ammoUse: number;
|
|
185
|
+
selection: Mock<any, any>;
|
|
186
|
+
think: Mock<any, any>;
|
|
187
|
+
command: Mock<any, any>;
|
|
188
|
+
};
|
|
189
|
+
declare const mockMonsterAttacks: {
|
|
190
|
+
fireBlaster: Mock<any, any>;
|
|
191
|
+
fireRocket: Mock<any, any>;
|
|
192
|
+
fireGrenade: Mock<any, any>;
|
|
193
|
+
fireHeat: Mock<any, any>;
|
|
194
|
+
fireBullet: Mock<any, any>;
|
|
195
|
+
fireShotgun: Mock<any, any>;
|
|
196
|
+
fireRailgun: Mock<any, any>;
|
|
197
|
+
fireBFG: Mock<any, any>;
|
|
198
|
+
};
|
|
199
|
+
|
|
135
200
|
interface GameState {
|
|
136
201
|
levelName: string;
|
|
137
202
|
time: number;
|
|
@@ -230,6 +295,11 @@ declare function createMockNetworkAddress(ip?: string, port?: number): NetworkAd
|
|
|
230
295
|
* @param overrides Optional overrides for the transport properties.
|
|
231
296
|
*/
|
|
232
297
|
declare function createMockTransport(address?: string, port?: number, overrides?: Partial<MockTransport>): MockTransport;
|
|
298
|
+
/**
|
|
299
|
+
* Creates a mock NetDriver instance.
|
|
300
|
+
* @param overrides Optional overrides for the NetDriver methods.
|
|
301
|
+
*/
|
|
302
|
+
declare function createMockNetDriver(overrides?: Partial<NetDriver>): NetDriver;
|
|
233
303
|
|
|
234
304
|
/**
|
|
235
305
|
* Creates a mock server state object.
|
|
@@ -704,4 +774,4 @@ interface VisualScenario {
|
|
|
704
774
|
*/
|
|
705
775
|
declare function createVisualTestScenario(page: Page, sceneName: string): VisualScenario;
|
|
706
776
|
|
|
707
|
-
export { type AudioEvent, type BinaryStreamMock, type BinaryWriterMock, type BrowserSetupOptions, type Connection, type ConsistencyReport, type ControlledTimer, type DeltaSnapshot, type DrawCall, type GameState, type GameStateCapture, type Handshake, HandshakeStage, InputInjector, type MockEngine, type MockGame, MockPointerLock, type MockRAF, type MockRConClient, type MockServer, type MockServerConsole, type MockServerContext, MockTransport, type MockUDPSocket, type MultiplayerScenario, type NetworkAddress, type NetworkCondition, type NetworkConfig, type NetworkSimulator, type NodeSetupOptions, type PlaywrightOptions, type PlaywrightTestClient, type Snapshot, type StorageScenario, type TestContext, type UserInfo, type VisualDiff, type VisualScenario, captureAudioEvents, captureCanvasDrawCalls, captureGameScreenshot, captureGameState, compareScreenshots, createBinaryStreamMock, createBinaryWriterMock, createControlledTimer, createCustomNetworkCondition, createDeltaSnapshot, createEntity, createEntityStateFactory, createGameStateSnapshotFactory, createMockAudioContext, createMockCanvas, createMockCanvasContext2D, createMockConnection, createMockEngine, createMockGPUAdapter, createMockGPUCanvasContext, createMockGPUDevice, createMockGame, createMockGameState, createMockHandshake, createMockImage, createMockImageData, createMockIndexedDB, createMockLocalStorage, createMockNetworkAddress, createMockPerformance, createMockRAF, createMockRConClient, createMockServer, createMockServerClient, createMockServerConsole, createMockServerState, createMockServerStatic, createMockSessionStorage, createMockTransport, createMockUDPSocket, createMockUserInfo, createMockWebGL2Context, createMultiplayerTestScenario, createNetChanMock, createPlayerStateFactory, createPlaywrightTestClient, createServerSnapshot,
|
|
777
|
+
export { type AudioEvent, type BinaryStreamMock, type BinaryWriterMock, type BrowserSetupOptions, type Connection, type ConsistencyReport, type ControlledTimer, type DeltaSnapshot, type DrawCall, type GameState, type GameStateCapture, type Handshake, HandshakeStage, InputInjector, type MockAI, type MockDamageInfo, type MockEngine, type MockGame, type MockMonsterAI, MockPointerLock, type MockRAF, type MockRConClient, type MockServer, type MockServerConsole, type MockServerContext, MockTransport, type MockUDPSocket, type MultiplayerScenario, type NetworkAddress, type NetworkCondition, type NetworkConfig, type NetworkSimulator, type NodeSetupOptions, type PlaywrightOptions, type PlaywrightTestClient, type Snapshot, type StorageScenario, type TestContext, type UserInfo, type VisualDiff, type VisualScenario, captureAudioEvents, captureCanvasDrawCalls, captureGameScreenshot, captureGameState, compareScreenshots, createBinaryStreamMock, createBinaryWriterMock, createCombatTestContext, createControlledTimer, createCustomNetworkCondition, createDeltaSnapshot, createEntity, createEntityFactory, createEntityStateFactory, createGameStateSnapshotFactory, createItemEntityFactory, createMockAI, createMockAudioContext, createMockCanvas, createMockCanvasContext2D, createMockConnection, createMockDamageInfo, createMockEngine, createMockGPUAdapter, createMockGPUCanvasContext, createMockGPUDevice, createMockGame, createMockGameState, createMockHandshake, createMockImage, createMockImageData, createMockIndexedDB, createMockLocalStorage, createMockMonsterAI, createMockMonsterMove, createMockNetDriver, createMockNetworkAddress, createMockPerformance, createMockRAF, createMockRConClient, createMockServer, createMockServerClient, createMockServerConsole, createMockServerState, createMockServerStatic, createMockSessionStorage, createMockTransport, createMockUDPSocket, createMockUserInfo, createMockWeapon, createMockWebGL2Context, createMonsterEntityFactory, createMultiplayerTestScenario, createNetChanMock, createPhysicsTestContext, createPlayerEntityFactory, createPlayerStateFactory, createPlaywrightTestClient, createProjectileEntityFactory, createServerSnapshot, createSpawnTestContext, createStorageTestScenario, createTestContext, createTriggerEntityFactory, createVisualTestScenario, makeAxisBrush, makeBrushFromMinsMaxs, makeBspModel, makeLeaf, makeLeafModel, makeNode, makePlane, mockMonsterAttacks, serializeUserInfo, setupBrowserEnvironment, setupMockAudioContext, setupNodeEnvironment, setupWebGPUMocks, simulateFrames, simulateFramesWithMock, simulateHandshake, simulateNetworkCondition, simulatePlayerInput, simulatePlayerJoin, simulatePlayerLeave, simulateServerCommand, simulateServerTick, simulateSnapshotDelivery, teardownBrowserEnvironment, teardownMockAudioContext, throttleBandwidth, verifySnapshotConsistency, waitForGameReady };
|
|
@@ -2,7 +2,7 @@ import * as vitest from 'vitest';
|
|
|
2
2
|
import { Mock } from 'vitest';
|
|
3
3
|
import { Vec3, CollisionPlane, CollisionBrush, CollisionNode, CollisionLeaf, CollisionModel, PlayerState, EntityState, createRandomGenerator, NetDriver, UserCommand } from '@quake2ts/shared';
|
|
4
4
|
export { intersects, ladderTrace, stairTrace } from '@quake2ts/shared';
|
|
5
|
-
import { GameStateSnapshot, Entity, ScriptHookRegistry, SpawnContext, EntitySystem, SpawnRegistry } from '@quake2ts/game';
|
|
5
|
+
import { GameStateSnapshot, Entity, ScriptHookRegistry, SpawnContext, EntitySystem, SpawnRegistry, MonsterMove, DamageMod } from '@quake2ts/game';
|
|
6
6
|
import { NetworkTransport, Server, ServerStatic, Client, ClientState } from '@quake2ts/server';
|
|
7
7
|
import { ImageData } from '@napi-rs/canvas';
|
|
8
8
|
import { LaunchOptions, BrowserContextOptions, Browser, BrowserContext, Page } from 'playwright';
|
|
@@ -97,6 +97,12 @@ declare function makeBrushFromMinsMaxs(mins: Vec3, maxs: Vec3, contents?: number
|
|
|
97
97
|
declare const createPlayerStateFactory: (overrides?: Partial<PlayerState>) => PlayerState;
|
|
98
98
|
declare const createEntityStateFactory: (overrides?: Partial<EntityState>) => EntityState;
|
|
99
99
|
declare const createGameStateSnapshotFactory: (overrides?: Partial<GameStateSnapshot>) => GameStateSnapshot;
|
|
100
|
+
declare function createEntityFactory(overrides?: Partial<Entity>): Entity;
|
|
101
|
+
declare function createPlayerEntityFactory(overrides?: Partial<Entity>): Entity;
|
|
102
|
+
declare function createMonsterEntityFactory(classname: string, overrides?: Partial<Entity>): Entity;
|
|
103
|
+
declare function createItemEntityFactory(classname: string, overrides?: Partial<Entity>): Entity;
|
|
104
|
+
declare function createProjectileEntityFactory(classname: string, overrides?: Partial<Entity>): Entity;
|
|
105
|
+
declare function createTriggerEntityFactory(classname: string, overrides?: Partial<Entity>): Entity;
|
|
100
106
|
|
|
101
107
|
interface MockEngine {
|
|
102
108
|
sound: Mock<[Entity, number, string, number, number, number], void>;
|
|
@@ -129,9 +135,68 @@ declare function createTestContext(options?: {
|
|
|
129
135
|
seed?: number;
|
|
130
136
|
initialEntities?: Entity[];
|
|
131
137
|
}): TestContext;
|
|
132
|
-
declare function
|
|
138
|
+
declare function createSpawnTestContext(mapName?: string): TestContext;
|
|
139
|
+
declare function createCombatTestContext(): TestContext;
|
|
140
|
+
declare function createPhysicsTestContext(): TestContext;
|
|
133
141
|
declare function createEntity(): Entity;
|
|
134
142
|
|
|
143
|
+
interface MockAI {
|
|
144
|
+
checkAttack: Mock;
|
|
145
|
+
findTarget: Mock;
|
|
146
|
+
visible: Mock;
|
|
147
|
+
infront: Mock;
|
|
148
|
+
}
|
|
149
|
+
interface MockMonsterAI {
|
|
150
|
+
stand: Mock;
|
|
151
|
+
walk: Mock;
|
|
152
|
+
run: Mock;
|
|
153
|
+
dodge: Mock;
|
|
154
|
+
attack: Mock;
|
|
155
|
+
melee: Mock;
|
|
156
|
+
sight: Mock;
|
|
157
|
+
idle: Mock;
|
|
158
|
+
}
|
|
159
|
+
declare function createMockAI(overrides?: Partial<MockAI>): MockAI;
|
|
160
|
+
declare function createMockMonsterAI(overrides?: Partial<MockMonsterAI>): MockMonsterAI;
|
|
161
|
+
declare function createMockMonsterMove(first: number, last: number, think: (self: Entity, context: EntitySystem) => void, action: (self: Entity, dist: number, context: EntitySystem) => void): MonsterMove;
|
|
162
|
+
|
|
163
|
+
interface MockDamageInfo {
|
|
164
|
+
damage: number;
|
|
165
|
+
mod: DamageMod;
|
|
166
|
+
knockback: number;
|
|
167
|
+
attacker: Entity | null;
|
|
168
|
+
inflictor: Entity | null;
|
|
169
|
+
dir: {
|
|
170
|
+
x: number;
|
|
171
|
+
y: number;
|
|
172
|
+
z: number;
|
|
173
|
+
} | null;
|
|
174
|
+
point: {
|
|
175
|
+
x: number;
|
|
176
|
+
y: number;
|
|
177
|
+
z: number;
|
|
178
|
+
} | null;
|
|
179
|
+
}
|
|
180
|
+
declare function createMockDamageInfo(overrides?: Partial<MockDamageInfo>): MockDamageInfo;
|
|
181
|
+
declare function createMockWeapon(name?: string): {
|
|
182
|
+
name: string;
|
|
183
|
+
ammoType: string;
|
|
184
|
+
ammoUse: number;
|
|
185
|
+
selection: Mock<any, any>;
|
|
186
|
+
think: Mock<any, any>;
|
|
187
|
+
command: Mock<any, any>;
|
|
188
|
+
};
|
|
189
|
+
declare const mockMonsterAttacks: {
|
|
190
|
+
fireBlaster: Mock<any, any>;
|
|
191
|
+
fireRocket: Mock<any, any>;
|
|
192
|
+
fireGrenade: Mock<any, any>;
|
|
193
|
+
fireHeat: Mock<any, any>;
|
|
194
|
+
fireBullet: Mock<any, any>;
|
|
195
|
+
fireShotgun: Mock<any, any>;
|
|
196
|
+
fireRailgun: Mock<any, any>;
|
|
197
|
+
fireBFG: Mock<any, any>;
|
|
198
|
+
};
|
|
199
|
+
|
|
135
200
|
interface GameState {
|
|
136
201
|
levelName: string;
|
|
137
202
|
time: number;
|
|
@@ -230,6 +295,11 @@ declare function createMockNetworkAddress(ip?: string, port?: number): NetworkAd
|
|
|
230
295
|
* @param overrides Optional overrides for the transport properties.
|
|
231
296
|
*/
|
|
232
297
|
declare function createMockTransport(address?: string, port?: number, overrides?: Partial<MockTransport>): MockTransport;
|
|
298
|
+
/**
|
|
299
|
+
* Creates a mock NetDriver instance.
|
|
300
|
+
* @param overrides Optional overrides for the NetDriver methods.
|
|
301
|
+
*/
|
|
302
|
+
declare function createMockNetDriver(overrides?: Partial<NetDriver>): NetDriver;
|
|
233
303
|
|
|
234
304
|
/**
|
|
235
305
|
* Creates a mock server state object.
|
|
@@ -704,4 +774,4 @@ interface VisualScenario {
|
|
|
704
774
|
*/
|
|
705
775
|
declare function createVisualTestScenario(page: Page, sceneName: string): VisualScenario;
|
|
706
776
|
|
|
707
|
-
export { type AudioEvent, type BinaryStreamMock, type BinaryWriterMock, type BrowserSetupOptions, type Connection, type ConsistencyReport, type ControlledTimer, type DeltaSnapshot, type DrawCall, type GameState, type GameStateCapture, type Handshake, HandshakeStage, InputInjector, type MockEngine, type MockGame, MockPointerLock, type MockRAF, type MockRConClient, type MockServer, type MockServerConsole, type MockServerContext, MockTransport, type MockUDPSocket, type MultiplayerScenario, type NetworkAddress, type NetworkCondition, type NetworkConfig, type NetworkSimulator, type NodeSetupOptions, type PlaywrightOptions, type PlaywrightTestClient, type Snapshot, type StorageScenario, type TestContext, type UserInfo, type VisualDiff, type VisualScenario, captureAudioEvents, captureCanvasDrawCalls, captureGameScreenshot, captureGameState, compareScreenshots, createBinaryStreamMock, createBinaryWriterMock, createControlledTimer, createCustomNetworkCondition, createDeltaSnapshot, createEntity, createEntityStateFactory, createGameStateSnapshotFactory, createMockAudioContext, createMockCanvas, createMockCanvasContext2D, createMockConnection, createMockEngine, createMockGPUAdapter, createMockGPUCanvasContext, createMockGPUDevice, createMockGame, createMockGameState, createMockHandshake, createMockImage, createMockImageData, createMockIndexedDB, createMockLocalStorage, createMockNetworkAddress, createMockPerformance, createMockRAF, createMockRConClient, createMockServer, createMockServerClient, createMockServerConsole, createMockServerState, createMockServerStatic, createMockSessionStorage, createMockTransport, createMockUDPSocket, createMockUserInfo, createMockWebGL2Context, createMultiplayerTestScenario, createNetChanMock, createPlayerStateFactory, createPlaywrightTestClient, createServerSnapshot,
|
|
777
|
+
export { type AudioEvent, type BinaryStreamMock, type BinaryWriterMock, type BrowserSetupOptions, type Connection, type ConsistencyReport, type ControlledTimer, type DeltaSnapshot, type DrawCall, type GameState, type GameStateCapture, type Handshake, HandshakeStage, InputInjector, type MockAI, type MockDamageInfo, type MockEngine, type MockGame, type MockMonsterAI, MockPointerLock, type MockRAF, type MockRConClient, type MockServer, type MockServerConsole, type MockServerContext, MockTransport, type MockUDPSocket, type MultiplayerScenario, type NetworkAddress, type NetworkCondition, type NetworkConfig, type NetworkSimulator, type NodeSetupOptions, type PlaywrightOptions, type PlaywrightTestClient, type Snapshot, type StorageScenario, type TestContext, type UserInfo, type VisualDiff, type VisualScenario, captureAudioEvents, captureCanvasDrawCalls, captureGameScreenshot, captureGameState, compareScreenshots, createBinaryStreamMock, createBinaryWriterMock, createCombatTestContext, createControlledTimer, createCustomNetworkCondition, createDeltaSnapshot, createEntity, createEntityFactory, createEntityStateFactory, createGameStateSnapshotFactory, createItemEntityFactory, createMockAI, createMockAudioContext, createMockCanvas, createMockCanvasContext2D, createMockConnection, createMockDamageInfo, createMockEngine, createMockGPUAdapter, createMockGPUCanvasContext, createMockGPUDevice, createMockGame, createMockGameState, createMockHandshake, createMockImage, createMockImageData, createMockIndexedDB, createMockLocalStorage, createMockMonsterAI, createMockMonsterMove, createMockNetDriver, createMockNetworkAddress, createMockPerformance, createMockRAF, createMockRConClient, createMockServer, createMockServerClient, createMockServerConsole, createMockServerState, createMockServerStatic, createMockSessionStorage, createMockTransport, createMockUDPSocket, createMockUserInfo, createMockWeapon, createMockWebGL2Context, createMonsterEntityFactory, createMultiplayerTestScenario, createNetChanMock, createPhysicsTestContext, createPlayerEntityFactory, createPlayerStateFactory, createPlaywrightTestClient, createProjectileEntityFactory, createServerSnapshot, createSpawnTestContext, createStorageTestScenario, createTestContext, createTriggerEntityFactory, createVisualTestScenario, makeAxisBrush, makeBrushFromMinsMaxs, makeBspModel, makeLeaf, makeLeafModel, makeNode, makePlane, mockMonsterAttacks, serializeUserInfo, setupBrowserEnvironment, setupMockAudioContext, setupNodeEnvironment, setupWebGPUMocks, simulateFrames, simulateFramesWithMock, simulateHandshake, simulateNetworkCondition, simulatePlayerInput, simulatePlayerJoin, simulatePlayerLeave, simulateServerCommand, simulateServerTick, simulateSnapshotDelivery, teardownBrowserEnvironment, teardownMockAudioContext, throttleBandwidth, verifySnapshotConsistency, waitForGameReady };
|