quake2ts 0.0.621 → 0.0.629
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/engine/dist/tsconfig.tsbuildinfo +1 -1
- package/packages/engine/dist/types/render/webgpu/resources.d.ts +107 -60
- package/packages/engine/dist/types/render/webgpu/resources.d.ts.map +1 -1
- package/packages/test-utils/dist/index.cjs +944 -115
- package/packages/test-utils/dist/index.cjs.map +1 -1
- package/packages/test-utils/dist/index.d.cts +214 -8
- package/packages/test-utils/dist/index.d.ts +214 -8
- package/packages/test-utils/dist/index.js +903 -114
- package/packages/test-utils/dist/index.js.map +1 -1
|
@@ -4,10 +4,10 @@ import { Vec3, CollisionPlane, CollisionBrush, CollisionNode, CollisionLeaf, Col
|
|
|
4
4
|
export { intersects, ladderTrace, stairTrace } from '@quake2ts/shared';
|
|
5
5
|
import { Vec3 as Vec3$1, Bounds3 } from '@quake2ts/shared/math/vec3';
|
|
6
6
|
import { TraceResult, CollisionPlane as CollisionPlane$1 } from '@quake2ts/shared/bsp/collision';
|
|
7
|
-
import { ConfigStringEntry, Cvar, AudioNodeLike, AudioBufferSourceNodeLike, AudioBufferLike, AudioParamLike, GainNodeLike, DynamicsCompressorNodeLike, PannerNodeLike, BiquadFilterNodeLike, AudioDestinationNodeLike, AudioContextLike, Renderer, FrameRenderer, BspSurfacePipeline, Md2Pipeline, Md3Pipeline, SpriteRenderer, SkyboxPipeline, Camera, FrameRenderStats, EntityState as EntityState$1, ProtocolPlayerState, FrameData, DamageIndicator, FogData } from '@quake2ts/engine';
|
|
7
|
+
import { ConfigStringEntry, Cvar, AudioNodeLike, AudioBufferSourceNodeLike, AudioBufferLike, AudioParamLike, GainNodeLike, DynamicsCompressorNodeLike, PannerNodeLike, BiquadFilterNodeLike, AudioDestinationNodeLike, AudioContextLike, Renderer, FrameRenderer, BspSurfacePipeline, Md2Pipeline, Md3Pipeline, SpriteRenderer, SkyboxPipeline, AssetManager, PreparedTexture, Md2Model, Md3Model, BspMap, Camera, FrameRenderStats, EntityState as EntityState$1, ProtocolPlayerState, FrameData, DamageIndicator, FogData } from '@quake2ts/engine';
|
|
8
8
|
export { ConfigStringEntry, Cvar } from '@quake2ts/engine';
|
|
9
9
|
import { GameStateSnapshot, Entity, ScriptHookRegistry, SpawnContext, EntitySystem, SpawnRegistry, MonsterMove, DamageMod, PlayerInventory, BaseItem, WeaponId, WeaponItem, HealthItem, ArmorItem, AmmoItemId, PowerupItem, GameExports, PlayerClient } from '@quake2ts/game';
|
|
10
|
-
import { NetworkTransport, Server, ServerStatic, Client, ClientState, ClientFrame } from '@quake2ts/server';
|
|
10
|
+
import { NetworkTransport, Server, ServerStatic, Client, ClientState as ClientState$1, ClientFrame } from '@quake2ts/server';
|
|
11
11
|
import { ImageData, Canvas } from '@napi-rs/canvas';
|
|
12
12
|
import { vec3 } from 'gl-matrix';
|
|
13
13
|
|
|
@@ -703,7 +703,7 @@ declare function createMockServer(overrides?: Partial<MockServer>): MockServer;
|
|
|
703
703
|
* Interface representing connection state for testing.
|
|
704
704
|
*/
|
|
705
705
|
interface Connection {
|
|
706
|
-
state: ClientState;
|
|
706
|
+
state: ClientState$1;
|
|
707
707
|
address: string;
|
|
708
708
|
challenge: number;
|
|
709
709
|
userInfo: UserInfo;
|
|
@@ -756,7 +756,7 @@ declare function createMockUserInfo(overrides?: Partial<UserInfo>): UserInfo;
|
|
|
756
756
|
* @param state The client state (default: Connected).
|
|
757
757
|
* @param overrides Optional overrides for the client.
|
|
758
758
|
*/
|
|
759
|
-
declare function createMockConnection(state?: ClientState, overrides?: Partial<Client>): Client;
|
|
759
|
+
declare function createMockConnection(state?: ClientState$1, overrides?: Partial<Client>): Client;
|
|
760
760
|
/**
|
|
761
761
|
* Creates a mock handshake object.
|
|
762
762
|
* @param stage The stage of the handshake (default: None).
|
|
@@ -1032,16 +1032,59 @@ declare function createMockImageData(width: number, height: number, fillColor?:
|
|
|
1032
1032
|
*/
|
|
1033
1033
|
declare function createMockImage(width?: number, height?: number, src?: string): HTMLImageElement;
|
|
1034
1034
|
|
|
1035
|
-
|
|
1036
|
-
|
|
1037
|
-
|
|
1035
|
+
interface HeadlessWebGPUSetup {
|
|
1036
|
+
adapter: GPUAdapter;
|
|
1037
|
+
device: GPUDevice;
|
|
1038
|
+
cleanup: () => Promise<void>;
|
|
1039
|
+
}
|
|
1040
|
+
interface WebGPUContextState {
|
|
1041
|
+
adapter: GPUAdapter;
|
|
1042
|
+
device: GPUDevice;
|
|
1043
|
+
queue: GPUQueue;
|
|
1044
|
+
}
|
|
1045
|
+
/**
|
|
1046
|
+
* Initialize WebGPU in a headless Node.js environment using @webgpu/dawn (via webgpu package)
|
|
1047
|
+
*/
|
|
1048
|
+
declare function initHeadlessWebGPU(options?: {
|
|
1049
|
+
powerPreference?: 'low-power' | 'high-performance';
|
|
1050
|
+
requiredFeatures?: GPUFeatureName[];
|
|
1051
|
+
}): Promise<HeadlessWebGPUSetup>;
|
|
1052
|
+
/**
|
|
1053
|
+
* Creates a complete context state for testing
|
|
1054
|
+
*/
|
|
1055
|
+
declare function createHeadlessTestContext(): Promise<WebGPUContextState>;
|
|
1056
|
+
|
|
1057
|
+
interface MockWebGPUContext {
|
|
1058
|
+
adapter: GPUAdapter;
|
|
1059
|
+
device: GPUDevice;
|
|
1060
|
+
queue: GPUQueue;
|
|
1061
|
+
}
|
|
1062
|
+
/**
|
|
1063
|
+
* Patches globalThis with WebGPU globals (GPUBufferUsage, etc.)
|
|
1064
|
+
* and optionally patches navigator.gpu.
|
|
1065
|
+
*/
|
|
1038
1066
|
declare function setupWebGPUMocks(): {
|
|
1039
1067
|
mockGpu: {
|
|
1040
1068
|
requestAdapter: vitest.Mock<any, any>;
|
|
1041
1069
|
getPreferredCanvasFormat: vitest.Mock<any, any>;
|
|
1042
1070
|
};
|
|
1043
1071
|
mockAdapter: GPUAdapter;
|
|
1072
|
+
mockDevice: GPUDevice;
|
|
1044
1073
|
};
|
|
1074
|
+
declare function createMockGPUAdapter(options?: Partial<GPUAdapter>): GPUAdapter;
|
|
1075
|
+
declare function createMockGPUDevice(features?: Set<GPUFeatureName>): GPUDevice;
|
|
1076
|
+
declare function createMockQueue(): GPUQueue;
|
|
1077
|
+
declare function createMockGPUBuffer(descriptor: GPUBufferDescriptor): GPUBuffer;
|
|
1078
|
+
declare function createMockGPUTexture(descriptor: GPUTextureDescriptor): GPUTexture;
|
|
1079
|
+
declare function createMockTextureView(): GPUTextureView;
|
|
1080
|
+
declare function createMockSampler(): GPUSampler;
|
|
1081
|
+
declare function createMockShaderModule(descriptor: GPUShaderModuleDescriptor): GPUShaderModule;
|
|
1082
|
+
declare function createMockComputePipeline(): GPUComputePipeline;
|
|
1083
|
+
declare function createMockRenderPipeline(): GPURenderPipeline;
|
|
1084
|
+
declare function createMockCommandEncoder(): GPUCommandEncoder;
|
|
1085
|
+
declare function createMockRenderPassEncoder(): GPURenderPassEncoder;
|
|
1086
|
+
declare function createMockComputePassEncoder(): GPUComputePassEncoder;
|
|
1087
|
+
declare function createMockWebGPUContext(): MockWebGPUContext;
|
|
1045
1088
|
|
|
1046
1089
|
/**
|
|
1047
1090
|
* Interface for the mock RequestAnimationFrame implementation.
|
|
@@ -1333,6 +1376,12 @@ declare function createMockMd3Pipeline(overrides?: Partial<Md3Pipeline>): Md3Pip
|
|
|
1333
1376
|
declare function createMockSpritePipeline(overrides?: Partial<SpriteRenderer>): SpriteRenderer;
|
|
1334
1377
|
declare function createMockSkyboxPipeline(overrides?: Partial<SkyboxPipeline>): SkyboxPipeline;
|
|
1335
1378
|
|
|
1379
|
+
declare function createMockAssetManager(overrides?: Partial<AssetManager>): AssetManager;
|
|
1380
|
+
declare function createMockTexture(width?: number, height?: number, data?: Uint8Array): PreparedTexture;
|
|
1381
|
+
declare function createMockMd2Model(overrides?: Partial<Md2Model>): Md2Model;
|
|
1382
|
+
declare function createMockMd3Model(overrides?: Partial<Md3Model>): Md3Model;
|
|
1383
|
+
declare function createMockBspMap(overrides?: Partial<BspMap>): BspMap;
|
|
1384
|
+
|
|
1336
1385
|
interface MockPipeline {
|
|
1337
1386
|
render: ReturnType<typeof vi.fn>;
|
|
1338
1387
|
init: ReturnType<typeof vi.fn>;
|
|
@@ -1412,6 +1461,62 @@ interface AudioEvent {
|
|
|
1412
1461
|
*/
|
|
1413
1462
|
declare function captureAudioEvents(context: AudioContext): AudioEvent[];
|
|
1414
1463
|
|
|
1464
|
+
/**
|
|
1465
|
+
* Interface for render test setup
|
|
1466
|
+
*/
|
|
1467
|
+
interface RenderTestSetup {
|
|
1468
|
+
context: WebGPUContextState;
|
|
1469
|
+
renderTarget: GPUTexture;
|
|
1470
|
+
renderTargetView: GPUTextureView;
|
|
1471
|
+
commandEncoder: GPUCommandEncoder;
|
|
1472
|
+
cleanup: () => Promise<void>;
|
|
1473
|
+
width: number;
|
|
1474
|
+
height: number;
|
|
1475
|
+
}
|
|
1476
|
+
/**
|
|
1477
|
+
* Creates a setup for testing rendering pipelines.
|
|
1478
|
+
* Initializes a headless WebGPU context, a render target texture, and a command encoder.
|
|
1479
|
+
*/
|
|
1480
|
+
declare function createRenderTestSetup(width?: number, height?: number): Promise<RenderTestSetup>;
|
|
1481
|
+
/**
|
|
1482
|
+
* Helper to render and capture the output as pixel data.
|
|
1483
|
+
* It manages the render pass, submission, and buffer readback.
|
|
1484
|
+
*/
|
|
1485
|
+
declare function renderAndCapture(setup: RenderTestSetup, renderFn: (pass: GPURenderPassEncoder) => void): Promise<Uint8ClampedArray>;
|
|
1486
|
+
/**
|
|
1487
|
+
* Interface for compute test setup
|
|
1488
|
+
*/
|
|
1489
|
+
interface ComputeTestSetup {
|
|
1490
|
+
context: WebGPUContextState;
|
|
1491
|
+
outputBuffer: GPUBuffer;
|
|
1492
|
+
commandEncoder: GPUCommandEncoder;
|
|
1493
|
+
cleanup: () => Promise<void>;
|
|
1494
|
+
outputSize: number;
|
|
1495
|
+
}
|
|
1496
|
+
/**
|
|
1497
|
+
* Creates a setup for testing compute shaders.
|
|
1498
|
+
*/
|
|
1499
|
+
declare function createComputeTestSetup(outputSize: number): Promise<ComputeTestSetup>;
|
|
1500
|
+
/**
|
|
1501
|
+
* Helper to run a compute pass and read back the output buffer.
|
|
1502
|
+
*/
|
|
1503
|
+
declare function runComputeAndReadback(setup: ComputeTestSetup, computeFn: (pass: GPUComputePassEncoder) => void): Promise<ArrayBuffer>;
|
|
1504
|
+
|
|
1505
|
+
interface GeometryBuffers {
|
|
1506
|
+
vertexBuffer: GPUBuffer;
|
|
1507
|
+
indexBuffer?: GPUBuffer;
|
|
1508
|
+
vertexCount: number;
|
|
1509
|
+
indexCount?: number;
|
|
1510
|
+
}
|
|
1511
|
+
/**
|
|
1512
|
+
* Template for testing a rendering pipeline
|
|
1513
|
+
*/
|
|
1514
|
+
declare function testPipelineRendering(name: string, createPipeline: (device: GPUDevice) => GPURenderPipeline, setupGeometry: (device: GPUDevice) => GeometryBuffers, expectedOutput?: Uint8ClampedArray): Promise<void>;
|
|
1515
|
+
/**
|
|
1516
|
+
* Template for testing compute shaders
|
|
1517
|
+
*/
|
|
1518
|
+
declare function testComputeShader(name: string, createComputePipeline: (device: GPUDevice) => GPUComputePipeline, inputData: Float32Array, expectedOutput?: Float32Array): Promise<void>;
|
|
1519
|
+
|
|
1415
1520
|
/**
|
|
1416
1521
|
* Client Input System Mocks
|
|
1417
1522
|
*
|
|
@@ -1595,6 +1700,107 @@ declare function createMockEntityState(number: number, modelIndex?: number, orig
|
|
|
1595
1700
|
declare function createMockDamageIndicator(damage: number, dir?: Vec3, health?: boolean, armor?: boolean, power?: boolean): DamageIndicator;
|
|
1596
1701
|
declare function createMockFogData(overrides?: Partial<FogData>): FogData;
|
|
1597
1702
|
|
|
1703
|
+
interface DownloadManager {
|
|
1704
|
+
download(url: string): Promise<ArrayBuffer>;
|
|
1705
|
+
cancel(url: string): void;
|
|
1706
|
+
getProgress(url: string): number;
|
|
1707
|
+
}
|
|
1708
|
+
declare function createMockDownloadManager(overrides?: Partial<DownloadManager>): DownloadManager;
|
|
1709
|
+
interface PrecacheList {
|
|
1710
|
+
models: string[];
|
|
1711
|
+
sounds: string[];
|
|
1712
|
+
images: string[];
|
|
1713
|
+
}
|
|
1714
|
+
declare function createMockPrecacheList(models?: string[], sounds?: string[], images?: string[]): PrecacheList;
|
|
1715
|
+
declare function simulateDownload(url: string, progressCallback?: (percent: number) => void): Promise<ArrayBuffer>;
|
|
1716
|
+
|
|
1717
|
+
declare class MockClientConfigStrings {
|
|
1718
|
+
private readonly strings;
|
|
1719
|
+
private readonly models;
|
|
1720
|
+
private readonly sounds;
|
|
1721
|
+
private readonly images;
|
|
1722
|
+
constructor();
|
|
1723
|
+
set(index: number, value: string): void;
|
|
1724
|
+
get(index: number): string | undefined;
|
|
1725
|
+
getModelName(index: number): string | undefined;
|
|
1726
|
+
getSoundName(index: number): string | undefined;
|
|
1727
|
+
getImageName(index: number): string | undefined;
|
|
1728
|
+
getPlayerName(playernum: number): string | undefined;
|
|
1729
|
+
clear(): void;
|
|
1730
|
+
}
|
|
1731
|
+
interface ClientStateProvider {
|
|
1732
|
+
tickRate: number;
|
|
1733
|
+
frameTimeMs: number;
|
|
1734
|
+
serverFrame: number;
|
|
1735
|
+
serverProtocol: number;
|
|
1736
|
+
configStrings: MockClientConfigStrings;
|
|
1737
|
+
getClientName(num: number): string;
|
|
1738
|
+
getKeyBinding(key: string): string;
|
|
1739
|
+
inAutoDemo: boolean;
|
|
1740
|
+
}
|
|
1741
|
+
interface ClientInfo {
|
|
1742
|
+
name: string;
|
|
1743
|
+
skin: string;
|
|
1744
|
+
model: string;
|
|
1745
|
+
icon: string;
|
|
1746
|
+
}
|
|
1747
|
+
interface ClientState extends ClientStateProvider {
|
|
1748
|
+
playerNum: number;
|
|
1749
|
+
serverTime: number;
|
|
1750
|
+
parseEntities: number;
|
|
1751
|
+
}
|
|
1752
|
+
interface Frame {
|
|
1753
|
+
serverFrame: number;
|
|
1754
|
+
deltaFrame: number;
|
|
1755
|
+
valid: boolean;
|
|
1756
|
+
entities: EntityState[];
|
|
1757
|
+
}
|
|
1758
|
+
interface ConnectionState {
|
|
1759
|
+
state: 'disconnected' | 'connecting' | 'connected' | 'active';
|
|
1760
|
+
}
|
|
1761
|
+
declare const createMockClientState: (overrides?: Partial<ClientState>) => ClientState;
|
|
1762
|
+
declare const createMockFrame: (overrides?: Partial<Frame>) => Frame;
|
|
1763
|
+
declare const createMockClientInfo: (overrides?: Partial<ClientInfo>) => ClientInfo;
|
|
1764
|
+
declare const createMockConnectionState: (state?: ConnectionState["state"]) => ConnectionState;
|
|
1765
|
+
|
|
1766
|
+
interface MockConsole {
|
|
1767
|
+
print: (text: string) => void;
|
|
1768
|
+
error: (text: string) => void;
|
|
1769
|
+
execute: (text: string) => void;
|
|
1770
|
+
addCommand: (name: string, handler: (args: string[]) => void) => void;
|
|
1771
|
+
getCvar: (name: string) => string | undefined;
|
|
1772
|
+
setCvar: (name: string, value: string) => void;
|
|
1773
|
+
getHistory: () => string[];
|
|
1774
|
+
clearHistory: () => void;
|
|
1775
|
+
getErrors: () => string[];
|
|
1776
|
+
}
|
|
1777
|
+
interface MockCommand {
|
|
1778
|
+
name: string;
|
|
1779
|
+
handler: (args: string[]) => void;
|
|
1780
|
+
}
|
|
1781
|
+
interface CvarRegistry {
|
|
1782
|
+
[key: string]: string;
|
|
1783
|
+
}
|
|
1784
|
+
declare function createMockConsole(overrides?: Partial<MockConsole>): MockConsole;
|
|
1785
|
+
declare function createMockCommand(name: string, handler: (args: string[]) => void): MockCommand;
|
|
1786
|
+
declare function createMockCvarRegistry(initialCvars?: Record<string, string>): CvarRegistry;
|
|
1787
|
+
|
|
1788
|
+
interface PredictionScenario {
|
|
1789
|
+
clientState: ClientState;
|
|
1790
|
+
snapshots: EntityState[][];
|
|
1791
|
+
lagMs: number;
|
|
1792
|
+
}
|
|
1793
|
+
interface SmoothingAnalysis {
|
|
1794
|
+
smooth: boolean;
|
|
1795
|
+
maxError: number;
|
|
1796
|
+
averageError: number;
|
|
1797
|
+
jumps: number[];
|
|
1798
|
+
}
|
|
1799
|
+
declare const createPredictionTestScenario: (lagMs?: number) => PredictionScenario;
|
|
1800
|
+
declare const simulateClientPrediction: (state: ClientState, input: UserCommand, deltaTime: number) => ClientState;
|
|
1801
|
+
declare const createInterpolationTestData: (startState: EntityState, endState: EntityState, steps?: number) => EntityState[];
|
|
1802
|
+
declare const verifySmoothing: (states: EntityState[]) => SmoothingAnalysis;
|
|
1803
|
+
|
|
1598
1804
|
interface PlaywrightOptions {
|
|
1599
1805
|
headless?: boolean;
|
|
1600
1806
|
viewport?: {
|
|
@@ -1684,4 +1890,4 @@ interface VisualScenario {
|
|
|
1684
1890
|
*/
|
|
1685
1891
|
declare function createVisualTestScenario(sceneName: string): VisualScenario;
|
|
1686
1892
|
|
|
1687
|
-
export { type AudioEvent, type BandwidthScenario, type BinaryStreamMock, type BinaryWriterMock, type BrowserSetupOptions, type CameraInput, type Connection, type ConsistencyReport, type ControlledTimer, type DeltaSnapshot, type DrawCall, FakeAudioContext, FakeAudioNode, FakeAudioParam, FakeBiquadFilterNode, FakeBufferSource, FakeDestination, FakeGainNode, FakePannerNode, type GameState, type GameStateCapture, type Handshake, HandshakeStage, type HudState, InputInjector, type KeyModifiers, type MasterServer, type Message, type MessageReaderMock, type MessageWriterMock, type MockAI, FakeBufferSource as MockAudioBufferSourceNode, type MockChatMessage, type MockCollisionEntityIndex, type MockDamageInfo, type MockEngine, type MockGame, type MockMonsterAI, MockNetDriver, type MockNetDriverState, MockNetworkTransport, type MockNotification, MockPointerLock, type MockRAF, type MockRConClient, type MockRenderingContext, type MockServer, type MockServerConsole, type MockServerContext, type MockServerMessage, MockTransport, type MockUDPSocket, MockWebGL2RenderingContext, type MultiplayerScenario, type NetworkAddress, type NetworkCondition, type NetworkSimulator, type NodeSetupOptions, type PacketMock, type PhysicsScenario, type PlaywrightOptions, type PlaywrightTestClient, type RateLimiter, type RecordedPacket, type RefDef, type ServerInfo, type ServerListFilter, type Snapshot, type StorageScenario, type SurfaceMock, type TestContext, type TraceMock, type Transform, type UserInfo, type ViewScenario, type ViewState, type VisualDiff, type VisualScenario, captureAudioEvents, captureCanvasDrawCalls, captureGameScreenshot, captureGameState, compareScreenshot, compareScreenshots, createBandwidthTestScenario, createBinaryStreamMock, createBinaryWriterMock, createBounds, createCombatTestContext, createConfigStringArrayMock, createConfigStringMock, createControlledTimer, createCustomNetworkCondition, createCvarMock, createDeltaSnapshot, createEntity, createEntityFactory, createEntityStateFactory, createGameStateSnapshotFactory, createInputInjector, createItemEntityFactory, createMessageReaderMock, createMessageWriterMock, createMockAI, createMockAmmoItem, createMockArmorItem, createMockAudioBuffer, createMockAudioContext, createMockBspPipeline, createMockBufferSource, createMockCamera, createMockCanvas, createMockCanvasContext2D, createMockChatMessage, createMockCollisionEntityIndex, createMockConnection, createMockDamageIndicator, createMockDamageInfo, createMockDeltaFrame, createMockEngine, createMockEntityState, createMockFogData, createMockFrameRenderer, createMockGPUAdapter,
|
|
1893
|
+
export { type AudioEvent, type BandwidthScenario, type BinaryStreamMock, type BinaryWriterMock, type BrowserSetupOptions, type CameraInput, type ClientInfo, type ClientState, type ClientStateProvider, type ComputeTestSetup, type Connection, type ConnectionState, type ConsistencyReport, type ControlledTimer, type CvarRegistry, type DeltaSnapshot, type DownloadManager, type DrawCall, FakeAudioContext, FakeAudioNode, FakeAudioParam, FakeBiquadFilterNode, FakeBufferSource, FakeDestination, FakeGainNode, FakePannerNode, type Frame, type GameState, type GameStateCapture, type GeometryBuffers, type Handshake, HandshakeStage, type HeadlessWebGPUSetup, type HudState, InputInjector, type KeyModifiers, type MasterServer, type Message, type MessageReaderMock, type MessageWriterMock, type MockAI, FakeBufferSource as MockAudioBufferSourceNode, type MockChatMessage, MockClientConfigStrings, type MockCollisionEntityIndex, type MockCommand, type MockConsole, type MockDamageInfo, type MockEngine, type MockGame, type MockMonsterAI, MockNetDriver, type MockNetDriverState, MockNetworkTransport, type MockNotification, MockPointerLock, type MockRAF, type MockRConClient, type MockRenderingContext, type MockServer, type MockServerConsole, type MockServerContext, type MockServerMessage, MockTransport, type MockUDPSocket, MockWebGL2RenderingContext, type MockWebGPUContext, type MultiplayerScenario, type NetworkAddress, type NetworkCondition, type NetworkSimulator, type NodeSetupOptions, type PacketMock, type PhysicsScenario, type PlaywrightOptions, type PlaywrightTestClient, type PrecacheList, type PredictionScenario, type RateLimiter, type RecordedPacket, type RefDef, type RenderTestSetup, type ServerInfo, type ServerListFilter, type SmoothingAnalysis, type Snapshot, type StorageScenario, type SurfaceMock, type TestContext, type TraceMock, type Transform, type UserInfo, type ViewScenario, type ViewState, type VisualDiff, type VisualScenario, type WebGPUContextState, captureAudioEvents, captureCanvasDrawCalls, captureGameScreenshot, captureGameState, compareScreenshot, compareScreenshots, createBandwidthTestScenario, createBinaryStreamMock, createBinaryWriterMock, createBounds, createCombatTestContext, createComputeTestSetup, createConfigStringArrayMock, createConfigStringMock, createControlledTimer, createCustomNetworkCondition, createCvarMock, createDeltaSnapshot, createEntity, createEntityFactory, createEntityStateFactory, createGameStateSnapshotFactory, createHeadlessTestContext, createInputInjector, createInterpolationTestData, createItemEntityFactory, createMessageReaderMock, createMessageWriterMock, createMockAI, createMockAmmoItem, createMockArmorItem, createMockAssetManager, createMockAudioBuffer, createMockAudioContext, createMockBspMap, createMockBspPipeline, createMockBufferSource, createMockCamera, createMockCanvas, createMockCanvasContext2D, createMockChatMessage, createMockClientInfo, createMockClientState, createMockCollisionEntityIndex, createMockCommand, createMockCommandEncoder, createMockComputePassEncoder, createMockComputePipeline, createMockConnection, createMockConnectionState, createMockConsole, createMockCvarRegistry, createMockDamageIndicator, createMockDamageInfo, createMockDeltaFrame, createMockDownloadManager, createMockEngine, createMockEntityState, createMockFogData, createMockFrame, createMockFrameRenderer, createMockGPUAdapter, createMockGPUBuffer, createMockGPUDevice, createMockGPUTexture, createMockGame, createMockGameExports, createMockGameState, createMockHandshake, createMockHealthItem, createMockHudState, createMockImage, createMockImageData, createMockIndexedDB, createMockInventory, createMockItem, createMockKeyboardEvent, createMockLocalStorage, createMockMasterServer, createMockMd2Model, createMockMd2Pipeline, createMockMd3Model, createMockMd3Pipeline, createMockMonsterAI, createMockMonsterMove, createMockMouseEvent, createMockNetDriver, createMockNetworkAddress, createMockNotification, createMockPannerNode, createMockPerformance, createMockPointerLock, createMockPowerupItem, createMockPrecacheList, createMockQueue, createMockRAF, createMockRConClient, createMockRateLimiter, createMockRefDef, createMockRenderPassEncoder, createMockRenderPipeline, createMockRenderer, createMockRenderingContext, createMockSampler, createMockScoreboard, createMockServer, createMockServerClient, createMockServerConsole, createMockServerInfo, createMockServerMessage, createMockServerState, createMockServerStatic, createMockSessionStorage, createMockShaderModule, createMockSkyboxPipeline, createMockSnapshot, createMockSpritePipeline, createMockTexture, createMockTextureView, createMockTransport, createMockUDPSocket, createMockUserInfo, createMockViewState, createMockWeapon, createMockWeaponItem, createMockWebGL2Context, createMockWebGPUContext, createMockWheelEvent, createMonsterEntityFactory, createMultiplayerTestScenario, createNetChanMock, createPacketMock, createPhysicsTestContext, createPhysicsTestScenario, createPlayerEntityFactory, createPlayerStateFactory, createPlaywrightTestClient, createPredictionTestScenario, createProjectileEntityFactory, createRenderTestSetup, createServerSnapshot, createSpawnTestContext, createStorageTestScenario, createSurfaceMock, createTestContext, createTraceMock, createTransform, createTriggerEntityFactory, createVector3, createViewTestScenario, createVisualTestScenario, initHeadlessWebGPU, makeAxisBrush, makeBrushFromMinsMaxs, makeBspModel, makeLeaf, makeLeafModel, makeNode, makePlane, measureSnapshotSize, mockMonsterAttacks, randomVector3, renderAndCapture, runComputeAndReadback, serializeUserInfo, setupBrowserEnvironment, setupMockAudioContext, setupNodeEnvironment, setupWebGPUMocks, simulateBandwidthLimit, simulateCameraMovement, simulateClientPrediction, simulateDownload, simulateFrames, simulateGravity, simulateHandshake, simulateJump, simulateMovement, simulateNetworkCondition, simulateNetworkDelay, simulatePacketLoss, simulatePlayerInput, simulatePlayerJoin, simulatePlayerLeave, simulateServerCommand, simulateServerRegistration, simulateServerTick, simulateSnapshotDelivery, takeScreenshot, teardownBrowserEnvironment, teardownMockAudioContext, teardownNodeEnvironment, testComputeShader, testPipelineRendering, throttleBandwidth, verifySmoothing, verifySnapshotConsistency, waitForGameReady };
|
|
@@ -4,10 +4,10 @@ import { Vec3, CollisionPlane, CollisionBrush, CollisionNode, CollisionLeaf, Col
|
|
|
4
4
|
export { intersects, ladderTrace, stairTrace } from '@quake2ts/shared';
|
|
5
5
|
import { Vec3 as Vec3$1, Bounds3 } from '@quake2ts/shared/math/vec3';
|
|
6
6
|
import { TraceResult, CollisionPlane as CollisionPlane$1 } from '@quake2ts/shared/bsp/collision';
|
|
7
|
-
import { ConfigStringEntry, Cvar, AudioNodeLike, AudioBufferSourceNodeLike, AudioBufferLike, AudioParamLike, GainNodeLike, DynamicsCompressorNodeLike, PannerNodeLike, BiquadFilterNodeLike, AudioDestinationNodeLike, AudioContextLike, Renderer, FrameRenderer, BspSurfacePipeline, Md2Pipeline, Md3Pipeline, SpriteRenderer, SkyboxPipeline, Camera, FrameRenderStats, EntityState as EntityState$1, ProtocolPlayerState, FrameData, DamageIndicator, FogData } from '@quake2ts/engine';
|
|
7
|
+
import { ConfigStringEntry, Cvar, AudioNodeLike, AudioBufferSourceNodeLike, AudioBufferLike, AudioParamLike, GainNodeLike, DynamicsCompressorNodeLike, PannerNodeLike, BiquadFilterNodeLike, AudioDestinationNodeLike, AudioContextLike, Renderer, FrameRenderer, BspSurfacePipeline, Md2Pipeline, Md3Pipeline, SpriteRenderer, SkyboxPipeline, AssetManager, PreparedTexture, Md2Model, Md3Model, BspMap, Camera, FrameRenderStats, EntityState as EntityState$1, ProtocolPlayerState, FrameData, DamageIndicator, FogData } from '@quake2ts/engine';
|
|
8
8
|
export { ConfigStringEntry, Cvar } from '@quake2ts/engine';
|
|
9
9
|
import { GameStateSnapshot, Entity, ScriptHookRegistry, SpawnContext, EntitySystem, SpawnRegistry, MonsterMove, DamageMod, PlayerInventory, BaseItem, WeaponId, WeaponItem, HealthItem, ArmorItem, AmmoItemId, PowerupItem, GameExports, PlayerClient } from '@quake2ts/game';
|
|
10
|
-
import { NetworkTransport, Server, ServerStatic, Client, ClientState, ClientFrame } from '@quake2ts/server';
|
|
10
|
+
import { NetworkTransport, Server, ServerStatic, Client, ClientState as ClientState$1, ClientFrame } from '@quake2ts/server';
|
|
11
11
|
import { ImageData, Canvas } from '@napi-rs/canvas';
|
|
12
12
|
import { vec3 } from 'gl-matrix';
|
|
13
13
|
|
|
@@ -703,7 +703,7 @@ declare function createMockServer(overrides?: Partial<MockServer>): MockServer;
|
|
|
703
703
|
* Interface representing connection state for testing.
|
|
704
704
|
*/
|
|
705
705
|
interface Connection {
|
|
706
|
-
state: ClientState;
|
|
706
|
+
state: ClientState$1;
|
|
707
707
|
address: string;
|
|
708
708
|
challenge: number;
|
|
709
709
|
userInfo: UserInfo;
|
|
@@ -756,7 +756,7 @@ declare function createMockUserInfo(overrides?: Partial<UserInfo>): UserInfo;
|
|
|
756
756
|
* @param state The client state (default: Connected).
|
|
757
757
|
* @param overrides Optional overrides for the client.
|
|
758
758
|
*/
|
|
759
|
-
declare function createMockConnection(state?: ClientState, overrides?: Partial<Client>): Client;
|
|
759
|
+
declare function createMockConnection(state?: ClientState$1, overrides?: Partial<Client>): Client;
|
|
760
760
|
/**
|
|
761
761
|
* Creates a mock handshake object.
|
|
762
762
|
* @param stage The stage of the handshake (default: None).
|
|
@@ -1032,16 +1032,59 @@ declare function createMockImageData(width: number, height: number, fillColor?:
|
|
|
1032
1032
|
*/
|
|
1033
1033
|
declare function createMockImage(width?: number, height?: number, src?: string): HTMLImageElement;
|
|
1034
1034
|
|
|
1035
|
-
|
|
1036
|
-
|
|
1037
|
-
|
|
1035
|
+
interface HeadlessWebGPUSetup {
|
|
1036
|
+
adapter: GPUAdapter;
|
|
1037
|
+
device: GPUDevice;
|
|
1038
|
+
cleanup: () => Promise<void>;
|
|
1039
|
+
}
|
|
1040
|
+
interface WebGPUContextState {
|
|
1041
|
+
adapter: GPUAdapter;
|
|
1042
|
+
device: GPUDevice;
|
|
1043
|
+
queue: GPUQueue;
|
|
1044
|
+
}
|
|
1045
|
+
/**
|
|
1046
|
+
* Initialize WebGPU in a headless Node.js environment using @webgpu/dawn (via webgpu package)
|
|
1047
|
+
*/
|
|
1048
|
+
declare function initHeadlessWebGPU(options?: {
|
|
1049
|
+
powerPreference?: 'low-power' | 'high-performance';
|
|
1050
|
+
requiredFeatures?: GPUFeatureName[];
|
|
1051
|
+
}): Promise<HeadlessWebGPUSetup>;
|
|
1052
|
+
/**
|
|
1053
|
+
* Creates a complete context state for testing
|
|
1054
|
+
*/
|
|
1055
|
+
declare function createHeadlessTestContext(): Promise<WebGPUContextState>;
|
|
1056
|
+
|
|
1057
|
+
interface MockWebGPUContext {
|
|
1058
|
+
adapter: GPUAdapter;
|
|
1059
|
+
device: GPUDevice;
|
|
1060
|
+
queue: GPUQueue;
|
|
1061
|
+
}
|
|
1062
|
+
/**
|
|
1063
|
+
* Patches globalThis with WebGPU globals (GPUBufferUsage, etc.)
|
|
1064
|
+
* and optionally patches navigator.gpu.
|
|
1065
|
+
*/
|
|
1038
1066
|
declare function setupWebGPUMocks(): {
|
|
1039
1067
|
mockGpu: {
|
|
1040
1068
|
requestAdapter: vitest.Mock<any, any>;
|
|
1041
1069
|
getPreferredCanvasFormat: vitest.Mock<any, any>;
|
|
1042
1070
|
};
|
|
1043
1071
|
mockAdapter: GPUAdapter;
|
|
1072
|
+
mockDevice: GPUDevice;
|
|
1044
1073
|
};
|
|
1074
|
+
declare function createMockGPUAdapter(options?: Partial<GPUAdapter>): GPUAdapter;
|
|
1075
|
+
declare function createMockGPUDevice(features?: Set<GPUFeatureName>): GPUDevice;
|
|
1076
|
+
declare function createMockQueue(): GPUQueue;
|
|
1077
|
+
declare function createMockGPUBuffer(descriptor: GPUBufferDescriptor): GPUBuffer;
|
|
1078
|
+
declare function createMockGPUTexture(descriptor: GPUTextureDescriptor): GPUTexture;
|
|
1079
|
+
declare function createMockTextureView(): GPUTextureView;
|
|
1080
|
+
declare function createMockSampler(): GPUSampler;
|
|
1081
|
+
declare function createMockShaderModule(descriptor: GPUShaderModuleDescriptor): GPUShaderModule;
|
|
1082
|
+
declare function createMockComputePipeline(): GPUComputePipeline;
|
|
1083
|
+
declare function createMockRenderPipeline(): GPURenderPipeline;
|
|
1084
|
+
declare function createMockCommandEncoder(): GPUCommandEncoder;
|
|
1085
|
+
declare function createMockRenderPassEncoder(): GPURenderPassEncoder;
|
|
1086
|
+
declare function createMockComputePassEncoder(): GPUComputePassEncoder;
|
|
1087
|
+
declare function createMockWebGPUContext(): MockWebGPUContext;
|
|
1045
1088
|
|
|
1046
1089
|
/**
|
|
1047
1090
|
* Interface for the mock RequestAnimationFrame implementation.
|
|
@@ -1333,6 +1376,12 @@ declare function createMockMd3Pipeline(overrides?: Partial<Md3Pipeline>): Md3Pip
|
|
|
1333
1376
|
declare function createMockSpritePipeline(overrides?: Partial<SpriteRenderer>): SpriteRenderer;
|
|
1334
1377
|
declare function createMockSkyboxPipeline(overrides?: Partial<SkyboxPipeline>): SkyboxPipeline;
|
|
1335
1378
|
|
|
1379
|
+
declare function createMockAssetManager(overrides?: Partial<AssetManager>): AssetManager;
|
|
1380
|
+
declare function createMockTexture(width?: number, height?: number, data?: Uint8Array): PreparedTexture;
|
|
1381
|
+
declare function createMockMd2Model(overrides?: Partial<Md2Model>): Md2Model;
|
|
1382
|
+
declare function createMockMd3Model(overrides?: Partial<Md3Model>): Md3Model;
|
|
1383
|
+
declare function createMockBspMap(overrides?: Partial<BspMap>): BspMap;
|
|
1384
|
+
|
|
1336
1385
|
interface MockPipeline {
|
|
1337
1386
|
render: ReturnType<typeof vi.fn>;
|
|
1338
1387
|
init: ReturnType<typeof vi.fn>;
|
|
@@ -1412,6 +1461,62 @@ interface AudioEvent {
|
|
|
1412
1461
|
*/
|
|
1413
1462
|
declare function captureAudioEvents(context: AudioContext): AudioEvent[];
|
|
1414
1463
|
|
|
1464
|
+
/**
|
|
1465
|
+
* Interface for render test setup
|
|
1466
|
+
*/
|
|
1467
|
+
interface RenderTestSetup {
|
|
1468
|
+
context: WebGPUContextState;
|
|
1469
|
+
renderTarget: GPUTexture;
|
|
1470
|
+
renderTargetView: GPUTextureView;
|
|
1471
|
+
commandEncoder: GPUCommandEncoder;
|
|
1472
|
+
cleanup: () => Promise<void>;
|
|
1473
|
+
width: number;
|
|
1474
|
+
height: number;
|
|
1475
|
+
}
|
|
1476
|
+
/**
|
|
1477
|
+
* Creates a setup for testing rendering pipelines.
|
|
1478
|
+
* Initializes a headless WebGPU context, a render target texture, and a command encoder.
|
|
1479
|
+
*/
|
|
1480
|
+
declare function createRenderTestSetup(width?: number, height?: number): Promise<RenderTestSetup>;
|
|
1481
|
+
/**
|
|
1482
|
+
* Helper to render and capture the output as pixel data.
|
|
1483
|
+
* It manages the render pass, submission, and buffer readback.
|
|
1484
|
+
*/
|
|
1485
|
+
declare function renderAndCapture(setup: RenderTestSetup, renderFn: (pass: GPURenderPassEncoder) => void): Promise<Uint8ClampedArray>;
|
|
1486
|
+
/**
|
|
1487
|
+
* Interface for compute test setup
|
|
1488
|
+
*/
|
|
1489
|
+
interface ComputeTestSetup {
|
|
1490
|
+
context: WebGPUContextState;
|
|
1491
|
+
outputBuffer: GPUBuffer;
|
|
1492
|
+
commandEncoder: GPUCommandEncoder;
|
|
1493
|
+
cleanup: () => Promise<void>;
|
|
1494
|
+
outputSize: number;
|
|
1495
|
+
}
|
|
1496
|
+
/**
|
|
1497
|
+
* Creates a setup for testing compute shaders.
|
|
1498
|
+
*/
|
|
1499
|
+
declare function createComputeTestSetup(outputSize: number): Promise<ComputeTestSetup>;
|
|
1500
|
+
/**
|
|
1501
|
+
* Helper to run a compute pass and read back the output buffer.
|
|
1502
|
+
*/
|
|
1503
|
+
declare function runComputeAndReadback(setup: ComputeTestSetup, computeFn: (pass: GPUComputePassEncoder) => void): Promise<ArrayBuffer>;
|
|
1504
|
+
|
|
1505
|
+
interface GeometryBuffers {
|
|
1506
|
+
vertexBuffer: GPUBuffer;
|
|
1507
|
+
indexBuffer?: GPUBuffer;
|
|
1508
|
+
vertexCount: number;
|
|
1509
|
+
indexCount?: number;
|
|
1510
|
+
}
|
|
1511
|
+
/**
|
|
1512
|
+
* Template for testing a rendering pipeline
|
|
1513
|
+
*/
|
|
1514
|
+
declare function testPipelineRendering(name: string, createPipeline: (device: GPUDevice) => GPURenderPipeline, setupGeometry: (device: GPUDevice) => GeometryBuffers, expectedOutput?: Uint8ClampedArray): Promise<void>;
|
|
1515
|
+
/**
|
|
1516
|
+
* Template for testing compute shaders
|
|
1517
|
+
*/
|
|
1518
|
+
declare function testComputeShader(name: string, createComputePipeline: (device: GPUDevice) => GPUComputePipeline, inputData: Float32Array, expectedOutput?: Float32Array): Promise<void>;
|
|
1519
|
+
|
|
1415
1520
|
/**
|
|
1416
1521
|
* Client Input System Mocks
|
|
1417
1522
|
*
|
|
@@ -1595,6 +1700,107 @@ declare function createMockEntityState(number: number, modelIndex?: number, orig
|
|
|
1595
1700
|
declare function createMockDamageIndicator(damage: number, dir?: Vec3, health?: boolean, armor?: boolean, power?: boolean): DamageIndicator;
|
|
1596
1701
|
declare function createMockFogData(overrides?: Partial<FogData>): FogData;
|
|
1597
1702
|
|
|
1703
|
+
interface DownloadManager {
|
|
1704
|
+
download(url: string): Promise<ArrayBuffer>;
|
|
1705
|
+
cancel(url: string): void;
|
|
1706
|
+
getProgress(url: string): number;
|
|
1707
|
+
}
|
|
1708
|
+
declare function createMockDownloadManager(overrides?: Partial<DownloadManager>): DownloadManager;
|
|
1709
|
+
interface PrecacheList {
|
|
1710
|
+
models: string[];
|
|
1711
|
+
sounds: string[];
|
|
1712
|
+
images: string[];
|
|
1713
|
+
}
|
|
1714
|
+
declare function createMockPrecacheList(models?: string[], sounds?: string[], images?: string[]): PrecacheList;
|
|
1715
|
+
declare function simulateDownload(url: string, progressCallback?: (percent: number) => void): Promise<ArrayBuffer>;
|
|
1716
|
+
|
|
1717
|
+
declare class MockClientConfigStrings {
|
|
1718
|
+
private readonly strings;
|
|
1719
|
+
private readonly models;
|
|
1720
|
+
private readonly sounds;
|
|
1721
|
+
private readonly images;
|
|
1722
|
+
constructor();
|
|
1723
|
+
set(index: number, value: string): void;
|
|
1724
|
+
get(index: number): string | undefined;
|
|
1725
|
+
getModelName(index: number): string | undefined;
|
|
1726
|
+
getSoundName(index: number): string | undefined;
|
|
1727
|
+
getImageName(index: number): string | undefined;
|
|
1728
|
+
getPlayerName(playernum: number): string | undefined;
|
|
1729
|
+
clear(): void;
|
|
1730
|
+
}
|
|
1731
|
+
interface ClientStateProvider {
|
|
1732
|
+
tickRate: number;
|
|
1733
|
+
frameTimeMs: number;
|
|
1734
|
+
serverFrame: number;
|
|
1735
|
+
serverProtocol: number;
|
|
1736
|
+
configStrings: MockClientConfigStrings;
|
|
1737
|
+
getClientName(num: number): string;
|
|
1738
|
+
getKeyBinding(key: string): string;
|
|
1739
|
+
inAutoDemo: boolean;
|
|
1740
|
+
}
|
|
1741
|
+
interface ClientInfo {
|
|
1742
|
+
name: string;
|
|
1743
|
+
skin: string;
|
|
1744
|
+
model: string;
|
|
1745
|
+
icon: string;
|
|
1746
|
+
}
|
|
1747
|
+
interface ClientState extends ClientStateProvider {
|
|
1748
|
+
playerNum: number;
|
|
1749
|
+
serverTime: number;
|
|
1750
|
+
parseEntities: number;
|
|
1751
|
+
}
|
|
1752
|
+
interface Frame {
|
|
1753
|
+
serverFrame: number;
|
|
1754
|
+
deltaFrame: number;
|
|
1755
|
+
valid: boolean;
|
|
1756
|
+
entities: EntityState[];
|
|
1757
|
+
}
|
|
1758
|
+
interface ConnectionState {
|
|
1759
|
+
state: 'disconnected' | 'connecting' | 'connected' | 'active';
|
|
1760
|
+
}
|
|
1761
|
+
declare const createMockClientState: (overrides?: Partial<ClientState>) => ClientState;
|
|
1762
|
+
declare const createMockFrame: (overrides?: Partial<Frame>) => Frame;
|
|
1763
|
+
declare const createMockClientInfo: (overrides?: Partial<ClientInfo>) => ClientInfo;
|
|
1764
|
+
declare const createMockConnectionState: (state?: ConnectionState["state"]) => ConnectionState;
|
|
1765
|
+
|
|
1766
|
+
interface MockConsole {
|
|
1767
|
+
print: (text: string) => void;
|
|
1768
|
+
error: (text: string) => void;
|
|
1769
|
+
execute: (text: string) => void;
|
|
1770
|
+
addCommand: (name: string, handler: (args: string[]) => void) => void;
|
|
1771
|
+
getCvar: (name: string) => string | undefined;
|
|
1772
|
+
setCvar: (name: string, value: string) => void;
|
|
1773
|
+
getHistory: () => string[];
|
|
1774
|
+
clearHistory: () => void;
|
|
1775
|
+
getErrors: () => string[];
|
|
1776
|
+
}
|
|
1777
|
+
interface MockCommand {
|
|
1778
|
+
name: string;
|
|
1779
|
+
handler: (args: string[]) => void;
|
|
1780
|
+
}
|
|
1781
|
+
interface CvarRegistry {
|
|
1782
|
+
[key: string]: string;
|
|
1783
|
+
}
|
|
1784
|
+
declare function createMockConsole(overrides?: Partial<MockConsole>): MockConsole;
|
|
1785
|
+
declare function createMockCommand(name: string, handler: (args: string[]) => void): MockCommand;
|
|
1786
|
+
declare function createMockCvarRegistry(initialCvars?: Record<string, string>): CvarRegistry;
|
|
1787
|
+
|
|
1788
|
+
interface PredictionScenario {
|
|
1789
|
+
clientState: ClientState;
|
|
1790
|
+
snapshots: EntityState[][];
|
|
1791
|
+
lagMs: number;
|
|
1792
|
+
}
|
|
1793
|
+
interface SmoothingAnalysis {
|
|
1794
|
+
smooth: boolean;
|
|
1795
|
+
maxError: number;
|
|
1796
|
+
averageError: number;
|
|
1797
|
+
jumps: number[];
|
|
1798
|
+
}
|
|
1799
|
+
declare const createPredictionTestScenario: (lagMs?: number) => PredictionScenario;
|
|
1800
|
+
declare const simulateClientPrediction: (state: ClientState, input: UserCommand, deltaTime: number) => ClientState;
|
|
1801
|
+
declare const createInterpolationTestData: (startState: EntityState, endState: EntityState, steps?: number) => EntityState[];
|
|
1802
|
+
declare const verifySmoothing: (states: EntityState[]) => SmoothingAnalysis;
|
|
1803
|
+
|
|
1598
1804
|
interface PlaywrightOptions {
|
|
1599
1805
|
headless?: boolean;
|
|
1600
1806
|
viewport?: {
|
|
@@ -1684,4 +1890,4 @@ interface VisualScenario {
|
|
|
1684
1890
|
*/
|
|
1685
1891
|
declare function createVisualTestScenario(sceneName: string): VisualScenario;
|
|
1686
1892
|
|
|
1687
|
-
export { type AudioEvent, type BandwidthScenario, type BinaryStreamMock, type BinaryWriterMock, type BrowserSetupOptions, type CameraInput, type Connection, type ConsistencyReport, type ControlledTimer, type DeltaSnapshot, type DrawCall, FakeAudioContext, FakeAudioNode, FakeAudioParam, FakeBiquadFilterNode, FakeBufferSource, FakeDestination, FakeGainNode, FakePannerNode, type GameState, type GameStateCapture, type Handshake, HandshakeStage, type HudState, InputInjector, type KeyModifiers, type MasterServer, type Message, type MessageReaderMock, type MessageWriterMock, type MockAI, FakeBufferSource as MockAudioBufferSourceNode, type MockChatMessage, type MockCollisionEntityIndex, type MockDamageInfo, type MockEngine, type MockGame, type MockMonsterAI, MockNetDriver, type MockNetDriverState, MockNetworkTransport, type MockNotification, MockPointerLock, type MockRAF, type MockRConClient, type MockRenderingContext, type MockServer, type MockServerConsole, type MockServerContext, type MockServerMessage, MockTransport, type MockUDPSocket, MockWebGL2RenderingContext, type MultiplayerScenario, type NetworkAddress, type NetworkCondition, type NetworkSimulator, type NodeSetupOptions, type PacketMock, type PhysicsScenario, type PlaywrightOptions, type PlaywrightTestClient, type RateLimiter, type RecordedPacket, type RefDef, type ServerInfo, type ServerListFilter, type Snapshot, type StorageScenario, type SurfaceMock, type TestContext, type TraceMock, type Transform, type UserInfo, type ViewScenario, type ViewState, type VisualDiff, type VisualScenario, captureAudioEvents, captureCanvasDrawCalls, captureGameScreenshot, captureGameState, compareScreenshot, compareScreenshots, createBandwidthTestScenario, createBinaryStreamMock, createBinaryWriterMock, createBounds, createCombatTestContext, createConfigStringArrayMock, createConfigStringMock, createControlledTimer, createCustomNetworkCondition, createCvarMock, createDeltaSnapshot, createEntity, createEntityFactory, createEntityStateFactory, createGameStateSnapshotFactory, createInputInjector, createItemEntityFactory, createMessageReaderMock, createMessageWriterMock, createMockAI, createMockAmmoItem, createMockArmorItem, createMockAudioBuffer, createMockAudioContext, createMockBspPipeline, createMockBufferSource, createMockCamera, createMockCanvas, createMockCanvasContext2D, createMockChatMessage, createMockCollisionEntityIndex, createMockConnection, createMockDamageIndicator, createMockDamageInfo, createMockDeltaFrame, createMockEngine, createMockEntityState, createMockFogData, createMockFrameRenderer, createMockGPUAdapter,
|
|
1893
|
+
export { type AudioEvent, type BandwidthScenario, type BinaryStreamMock, type BinaryWriterMock, type BrowserSetupOptions, type CameraInput, type ClientInfo, type ClientState, type ClientStateProvider, type ComputeTestSetup, type Connection, type ConnectionState, type ConsistencyReport, type ControlledTimer, type CvarRegistry, type DeltaSnapshot, type DownloadManager, type DrawCall, FakeAudioContext, FakeAudioNode, FakeAudioParam, FakeBiquadFilterNode, FakeBufferSource, FakeDestination, FakeGainNode, FakePannerNode, type Frame, type GameState, type GameStateCapture, type GeometryBuffers, type Handshake, HandshakeStage, type HeadlessWebGPUSetup, type HudState, InputInjector, type KeyModifiers, type MasterServer, type Message, type MessageReaderMock, type MessageWriterMock, type MockAI, FakeBufferSource as MockAudioBufferSourceNode, type MockChatMessage, MockClientConfigStrings, type MockCollisionEntityIndex, type MockCommand, type MockConsole, type MockDamageInfo, type MockEngine, type MockGame, type MockMonsterAI, MockNetDriver, type MockNetDriverState, MockNetworkTransport, type MockNotification, MockPointerLock, type MockRAF, type MockRConClient, type MockRenderingContext, type MockServer, type MockServerConsole, type MockServerContext, type MockServerMessage, MockTransport, type MockUDPSocket, MockWebGL2RenderingContext, type MockWebGPUContext, type MultiplayerScenario, type NetworkAddress, type NetworkCondition, type NetworkSimulator, type NodeSetupOptions, type PacketMock, type PhysicsScenario, type PlaywrightOptions, type PlaywrightTestClient, type PrecacheList, type PredictionScenario, type RateLimiter, type RecordedPacket, type RefDef, type RenderTestSetup, type ServerInfo, type ServerListFilter, type SmoothingAnalysis, type Snapshot, type StorageScenario, type SurfaceMock, type TestContext, type TraceMock, type Transform, type UserInfo, type ViewScenario, type ViewState, type VisualDiff, type VisualScenario, type WebGPUContextState, captureAudioEvents, captureCanvasDrawCalls, captureGameScreenshot, captureGameState, compareScreenshot, compareScreenshots, createBandwidthTestScenario, createBinaryStreamMock, createBinaryWriterMock, createBounds, createCombatTestContext, createComputeTestSetup, createConfigStringArrayMock, createConfigStringMock, createControlledTimer, createCustomNetworkCondition, createCvarMock, createDeltaSnapshot, createEntity, createEntityFactory, createEntityStateFactory, createGameStateSnapshotFactory, createHeadlessTestContext, createInputInjector, createInterpolationTestData, createItemEntityFactory, createMessageReaderMock, createMessageWriterMock, createMockAI, createMockAmmoItem, createMockArmorItem, createMockAssetManager, createMockAudioBuffer, createMockAudioContext, createMockBspMap, createMockBspPipeline, createMockBufferSource, createMockCamera, createMockCanvas, createMockCanvasContext2D, createMockChatMessage, createMockClientInfo, createMockClientState, createMockCollisionEntityIndex, createMockCommand, createMockCommandEncoder, createMockComputePassEncoder, createMockComputePipeline, createMockConnection, createMockConnectionState, createMockConsole, createMockCvarRegistry, createMockDamageIndicator, createMockDamageInfo, createMockDeltaFrame, createMockDownloadManager, createMockEngine, createMockEntityState, createMockFogData, createMockFrame, createMockFrameRenderer, createMockGPUAdapter, createMockGPUBuffer, createMockGPUDevice, createMockGPUTexture, createMockGame, createMockGameExports, createMockGameState, createMockHandshake, createMockHealthItem, createMockHudState, createMockImage, createMockImageData, createMockIndexedDB, createMockInventory, createMockItem, createMockKeyboardEvent, createMockLocalStorage, createMockMasterServer, createMockMd2Model, createMockMd2Pipeline, createMockMd3Model, createMockMd3Pipeline, createMockMonsterAI, createMockMonsterMove, createMockMouseEvent, createMockNetDriver, createMockNetworkAddress, createMockNotification, createMockPannerNode, createMockPerformance, createMockPointerLock, createMockPowerupItem, createMockPrecacheList, createMockQueue, createMockRAF, createMockRConClient, createMockRateLimiter, createMockRefDef, createMockRenderPassEncoder, createMockRenderPipeline, createMockRenderer, createMockRenderingContext, createMockSampler, createMockScoreboard, createMockServer, createMockServerClient, createMockServerConsole, createMockServerInfo, createMockServerMessage, createMockServerState, createMockServerStatic, createMockSessionStorage, createMockShaderModule, createMockSkyboxPipeline, createMockSnapshot, createMockSpritePipeline, createMockTexture, createMockTextureView, createMockTransport, createMockUDPSocket, createMockUserInfo, createMockViewState, createMockWeapon, createMockWeaponItem, createMockWebGL2Context, createMockWebGPUContext, createMockWheelEvent, createMonsterEntityFactory, createMultiplayerTestScenario, createNetChanMock, createPacketMock, createPhysicsTestContext, createPhysicsTestScenario, createPlayerEntityFactory, createPlayerStateFactory, createPlaywrightTestClient, createPredictionTestScenario, createProjectileEntityFactory, createRenderTestSetup, createServerSnapshot, createSpawnTestContext, createStorageTestScenario, createSurfaceMock, createTestContext, createTraceMock, createTransform, createTriggerEntityFactory, createVector3, createViewTestScenario, createVisualTestScenario, initHeadlessWebGPU, makeAxisBrush, makeBrushFromMinsMaxs, makeBspModel, makeLeaf, makeLeafModel, makeNode, makePlane, measureSnapshotSize, mockMonsterAttacks, randomVector3, renderAndCapture, runComputeAndReadback, serializeUserInfo, setupBrowserEnvironment, setupMockAudioContext, setupNodeEnvironment, setupWebGPUMocks, simulateBandwidthLimit, simulateCameraMovement, simulateClientPrediction, simulateDownload, simulateFrames, simulateGravity, simulateHandshake, simulateJump, simulateMovement, simulateNetworkCondition, simulateNetworkDelay, simulatePacketLoss, simulatePlayerInput, simulatePlayerJoin, simulatePlayerLeave, simulateServerCommand, simulateServerRegistration, simulateServerTick, simulateSnapshotDelivery, takeScreenshot, teardownBrowserEnvironment, teardownMockAudioContext, teardownNodeEnvironment, testComputeShader, testPipelineRendering, throttleBandwidth, verifySmoothing, verifySnapshotConsistency, waitForGameReady };
|