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.
- package/package.json +6 -4
- package/packages/engine/dist/tsconfig.tsbuildinfo +1 -1
- package/packages/engine/dist/types/render/__mocks__/frame.d.ts +31 -0
- package/packages/engine/dist/types/render/__mocks__/frame.d.ts.map +1 -0
- package/packages/test-utils/dist/index.cjs +107 -17
- package/packages/test-utils/dist/index.cjs.map +1 -1
- package/packages/test-utils/dist/index.d.cts +57 -3
- package/packages/test-utils/dist/index.d.ts +57 -3
- package/packages/test-utils/dist/index.js +92 -11
- package/packages/test-utils/dist/index.js.map +1 -1
|
@@ -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(
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
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,
|