quake2ts 0.0.584 → 0.0.586

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.
@@ -1,12 +1,14 @@
1
1
  import * as vitest from 'vitest';
2
2
  import { Mock, vi } from 'vitest';
3
- import { Vec3, CollisionPlane, CollisionBrush, CollisionNode, CollisionLeaf, CollisionModel, PlayerState, EntityState, createRandomGenerator, NetDriver, TraceResult, UserCommand } from '@quake2ts/shared';
3
+ import { Vec3, CollisionPlane, CollisionBrush, CollisionNode, CollisionLeaf, CollisionModel, PlayerState, EntityState, createRandomGenerator, NetDriver, TraceResult as TraceResult$1, UserCommand } from '@quake2ts/shared';
4
4
  export { intersects, ladderTrace, stairTrace } from '@quake2ts/shared';
5
+ import { Vec3 as Vec3$1, Bounds3 } from '@quake2ts/shared/math/vec3';
5
6
  import { GameStateSnapshot, Entity, ScriptHookRegistry, SpawnContext, EntitySystem, SpawnRegistry, MonsterMove, DamageMod, PlayerInventory, BaseItem, WeaponId, WeaponItem, HealthItem, ArmorItem, AmmoItemId, PowerupItem, GameExports } from '@quake2ts/game';
6
7
  import { NetworkTransport, Server, ServerStatic, Client, ClientState, ClientFrame } from '@quake2ts/server';
7
8
  import { ImageData } from '@napi-rs/canvas';
8
9
  import { vec3 } from 'gl-matrix';
9
10
  import { Camera } from '@quake2ts/engine';
11
+ import { TraceResult, CollisionPlane as CollisionPlane$1 } from '@quake2ts/shared/bsp/collision';
10
12
 
