quake2ts 0.0.568 → 0.0.570
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/engine/dist/tsconfig.tsbuildinfo +1 -1
- package/packages/engine/dist/types/demo/optimalClipFinder.d.ts +35 -0
- package/packages/engine/dist/types/demo/optimalClipFinder.d.ts.map +1 -0
- package/packages/engine/dist/types/demo/types.d.ts +9 -0
- package/packages/engine/dist/types/demo/types.d.ts.map +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 +358 -71
- package/packages/test-utils/dist/index.cjs.map +1 -1
- package/packages/test-utils/dist/index.d.cts +72 -3
- package/packages/test-utils/dist/index.d.ts +72 -3
- package/packages/test-utils/dist/index.js +346 -68
- 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, GameExports } 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;
|
|
@@ -143,6 +208,10 @@ interface GameState {
|
|
|
143
208
|
* @param overrides Optional overrides for the game state.
|
|
144
209
|
*/
|
|
145
210
|
declare function createMockGameState(overrides?: Partial<GameState>): GameState;
|
|
211
|
+
/**
|
|
212
|
+
* Creates a mock GameExports object.
|
|
213
|
+
*/
|
|
214
|
+
declare function createMockGameExports(overrides?: Partial<GameExports>): GameExports;
|
|
146
215
|
|
|
147
216
|
/**
|
|
148
217
|
* Mock implementation of the NetworkTransport interface for server testing.
|
|
@@ -709,4 +778,4 @@ interface VisualScenario {
|
|
|
709
778
|
*/
|
|
710
779
|
declare function createVisualTestScenario(page: Page, sceneName: string): VisualScenario;
|
|
711
780
|
|
|
712
|
-
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, createMockNetDriver, createMockNetworkAddress, createMockPerformance, createMockRAF, createMockRConClient, createMockServer, createMockServerClient, createMockServerConsole, createMockServerState, createMockServerStatic, createMockSessionStorage, createMockTransport, createMockUDPSocket, createMockUserInfo, createMockWebGL2Context, createMultiplayerTestScenario, createNetChanMock, createPlayerStateFactory, createPlaywrightTestClient, createServerSnapshot,
|
|
781
|
+
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, createMockGameExports, 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, GameExports } 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;
|
|
@@ -143,6 +208,10 @@ interface GameState {
|
|
|
143
208
|
* @param overrides Optional overrides for the game state.
|
|
144
209
|
*/
|
|
145
210
|
declare function createMockGameState(overrides?: Partial<GameState>): GameState;
|
|
211
|
+
/**
|
|
212
|
+
* Creates a mock GameExports object.
|
|
213
|
+
*/
|
|
214
|
+
declare function createMockGameExports(overrides?: Partial<GameExports>): GameExports;
|
|
146
215
|
|
|
147
216
|
/**
|
|
148
217
|
* Mock implementation of the NetworkTransport interface for server testing.
|
|
@@ -709,4 +778,4 @@ interface VisualScenario {
|
|
|
709
778
|
*/
|
|
710
779
|
declare function createVisualTestScenario(page: Page, sceneName: string): VisualScenario;
|
|
711
780
|
|
|
712
|
-
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, createMockNetDriver, createMockNetworkAddress, createMockPerformance, createMockRAF, createMockRConClient, createMockServer, createMockServerClient, createMockServerConsole, createMockServerState, createMockServerStatic, createMockSessionStorage, createMockTransport, createMockUDPSocket, createMockUserInfo, createMockWebGL2Context, createMultiplayerTestScenario, createNetChanMock, createPlayerStateFactory, createPlaywrightTestClient, createServerSnapshot,
|
|
781
|
+
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, createMockGameExports, 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 };
|