11
13
  interface BinaryWriterMock {
12
14
  writeByte: Mock<[number], void>;
@@ -24,6 +26,8 @@ interface BinaryWriterMock {
24
26
  writeUint32: Mock<[number], void>;
25
27
  writeFloat: Mock<[number], void>;
26
28
  getData: Mock<[], Uint8Array>;
29
+ writePos: Mock<[any], void>;
30
+ writeDir: Mock<[any], void>;
27
31
  }
28
32
  declare const createBinaryWriterMock: () => BinaryWriterMock;
29
33
  declare const createNetChanMock: () => {
@@ -85,6 +89,24 @@ interface BinaryStreamMock {
85
89
  readDir: Mock<[], any>;
86
90
  }
87
91
  declare const createBinaryStreamMock: () => BinaryStreamMock;
92
+ interface MessageWriterMock extends BinaryWriterMock {
93
+ writeInt: Mock<[number], void>;
94
+ writeVector: Mock<[any], void>;
95
+ }
96
+ declare const createMessageWriterMock: (overrides?: Partial<MessageWriterMock>) => MessageWriterMock;
97
+ interface MessageReaderMock extends BinaryStreamMock {
98
+ readInt: Mock<[], number>;
99
+ readVector: Mock<[], any>;
100
+ }
101
+ declare const createMessageReaderMock: (data?: Uint8Array) => MessageReaderMock;
102
+ interface PacketMock {
103
+ type: 'connection' | 'data' | 'ack' | 'disconnect';
104
+ sequence: number;
105
+ ack: number;
106
+ qport: number;
107
+ data: Uint8Array;
108
+ }
109
+ declare const createPacketMock: (overrides?: Partial<PacketMock>) => PacketMock;
88
110
 
89
111
  declare function makePlane(normal: Vec3, dist: number): CollisionPlane;
90
112
  declare function makeAxisBrush(size: number, contents?: number): CollisionBrush;
@@ -94,6 +116,16 @@ declare function makeLeaf(contents: number, firstLeafBrush: number, numLeafBrush
94
116
  declare function makeLeafModel(brushes: CollisionBrush[]): CollisionModel;
95
117
  declare function makeBrushFromMinsMaxs(mins: Vec3, maxs: Vec3, contents?: number): CollisionBrush;
96
118
 
119
+ declare const createVector3: (x?: number, y?: number, z?: number) => Vec3$1;
120
+ declare const createBounds: (mins?: Vec3$1, maxs?: Vec3$1) => Bounds3;
121
+ interface Transform {
122
+ position: Vec3$1;
123
+ rotation: Vec3$1;
124
+ scale: Vec3$1;
125
+ }
126
+ declare const createTransform: (overrides?: Partial<Transform>) => Transform;
127
+ declare const randomVector3: (min?: number, max?: number) => Vec3$1;
128
+
97
129
  declare const createPlayerStateFactory: (overrides?: Partial<PlayerState>) => PlayerState;
98
130
  declare const createEntityStateFactory: (overrides?: Partial<EntityState>) => EntityState;
99
131
  declare const createGameStateSnapshotFactory: (overrides?: Partial<GameStateSnapshot>) => GameStateSnapshot;
@@ -104,6 +136,28 @@ declare function createItemEntityFactory(classname: string, overrides?: Partial<
104
136
  declare function createProjectileEntityFactory(classname: string, overrides?: Partial<Entity>): Entity;
105
137
  declare function createTriggerEntityFactory(classname: string, overrides?: Partial<Entity>): Entity;
106
138
 
139
+ interface TraceMock extends Partial<TraceResult> {
140
+ fraction: number;
141
+ endpos: Vec3$1;
142
+ plane: CollisionPlane$1;
143
+ surface: {
144
+ flags: number;
145
+ name?: string;
146
+ value?: number;
147
+ };
148
+ contents: number;
149
+ ent: any;
150
+ allsolid: boolean;
151
+ startsolid: boolean;
152
+ }
153
+ declare const createTraceMock: (overrides?: Partial<TraceMock>) => TraceMock;
154
+ interface SurfaceMock {
155
+ flags: number;
156
+ name: string;
157
+ value: number;
158
+ }
159
+ declare const createSurfaceMock: (overrides?: Partial<SurfaceMock>) => SurfaceMock;
160
+
107
161
  interface MockEngine {
108
162
  sound: Mock<[Entity, number, string, number, number, number], void>;
109
163
  soundIndex: Mock<[string], number>;
@@ -527,7 +581,7 @@ declare function simulateServerRegistration(server: any, master: MasterServer):
527
581
  * Mock interface for CollisionEntityIndex.
528
582
  */
529
583
  interface MockCollisionEntityIndex {
530
- trace: (start: any, mins: any, maxs: any, end: any, passEntity: any, contentMask: number) => TraceResult;
584
+ trace: (start: any, mins: any, maxs: any, end: any, passEntity: any, contentMask: number) => TraceResult$1;
531
585
  link: (entity: any) => void;
532
586
  unlink: (entity: any) => void;
533
587
  gatherTriggerTouches: (entity: any) => any[];
@@ -1202,4 +1256,4 @@ interface VisualScenario {
1202
1256
  */
1203
1257
  declare function createVisualTestScenario(sceneName: string): VisualScenario;
1204
1258
 
1205
- export { type AudioEvent, type BandwidthScenario, type BinaryStreamMock, type BinaryWriterMock, type BrowserSetupOptions, type CameraInput, type Connection, type ConsistencyReport, type ControlledTimer, type DeltaSnapshot, type DrawCall, type GameState, type GameStateCapture, type Handshake, HandshakeStage, InputInjector, type KeyModifiers, type MasterServer, type Message, type MockAI, type MockCollisionEntityIndex, type MockDamageInfo, type MockEngine, type MockGame, type MockMonsterAI, MockPointerLock, type MockRAF, type MockRConClient, type MockRenderingContext, type MockServer, type MockServerConsole, type MockServerContext, MockTransport, type MockUDPSocket, MockWebGL2RenderingContext, type MultiplayerScenario, type NetworkAddress, type NetworkCondition, type NetworkSimulator, type NodeSetupOptions, type PlaywrightOptions, type PlaywrightTestClient, type RateLimiter, type RefDef, type ServerInfo, type ServerListFilter, type Snapshot, type StorageScenario, type TestContext, type UserInfo, type ViewScenario, type ViewState, type VisualDiff, type VisualScenario, captureAudioEvents, captureCanvasDrawCalls, captureGameScreenshot, captureGameState, compareScreenshots, createBandwidthTestScenario, createBinaryStreamMock, createBinaryWriterMock, createCombatTestContext, createControlledTimer, createCustomNetworkCondition, createDeltaSnapshot, createEntity, createEntityFactory, createEntityStateFactory, createGameStateSnapshotFactory, createInputInjector, createItemEntityFactory, createMockAI, createMockAmmoItem, createMockArmorItem, createMockCamera, createMockCanvas, createMockCanvasContext2D, createMockCollisionEntityIndex, createMockConnection, createMockDamageInfo, createMockEngine, createMockGPUAdapter, createMockGPUCanvasContext, createMockGPUDevice, createMockGame, createMockGameExports, createMockGameState, createMockHandshake, createMockHealthItem, createMockImage, createMockImageData, createMockIndexedDB, createMockInventory, createMockItem, createMockKeyboardEvent, createMockLocalStorage, createMockMasterServer, createMockMonsterAI, createMockMonsterMove, createMockMouseEvent, createMockNetDriver, createMockNetworkAddress, createMockPerformance, createMockPointerLock, createMockPowerupItem, createMockRAF, createMockRConClient, createMockRateLimiter, createMockRefDef, createMockRenderingContext, createMockServer, createMockServerClient, createMockServerConsole, createMockServerInfo, createMockServerState, createMockServerStatic, createMockSessionStorage, createMockTransport, createMockUDPSocket, createMockUserInfo, createMockViewState, createMockWeapon, createMockWeaponItem, createMockWebGL2Context, createMockWheelEvent, createMonsterEntityFactory, createMultiplayerTestScenario, createNetChanMock, createPhysicsTestContext, createPlayerEntityFactory, createPlayerStateFactory, createPlaywrightTestClient, createProjectileEntityFactory, createServerSnapshot, createSpawnTestContext, createStorageTestScenario, createTestContext, createTriggerEntityFactory, createViewTestScenario, createVisualTestScenario, makeAxisBrush, makeBrushFromMinsMaxs, makeBspModel, makeLeaf, makeLeafModel, makeNode, makePlane, measureSnapshotSize, mockMonsterAttacks, serializeUserInfo, setupBrowserEnvironment, setupMockAudioContext, setupNodeEnvironment, setupWebGPUMocks, simulateBandwidthLimit, simulateCameraMovement, simulateFrames, simulateHandshake, simulateNetworkCondition, simulatePlayerInput, simulatePlayerJoin, simulatePlayerLeave, simulateServerCommand, simulateServerRegistration, simulateServerTick, simulateSnapshotDelivery, teardownBrowserEnvironment, teardownMockAudioContext, teardownNodeEnvironment, throttleBandwidth, verifySnapshotConsistency, waitForGameReady };
1259
+ export { type AudioEvent, type BandwidthScenario, type BinaryStreamMock, type BinaryWriterMock, type BrowserSetupOptions, type CameraInput, type Connection, type ConsistencyReport, type ControlledTimer, type DeltaSnapshot, type DrawCall, type GameState, type GameStateCapture, type Handshake, HandshakeStage, InputInjector, type KeyModifiers, type MasterServer, type Message, type MessageReaderMock, type MessageWriterMock, type MockAI, type MockCollisionEntityIndex, type MockDamageInfo, type MockEngine, type MockGame, type MockMonsterAI, MockPointerLock, type MockRAF, type MockRConClient, type MockRenderingContext, type MockServer, type MockServerConsole, type MockServerContext, MockTransport, type MockUDPSocket, MockWebGL2RenderingContext, type MultiplayerScenario, type NetworkAddress, type NetworkCondition, type NetworkSimulator, type NodeSetupOptions, type PacketMock, type PlaywrightOptions, type PlaywrightTestClient, type RateLimiter, type RefDef, type ServerInfo, type ServerListFilter, type Snapshot, type StorageScenario, type TestContext, type Transform, type UserInfo, type ViewScenario, type ViewState, type VisualDiff, type VisualScenario, captureAudioEvents, captureCanvasDrawCalls, captureGameScreenshot, captureGameState, compareScreenshots, createBandwidthTestScenario, createBinaryStreamMock, createBinaryWriterMock, createBounds, createCombatTestContext, createControlledTimer, createCustomNetworkCondition, createDeltaSnapshot, createEntity, createEntityFactory, createEntityStateFactory, createGameStateSnapshotFactory, createInputInjector, createItemEntityFactory, createMessageReaderMock, createMessageWriterMock, createMockAI, createMockAmmoItem, createMockArmorItem, createMockCamera, createMockCanvas, createMockCanvasContext2D, createMockCollisionEntityIndex, createMockConnection, createMockDamageInfo, createMockEngine, createMockGPUAdapter, createMockGPUCanvasContext, createMockGPUDevice, createMockGame, createMockGameExports, createMockGameState, createMockHandshake, createMockHealthItem, createMockImage, createMockImageData, createMockIndexedDB, createMockInventory, createMockItem, createMockKeyboardEvent, createMockLocalStorage, createMockMasterServer, createMockMonsterAI, createMockMonsterMove, createMockMouseEvent, createMockNetDriver, createMockNetworkAddress, createMockPerformance, createMockPointerLock, createMockPowerupItem, createMockRAF, createMockRConClient, createMockRateLimiter, createMockRefDef, createMockRenderingContext, createMockServer, createMockServerClient, createMockServerConsole, createMockServerInfo, createMockServerState, createMockServerStatic, createMockSessionStorage, createMockTransport, createMockUDPSocket, createMockUserInfo, createMockViewState, createMockWeapon, createMockWeaponItem, createMockWebGL2Context, createMockWheelEvent, createMonsterEntityFactory, createMultiplayerTestScenario, createNetChanMock, createPacketMock, createPhysicsTestContext, createPlayerEntityFactory, createPlayerStateFactory, createPlaywrightTestClient, createProjectileEntityFactory, createServerSnapshot, createSpawnTestContext, createStorageTestScenario, createSurfaceMock, createTestContext, createTraceMock, createTransform, createTriggerEntityFactory, createVector3, createViewTestScenario, createVisualTestScenario, makeAxisBrush, makeBrushFromMinsMaxs, makeBspModel, makeLeaf, makeLeafModel, makeNode, makePlane, measureSnapshotSize, mockMonsterAttacks, randomVector3, serializeUserInfo, setupBrowserEnvironment, setupMockAudioContext, setupNodeEnvironment, setupWebGPUMocks, simulateBandwidthLimit, simulateCameraMovement, simulateFrames, simulateHandshake, simulateNetworkCondition, simulatePlayerInput, simulatePlayerJoin, simulatePlayerLeave, simulateServerCommand, simulateServerRegistration, simulateServerTick, simulateSnapshotDelivery, teardownBrowserEnvironment, teardownMockAudioContext, teardownNodeEnvironment, throttleBandwidth, verifySnapshotConsistency, waitForGameReady };
@@ -1,12 +1,14 @@
1
1
  import * as vitest from 'vitest';
2
2
  import { Mock, vi } from 'vitest';
3
- import { Vec3, CollisionPlane, CollisionBrush, CollisionNode, CollisionLeaf, CollisionModel, PlayerState, EntityState, createRandomGenerator, NetDriver, TraceResult, UserCommand } from '@quake2ts/shared';
3
+ import { Vec3, CollisionPlane, CollisionBrush, CollisionNode, CollisionLeaf, CollisionModel, PlayerState, EntityState, createRandomGenerator, NetDriver, TraceResult as TraceResult$1, UserCommand } from '@quake2ts/shared';
4
4
  export { intersects, ladderTrace, stairTrace } from '@quake2ts/shared';
5
+ import { Vec3 as Vec3$1, Bounds3 } from '@quake2ts/shared/math/vec3';
5
6
  import { GameStateSnapshot, Entity, ScriptHookRegistry, SpawnContext, EntitySystem, SpawnRegistry, MonsterMove, DamageMod, PlayerInventory, BaseItem, WeaponId, WeaponItem, HealthItem, ArmorItem, AmmoItemId, PowerupItem, GameExports } from '@quake2ts/game';
6
7
  import { NetworkTransport, Server, ServerStatic, Client, ClientState, ClientFrame } from '@quake2ts/server';
7
8
  import { ImageData } from '@napi-rs/canvas';
8
9
  import { vec3 } from 'gl-matrix';
9
10
  import { Camera } from '@quake2ts/engine';
11
+ import { TraceResult, CollisionPlane as CollisionPlane$1 } from '@quake2ts/shared/bsp/collision';
10
12
 
11
13
  interface BinaryWriterMock {
12
14
  writeByte: Mock<[number], void>;
@@ -24,6 +26,8 @@ interface BinaryWriterMock {
24
26
  writeUint32: Mock<[number], void>;
25
27
  writeFloat: Mock<[number], void>;
26
28
  getData: Mock<[], Uint8Array>;
29
+ writePos: Mock<[any], void>;
30
+ writeDir: Mock<[any], void>;
27
31
  }
28
32
  declare const createBinaryWriterMock: () => BinaryWriterMock;
29
33
  declare const createNetChanMock: () => {
@@ -85,6 +89,24 @@ interface BinaryStreamMock {
85
89
  readDir: Mock<[], any>;
86
90
  }
87
91
  declare const createBinaryStreamMock: () => BinaryStreamMock;
92
+ interface MessageWriterMock extends BinaryWriterMock {
93
+ writeInt: Mock<[number], void>;
94
+ writeVector: Mock<[any], void>;
95
+ }
96
+ declare const createMessageWriterMock: (overrides?: Partial<MessageWriterMock>) => MessageWriterMock;
97
+ interface MessageReaderMock extends BinaryStreamMock {
98
+ readInt: Mock<[], number>;
99
+ readVector: Mock<[], any>;
100
+ }
101
+ declare const createMessageReaderMock: (data?: Uint8Array) => MessageReaderMock;
102
+ interface PacketMock {
103
+ type: 'connection' | 'data' | 'ack' | 'disconnect';
104
+ sequence: number;
105
+ ack: number;
106
+ qport: number;
107
+ data: Uint8Array;
108
+ }
109
+ declare const createPacketMock: (overrides?: Partial<PacketMock>) => PacketMock;
88
110
 
89
111
  declare function makePlane(normal: Vec3, dist: number): CollisionPlane;
90
112
  declare function makeAxisBrush(size: number, contents?: number): CollisionBrush;
@@ -94,6 +116,16 @@ declare function makeLeaf(contents: number, firstLeafBrush: number, numLeafBrush
94
116
  declare function makeLeafModel(brushes: CollisionBrush[]): CollisionModel;
95
117
  declare function makeBrushFromMinsMaxs(mins: Vec3, maxs: Vec3, contents?: number): CollisionBrush;
96
118
 
119
+ declare const createVector3: (x?: number, y?: number, z?: number) => Vec3$1;
120
+ declare const createBounds: (mins?: Vec3$1, maxs?: Vec3$1) => Bounds3;
121
+ interface Transform {
122
+ position: Vec3$1;
123
+ rotation: Vec3$1;
124
+ scale: Vec3$1;
125
+ }
126
+ declare const createTransform: (overrides?: Partial<Transform>) => Transform;
127
+ declare const randomVector3: (min?: number, max?: number) => Vec3$1;
128
+
97
129
  declare const createPlayerStateFactory: (overrides?: Partial<PlayerState>) => PlayerState;
98
130
  declare const createEntityStateFactory: (overrides?: Partial<EntityState>) => EntityState;
99
131
  declare const createGameStateSnapshotFactory: (overrides?: Partial<GameStateSnapshot>) => GameStateSnapshot;
@@ -104,6 +136,28 @@ declare function createItemEntityFactory(classname: string, overrides?: Partial<
104
136
  declare function createProjectileEntityFactory(classname: string, overrides?: Partial<Entity>): Entity;
105
137
  declare function createTriggerEntityFactory(classname: string, overrides?: Partial<Entity>): Entity;
106
138
 
139
+ interface TraceMock extends Partial<TraceResult> {
140
+ fraction: number;
141
+ endpos: Vec3$1;
142
+ plane: CollisionPlane$1;
143
+ surface: {
144
+ flags: number;
145
+ name?: string;
146
+ value?: number;
147
+ };
148
+ contents: number;
149
+ ent: any;
150
+ allsolid: boolean;
151
+ startsolid: boolean;
152
+ }
153
+ declare const createTraceMock: (overrides?: Partial<TraceMock>) => TraceMock;
154
+ interface SurfaceMock {
155
+ flags: number;
156
+ name: string;
157
+ value: number;
158
+ }
159
+ declare const createSurfaceMock: (overrides?: Partial<SurfaceMock>) => SurfaceMock;
160
+
107
161
  interface MockEngine {
108
162
  sound: Mock<[Entity, number, string, number, number, number], void>;
109
163
  soundIndex: Mock<[string], number>;
@@ -527,7 +581,7 @@ declare function simulateServerRegistration(server: any, master: MasterServer):
527
581
  * Mock interface for CollisionEntityIndex.
528
582
  */
529
583
  interface MockCollisionEntityIndex {
530
- trace: (start: any, mins: any, maxs: any, end: any, passEntity: any, contentMask: number) => TraceResult;
584
+ trace: (start: any, mins: any, maxs: any, end: any, passEntity: any, contentMask: number) => TraceResult$1;
531
585
  link: (entity: any) => void;
532
586
  unlink: (entity: any) => void;
533
587
  gatherTriggerTouches: (entity: any) => any[];
@@ -1202,4 +1256,4 @@ interface VisualScenario {
1202
1256
  */
1203
1257
  declare function createVisualTestScenario(sceneName: string): VisualScenario;
1204
1258
 
1205
- export { type AudioEvent, type BandwidthScenario, type BinaryStreamMock, type BinaryWriterMock, type BrowserSetupOptions, type CameraInput, type Connection, type ConsistencyReport, type ControlledTimer, type DeltaSnapshot, type DrawCall, type GameState, type GameStateCapture, type Handshake, HandshakeStage, InputInjector, type KeyModifiers, type MasterServer, type Message, type MockAI, type MockCollisionEntityIndex, type MockDamageInfo, type MockEngine, type MockGame, type MockMonsterAI, MockPointerLock, type MockRAF, type MockRConClient, type MockRenderingContext, type MockServer, type MockServerConsole, type MockServerContext, MockTransport, type MockUDPSocket, MockWebGL2RenderingContext, type MultiplayerScenario, type NetworkAddress, type NetworkCondition, type NetworkSimulator, type NodeSetupOptions, type PlaywrightOptions, type PlaywrightTestClient, type RateLimiter, type RefDef, type ServerInfo, type ServerListFilter, type Snapshot, type StorageScenario, type TestContext, type UserInfo, type ViewScenario, type ViewState, type VisualDiff, type VisualScenario, captureAudioEvents, captureCanvasDrawCalls, captureGameScreenshot, captureGameState, compareScreenshots, createBandwidthTestScenario, createBinaryStreamMock, createBinaryWriterMock, createCombatTestContext, createControlledTimer, createCustomNetworkCondition, createDeltaSnapshot, createEntity, createEntityFactory, createEntityStateFactory, createGameStateSnapshotFactory, createInputInjector, createItemEntityFactory, createMockAI, createMockAmmoItem, createMockArmorItem, createMockCamera, createMockCanvas, createMockCanvasContext2D, createMockCollisionEntityIndex, createMockConnection, createMockDamageInfo, createMockEngine, createMockGPUAdapter, createMockGPUCanvasContext, createMockGPUDevice, createMockGame, createMockGameExports, createMockGameState, createMockHandshake, createMockHealthItem, createMockImage, createMockImageData, createMockIndexedDB, createMockInventory, createMockItem, createMockKeyboardEvent, createMockLocalStorage, createMockMasterServer, createMockMonsterAI, createMockMonsterMove, createMockMouseEvent, createMockNetDriver, createMockNetworkAddress, createMockPerformance, createMockPointerLock, createMockPowerupItem, createMockRAF, createMockRConClient, createMockRateLimiter, createMockRefDef, createMockRenderingContext, createMockServer, createMockServerClient, createMockServerConsole, createMockServerInfo, createMockServerState, createMockServerStatic, createMockSessionStorage, createMockTransport, createMockUDPSocket, createMockUserInfo, createMockViewState, createMockWeapon, createMockWeaponItem, createMockWebGL2Context, createMockWheelEvent, createMonsterEntityFactory, createMultiplayerTestScenario, createNetChanMock, createPhysicsTestContext, createPlayerEntityFactory, createPlayerStateFactory, createPlaywrightTestClient, createProjectileEntityFactory, createServerSnapshot, createSpawnTestContext, createStorageTestScenario, createTestContext, createTriggerEntityFactory, createViewTestScenario, createVisualTestScenario, makeAxisBrush, makeBrushFromMinsMaxs, makeBspModel, makeLeaf, makeLeafModel, makeNode, makePlane, measureSnapshotSize, mockMonsterAttacks, serializeUserInfo, setupBrowserEnvironment, setupMockAudioContext, setupNodeEnvironment, setupWebGPUMocks, simulateBandwidthLimit, simulateCameraMovement, simulateFrames, simulateHandshake, simulateNetworkCondition, simulatePlayerInput, simulatePlayerJoin, simulatePlayerLeave, simulateServerCommand, simulateServerRegistration, simulateServerTick, simulateSnapshotDelivery, teardownBrowserEnvironment, teardownMockAudioContext, teardownNodeEnvironment, throttleBandwidth, verifySnapshotConsistency, waitForGameReady };
1259
+ export { type AudioEvent, type BandwidthScenario, type BinaryStreamMock, type BinaryWriterMock, type BrowserSetupOptions, type CameraInput, type Connection, type ConsistencyReport, type ControlledTimer, type DeltaSnapshot, type DrawCall, type GameState, type GameStateCapture, type Handshake, HandshakeStage, InputInjector, type KeyModifiers, type MasterServer, type Message, type MessageReaderMock, type MessageWriterMock, type MockAI, type MockCollisionEntityIndex, type MockDamageInfo, type MockEngine, type MockGame, type MockMonsterAI, MockPointerLock, type MockRAF, type MockRConClient, type MockRenderingContext, type MockServer, type MockServerConsole, type MockServerContext, MockTransport, type MockUDPSocket, MockWebGL2RenderingContext, type MultiplayerScenario, type NetworkAddress, type NetworkCondition, type NetworkSimulator, type NodeSetupOptions, type PacketMock, type PlaywrightOptions, type PlaywrightTestClient, type RateLimiter, type RefDef, type ServerInfo, type ServerListFilter, type Snapshot, type StorageScenario, type TestContext, type Transform, type UserInfo, type ViewScenario, type ViewState, type VisualDiff, type VisualScenario, captureAudioEvents, captureCanvasDrawCalls, captureGameScreenshot, captureGameState, compareScreenshots, createBandwidthTestScenario, createBinaryStreamMock, createBinaryWriterMock, createBounds, createCombatTestContext, createControlledTimer, createCustomNetworkCondition, createDeltaSnapshot, createEntity, createEntityFactory, createEntityStateFactory, createGameStateSnapshotFactory, createInputInjector, createItemEntityFactory, createMessageReaderMock, createMessageWriterMock, createMockAI, createMockAmmoItem, createMockArmorItem, createMockCamera, createMockCanvas, createMockCanvasContext2D, createMockCollisionEntityIndex, createMockConnection, createMockDamageInfo, createMockEngine, createMockGPUAdapter, createMockGPUCanvasContext, createMockGPUDevice, createMockGame, createMockGameExports, createMockGameState, createMockHandshake, createMockHealthItem, createMockImage, createMockImageData, createMockIndexedDB, createMockInventory, createMockItem, createMockKeyboardEvent, createMockLocalStorage, createMockMasterServer, createMockMonsterAI, createMockMonsterMove, createMockMouseEvent, createMockNetDriver, createMockNetworkAddress, createMockPerformance, createMockPointerLock, createMockPowerupItem, createMockRAF, createMockRConClient, createMockRateLimiter, createMockRefDef, createMockRenderingContext, createMockServer, createMockServerClient, createMockServerConsole, createMockServerInfo, createMockServerState, createMockServerStatic, createMockSessionStorage, createMockTransport, createMockUDPSocket, createMockUserInfo, createMockViewState, createMockWeapon, createMockWeaponItem, createMockWebGL2Context, createMockWheelEvent, createMonsterEntityFactory, createMultiplayerTestScenario, createNetChanMock, createPacketMock, createPhysicsTestContext, createPlayerEntityFactory, createPlayerStateFactory, createPlaywrightTestClient, createProjectileEntityFactory, createServerSnapshot, createSpawnTestContext, createStorageTestScenario, createSurfaceMock, createTestContext, createTraceMock, createTransform, createTriggerEntityFactory, createVector3, createViewTestScenario, createVisualTestScenario, makeAxisBrush, makeBrushFromMinsMaxs, makeBspModel, makeLeaf, makeLeafModel, makeNode, makePlane, measureSnapshotSize, mockMonsterAttacks, randomVector3, serializeUserInfo, setupBrowserEnvironment, setupMockAudioContext, setupNodeEnvironment, setupWebGPUMocks, simulateBandwidthLimit, simulateCameraMovement, simulateFrames, simulateHandshake, simulateNetworkCondition, simulatePlayerInput, simulatePlayerJoin, simulatePlayerLeave, simulateServerCommand, simulateServerRegistration, simulateServerTick, simulateSnapshotDelivery, teardownBrowserEnvironment, teardownMockAudioContext, teardownNodeEnvironment, throttleBandwidth, verifySnapshotConsistency, waitForGameReady };
@@ -22,7 +22,9 @@ var createBinaryWriterMock = () => ({
22
22
  writeInt32: vi.fn(),
23
23
  writeUint32: vi.fn(),
24
24
  writeFloat: vi.fn(),
25
- getData: vi.fn(() => new Uint8Array(0))
25
+ getData: vi.fn(() => new Uint8Array(0)),
26
+ writePos: vi.fn(),
27
+ writeDir: vi.fn()
26
28
  });
27
29
  var createNetChanMock = () => ({
28
30
  qport: 1234,
@@ -84,6 +86,37 @@ var createBinaryStreamMock = () => ({
84
86
  readPos: vi.fn(),
85
87
  readDir: vi.fn()
86
88
  });
89
+ var createMessageWriterMock = (overrides) => {
90
+ const mock = createBinaryWriterMock();
91
+ const writer = {
92
+ ...mock,
93
+ writeInt: mock.writeInt32,
94
+ // Alias writeInt to writeInt32
95
+ writeVector: mock.writePos,
96
+ // Alias writeVector to writePos
97
+ ...overrides
98
+ };
99
+ return writer;
100
+ };
101
+ var createMessageReaderMock = (data) => {
102
+ const mock = createBinaryStreamMock();
103
+ const reader = {
104
+ ...mock,
105
+ readInt: mock.readLong,
106
+ // Alias readInt to readLong (int32)
107
+ readVector: mock.readPos
108
+ // Alias readVector to readPos
109
+ };
110
+ return reader;
111
+ };
112
+ var createPacketMock = (overrides) => ({
113
+ type: "data",
114
+ sequence: 0,
115
+ ack: 0,
116
+ qport: 0,
117
+ data: new Uint8Array(0),
118
+ ...overrides
119
+ });
87
120
 
88
121
  // src/shared/bsp.ts
89
122
  import {
@@ -155,6 +188,28 @@ function makeBrushFromMinsMaxs(mins, maxs, contents = CONTENTS_SOLID) {
155
188
  };
156
189
  }
157
190
 
191
+ // src/shared/math.ts
192
+ var createVector3 = (x = 0, y = 0, z = 0) => ({
193
+ x,
194
+ y,
195
+ z
196
+ });
197
+ var createBounds = (mins = createVector3(0, 0, 0), maxs = createVector3(1, 1, 1)) => ({
198
+ mins,
199
+ maxs
200
+ });
201
+ var createTransform = (overrides) => ({
202
+ position: createVector3(),
203
+ rotation: createVector3(),
204
+ scale: createVector3(1, 1, 1),
205
+ ...overrides
206
+ });
207
+ var randomVector3 = (min2 = -100, max2 = 100) => ({
208
+ x: Math.random() * (max2 - min2) + min2,
209
+ y: Math.random() * (max2 - min2) + min2,
210
+ z: Math.random() * (max2 - min2) + min2
211
+ });
212
+
158
213
  // src/game/factories.ts
159
214
  import {
160
215
  Entity,
@@ -317,7 +372,28 @@ function createTriggerEntityFactory(classname, overrides = {}) {
317
372
  import { vi as vi2 } from "vitest";
318
373
  import { Entity as Entity2, SpawnRegistry, ScriptHookRegistry } from "@quake2ts/game";
319
374
  import { createRandomGenerator } from "@quake2ts/shared";
375
+
376
+ // src/shared/collision.ts
320
377
  import { intersects, stairTrace, ladderTrace } from "@quake2ts/shared";
378
+ var createTraceMock = (overrides) => ({
379
+ fraction: 1,
380
+ endpos: { x: 0, y: 0, z: 0 },
381
+ plane: { normal: { x: 0, y: 0, z: 0 }, dist: 0, type: 0, signbits: 0 },
382
+ surface: { flags: 0 },
383
+ contents: 0,
384
+ ent: null,
385
+ allsolid: false,
386
+ startsolid: false,
387
+ ...overrides
388
+ });
389
+ var createSurfaceMock = (overrides) => ({
390
+ flags: 0,
391
+ name: "default",
392
+ value: 0,
393
+ ...overrides
394
+ });
395
+
396
+ // src/game/helpers.ts
321
397
  var createMockEngine = () => ({
322
398
  sound: vi2.fn(),
323
399
  soundIndex: vi2.fn((sound) => 0),
@@ -354,16 +430,12 @@ function createTestContext(options) {
354
430
  const engine = createMockEngine();
355
431
  const seed = options?.seed ?? 12345;
356
432
  const { game, spawnRegistry } = createMockGame(seed);
357
- const traceFn = vi2.fn((start, end, mins, maxs) => ({
358
- fraction: 1,
359
- ent: null,
360
- allsolid: false,
361
- startsolid: false,
362
- endpos: end,
363
- plane: { normal: { x: 0, y: 0, z: 1 }, dist: 0 },
364
- surfaceFlags: 0,
365
- contents: 0
366
- }));
433
+ const traceFn = vi2.fn(
434
+ (start, end, mins, maxs) => createTraceMock({
435
+ endpos: end,
436
+ plane: { normal: { x: 0, y: 0, z: 1 }, dist: 0, type: 0, signbits: 0 }
437
+ })
438
+ );
367
439
  const entityList = options?.initialEntities ? [...options.initialEntities] : [];
368
440
  const hooks = game.hooks;
369
441
  const entities = {
@@ -2962,6 +3034,7 @@ export {
2962
3034
  createBandwidthTestScenario,
2963
3035
  createBinaryStreamMock,
2964
3036
  createBinaryWriterMock,
3037
+ createBounds,
2965
3038
  createCombatTestContext,
2966
3039
  createControlledTimer,
2967
3040
  createCustomNetworkCondition,
@@ -2972,6 +3045,8 @@ export {
2972
3045
  createGameStateSnapshotFactory,
2973
3046
  createInputInjector,
2974
3047
  createItemEntityFactory,
3048
+ createMessageReaderMock,
3049
+ createMessageWriterMock,
2975
3050
  createMockAI,
2976
3051
  createMockAmmoItem,
2977
3052
  createMockArmorItem,
@@ -3029,6 +3104,7 @@ export {
3029
3104
  createMonsterEntityFactory,
3030
3105
  createMultiplayerTestScenario,
3031
3106
  createNetChanMock,
3107
+ createPacketMock,
3032
3108
  createPhysicsTestContext,
3033
3109
  createPlayerEntityFactory,
3034
3110
  createPlayerStateFactory,
@@ -3037,8 +3113,12 @@ export {
3037
3113
  createServerSnapshot,
3038
3114
  createSpawnTestContext,
3039
3115
  createStorageTestScenario,
3116
+ createSurfaceMock,
3040
3117
  createTestContext,
3118
+ createTraceMock,
3119
+ createTransform,
3041
3120
  createTriggerEntityFactory,
3121
+ createVector3,
3042
3122
  createViewTestScenario,
3043
3123
  createVisualTestScenario,
3044
3124
  intersects,
@@ -3052,6 +3132,7 @@ export {
3052
3132
  makePlane,
3053
3133
  measureSnapshotSize,
3054
3134
  mockMonsterAttacks,
3135
+ randomVector3,
3055
3136
  serializeUserInfo,
3056
3137
  setupBrowserEnvironment,
3057
3138
  setupMockAudioContext,