quake2ts 0.0.574 → 0.0.577
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 +5 -4
- package/packages/test-utils/dist/index.cjs +672 -87
- package/packages/test-utils/dist/index.cjs.map +1 -1
- package/packages/test-utils/dist/index.d.cts +139 -17
- package/packages/test-utils/dist/index.d.ts +139 -17
- package/packages/test-utils/dist/index.js +667 -87
- package/packages/test-utils/dist/index.js.map +1 -1
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
import * as vitest from 'vitest';
|
|
2
2
|
import { Mock } from 'vitest';
|
|
3
|
-
import { Vec3, CollisionPlane, CollisionBrush, CollisionNode, CollisionLeaf, CollisionModel, PlayerState, EntityState, createRandomGenerator, NetDriver, UserCommand } from '@quake2ts/shared';
|
|
3
|
+
import { Vec3, CollisionPlane, CollisionBrush, CollisionNode, CollisionLeaf, CollisionModel, PlayerState, EntityState, createRandomGenerator, NetDriver, TraceResult, UserCommand } from '@quake2ts/shared';
|
|
4
4
|
export { intersects, ladderTrace, stairTrace } from '@quake2ts/shared';
|
|
5
5
|
import { GameStateSnapshot, Entity, ScriptHookRegistry, SpawnContext, EntitySystem, SpawnRegistry, MonsterMove, DamageMod, PlayerInventory, BaseItem, WeaponId, WeaponItem, HealthItem, ArmorItem, AmmoItemId, PowerupItem, GameExports } from '@quake2ts/game';
|
|
6
6
|
import { NetworkTransport, Server, ServerStatic, Client, ClientState, ClientFrame } from '@quake2ts/server';
|
|
7
7
|
import { ImageData } from '@napi-rs/canvas';
|
|
8
|
+
import { vec3 } from 'gl-matrix';
|
|
9
|
+
import { Camera } from '@quake2ts/engine';
|
|
8
10
|
import { LaunchOptions, BrowserContextOptions, Browser, BrowserContext, Page } from 'playwright';
|
|
9
11
|
import { Server as Server$1 } from 'http';
|
|
10
12
|
|
|
@@ -523,6 +525,21 @@ declare function createMockServerInfo(overrides?: Partial<ServerInfo>): ServerIn
|
|
|
523
525
|
*/
|
|
524
526
|
declare function simulateServerRegistration(server: any, master: MasterServer): Promise<boolean>;
|
|
525
527
|
|
|
528
|
+
/**
|
|
529
|
+
* Mock interface for CollisionEntityIndex.
|
|
530
|
+
*/
|
|
531
|
+
interface MockCollisionEntityIndex {
|
|
532
|
+
trace: (start: any, mins: any, maxs: any, end: any, passEntity: any, contentMask: number) => TraceResult;
|
|
533
|
+
link: (entity: any) => void;
|
|
534
|
+
unlink: (entity: any) => void;
|
|
535
|
+
gatherTriggerTouches: (entity: any) => any[];
|
|
536
|
+
}
|
|
537
|
+
/**
|
|
538
|
+
* Creates a mock CollisionEntityIndex.
|
|
539
|
+
* @param overrides Optional overrides for the mock methods.
|
|
540
|
+
*/
|
|
541
|
+
declare function createMockCollisionEntityIndex(overrides?: Partial<MockCollisionEntityIndex>): MockCollisionEntityIndex;
|
|
542
|
+
|
|
526
543
|
type MockServerContext = Server & {
|
|
527
544
|
clients: (Client | null)[];
|
|
528
545
|
entities?: Entity[];
|
|
@@ -787,6 +804,126 @@ interface AudioEvent {
|
|
|
787
804
|
*/
|
|
788
805
|
declare function captureAudioEvents(context: AudioContext): AudioEvent[];
|
|
789
806
|
|
|
807
|
+
/**
|
|
808
|
+
* Client Input System Mocks
|
|
809
|
+
*
|
|
810
|
+
* Provides utilities for simulating user input (keyboard, mouse, pointer lock)
|
|
811
|
+
* in a test environment (JSDOM/Browser).
|
|
812
|
+
*/
|
|
813
|
+
interface KeyModifiers {
|
|
814
|
+
ctrl?: boolean;
|
|
815
|
+
alt?: boolean;
|
|
816
|
+
shift?: boolean;
|
|
817
|
+
meta?: boolean;
|
|
818
|
+
}
|
|
819
|
+
/**
|
|
820
|
+
* Factory for creating a mock KeyboardEvent.
|
|
821
|
+
*/
|
|
822
|
+
declare function createMockKeyboardEvent(key: string, type?: 'keydown' | 'keyup', modifiers?: KeyModifiers): KeyboardEvent;
|
|
823
|
+
/**
|
|
824
|
+
* Factory for creating a mock MouseEvent with support for movementX/Y.
|
|
825
|
+
*/
|
|
826
|
+
declare function createMockMouseEvent(type: string, options?: MouseEventInit): MouseEvent;
|
|
827
|
+
/**
|
|
828
|
+
* Factory for creating a mock WheelEvent.
|
|
829
|
+
*/
|
|
830
|
+
declare function createMockWheelEvent(deltaX?: number, deltaY?: number): WheelEvent;
|
|
831
|
+
/**
|
|
832
|
+
* Class implementing a mock for the Pointer Lock API.
|
|
833
|
+
* Handles patching the document and element prototypes to simulate pointer lock.
|
|
834
|
+
*/
|
|
835
|
+
declare class MockPointerLock {
|
|
836
|
+
private _doc;
|
|
837
|
+
constructor(doc?: Document);
|
|
838
|
+
private setup;
|
|
839
|
+
get element(): Element | null;
|
|
840
|
+
get locked(): boolean;
|
|
841
|
+
request(element: HTMLElement): void;
|
|
842
|
+
exit(): void;
|
|
843
|
+
isLocked(): boolean;
|
|
844
|
+
}
|
|
845
|
+
/**
|
|
846
|
+
* Class for simulating input events.
|
|
847
|
+
*/
|
|
848
|
+
declare class InputInjector {
|
|
849
|
+
private doc;
|
|
850
|
+
private win;
|
|
851
|
+
constructor(doc?: Document, win?: Window);
|
|
852
|
+
keyDown(key: string, code?: string, modifiers?: KeyModifiers): void;
|
|
853
|
+
keyUp(key: string, code?: string, modifiers?: KeyModifiers): void;
|
|
854
|
+
mouseMove(movementX: number, movementY: number, clientX?: number, clientY?: number): void;
|
|
855
|
+
mouseButton(button: number, state?: 'down' | 'up'): void;
|
|
856
|
+
mouseDown(button?: number): void;
|
|
857
|
+
mouseUp(button?: number): void;
|
|
858
|
+
mouseWheel(deltaY: number): void;
|
|
859
|
+
wheel(deltaY: number): void;
|
|
860
|
+
private dispatchToTarget;
|
|
861
|
+
}
|
|
862
|
+
/**
|
|
863
|
+
* Factory for creating a MockPointerLock instance.
|
|
864
|
+
*/
|
|
865
|
+
declare function createMockPointerLock(element?: HTMLElement): MockPointerLock;
|
|
866
|
+
/**
|
|
867
|
+
* Factory for creating an InputInjector.
|
|
868
|
+
*/
|
|
869
|
+
declare function createInputInjector(target?: EventTarget): InputInjector;
|
|
870
|
+
|
|
871
|
+
interface RefDef {
|
|
872
|
+
x: number;
|
|
873
|
+
y: number;
|
|
874
|
+
width: number;
|
|
875
|
+
height: number;
|
|
876
|
+
fov_x: number;
|
|
877
|
+
fov_y: number;
|
|
878
|
+
vieworg: vec3;
|
|
879
|
+
viewangles: vec3;
|
|
880
|
+
time: number;
|
|
881
|
+
rdflags: number;
|
|
882
|
+
}
|
|
883
|
+
interface ViewState {
|
|
884
|
+
camera: Camera;
|
|
885
|
+
viewport: {
|
|
886
|
+
x: number;
|
|
887
|
+
y: number;
|
|
888
|
+
width: number;
|
|
889
|
+
height: number;
|
|
890
|
+
};
|
|
891
|
+
refdef: RefDef;
|
|
892
|
+
}
|
|
893
|
+
interface ViewScenario {
|
|
894
|
+
viewState: ViewState;
|
|
895
|
+
cleanup: () => void;
|
|
896
|
+
}
|
|
897
|
+
interface CameraInput {
|
|
898
|
+
forward?: number;
|
|
899
|
+
right?: number;
|
|
900
|
+
up?: number;
|
|
901
|
+
pitchDelta?: number;
|
|
902
|
+
yawDelta?: number;
|
|
903
|
+
rollDelta?: number;
|
|
904
|
+
}
|
|
905
|
+
/**
|
|
906
|
+
* Creates a mock Camera instance with optional overrides.
|
|
907
|
+
*/
|
|
908
|
+
declare function createMockCamera(overrides?: Partial<Camera>): Camera;
|
|
909
|
+
/**
|
|
910
|
+
* Creates a mock RefDef object.
|
|
911
|
+
*/
|
|
912
|
+
declare function createMockRefDef(overrides?: Partial<RefDef>): RefDef;
|
|
913
|
+
/**
|
|
914
|
+
* Creates a mock ViewState object.
|
|
915
|
+
*/
|
|
916
|
+
declare function createMockViewState(overrides?: Partial<ViewState>): ViewState;
|
|
917
|
+
/**
|
|
918
|
+
* Creates a pre-configured view test scenario.
|
|
919
|
+
*/
|
|
920
|
+
declare function createViewTestScenario(scenarioType: 'firstPerson' | 'thirdPerson' | 'spectator'): ViewScenario;
|
|
921
|
+
/**
|
|
922
|
+
* Simulates camera movement based on input delta.
|
|
923
|
+
* This is a helper to verify camera logic, not a replacement for full physics.
|
|
924
|
+
*/
|
|
925
|
+
declare function simulateCameraMovement(camera: Camera, input: CameraInput, deltaTime: number): Camera;
|
|
926
|
+
|
|
790
927
|
/**
|
|
791
928
|
* Interface for Test Client options
|
|
792
929
|
*/
|
|
@@ -821,21 +958,6 @@ interface GameStateCapture {
|
|
|
821
958
|
}
|
|
822
959
|
declare function captureGameState(page: Page): Promise<GameStateCapture>;
|
|
823
960
|
|
|
824
|
-
declare class MockPointerLock {
|
|
825
|
-
static setup(doc: Document): void;
|
|
826
|
-
}
|
|
827
|
-
declare class InputInjector {
|
|
828
|
-
private doc;
|
|
829
|
-
private win;
|
|
830
|
-
constructor(doc: Document, win: any);
|
|
831
|
-
keyDown(key: string, code?: string): void;
|
|
832
|
-
keyUp(key: string, code?: string): void;
|
|
833
|
-
mouseMove(movementX: number, movementY: number, clientX?: number, clientY?: number): void;
|
|
834
|
-
mouseDown(button?: number): void;
|
|
835
|
-
mouseUp(button?: number): void;
|
|
836
|
-
wheel(deltaY: number): void;
|
|
837
|
-
}
|
|
838
|
-
|
|
839
961
|
interface NetworkSimulator {
|
|
840
962
|
apply(page: any): Promise<void>;
|
|
841
963
|
clear(page: any): Promise<void>;
|
|
@@ -891,4 +1013,4 @@ interface VisualScenario {
|
|
|
891
1013
|
*/
|
|
892
1014
|
declare function createVisualTestScenario(page: Page, sceneName: string): VisualScenario;
|
|
893
1015
|
|
|
894
|
-
export { type AudioEvent, type BandwidthScenario, type BinaryStreamMock, type BinaryWriterMock, type BrowserSetupOptions, type Connection, type ConsistencyReport, type ControlledTimer, type DeltaSnapshot, type DrawCall, type GameState, type GameStateCapture, type Handshake, HandshakeStage, InputInjector, type MasterServer, type Message, type MockAI, type MockDamageInfo, type MockEngine, type MockGame, type MockMonsterAI, MockPointerLock, type MockRAF, type MockRConClient, type MockServer, type MockServerConsole, type MockServerContext, MockTransport, type MockUDPSocket, type MultiplayerScenario, type NetworkAddress, type NetworkCondition, type NetworkConfig, type NetworkSimulator, type NodeSetupOptions, type PlaywrightOptions, type PlaywrightTestClient, type RateLimiter, type ServerInfo, type ServerListFilter, type Snapshot, type StorageScenario, type TestContext, type UserInfo, type VisualDiff, type VisualScenario, captureAudioEvents, captureCanvasDrawCalls, captureGameScreenshot, captureGameState, compareScreenshots, createBandwidthTestScenario, createBinaryStreamMock, createBinaryWriterMock, createCombatTestContext, createControlledTimer, createCustomNetworkCondition, createDeltaSnapshot, createEntity, createEntityFactory, createEntityStateFactory, createGameStateSnapshotFactory, createItemEntityFactory, createMockAI, createMockAmmoItem, createMockArmorItem, createMockAudioContext, createMockCanvas, createMockCanvasContext2D, createMockConnection, createMockDamageInfo, createMockEngine, createMockGPUAdapter, createMockGPUCanvasContext, createMockGPUDevice, createMockGame, createMockGameExports, createMockGameState, createMockHandshake, createMockHealthItem, createMockImage, createMockImageData, createMockIndexedDB, createMockInventory, createMockItem, createMockLocalStorage, createMockMasterServer, createMockMonsterAI, createMockMonsterMove, createMockNetDriver, createMockNetworkAddress, createMockPerformance, createMockPowerupItem, createMockRAF, createMockRConClient, createMockRateLimiter, createMockServer, createMockServerClient, createMockServerConsole, createMockServerInfo, createMockServerState, createMockServerStatic, createMockSessionStorage, createMockTransport, createMockUDPSocket, createMockUserInfo, createMockWeapon, createMockWeaponItem, createMockWebGL2Context, createMonsterEntityFactory, createMultiplayerTestScenario, createNetChanMock, createPhysicsTestContext, createPlayerEntityFactory, createPlayerStateFactory, createPlaywrightTestClient, createProjectileEntityFactory, createServerSnapshot, createSpawnTestContext, createStorageTestScenario, createTestContext, createTriggerEntityFactory, createVisualTestScenario, makeAxisBrush, makeBrushFromMinsMaxs, makeBspModel, makeLeaf, makeLeafModel, makeNode, makePlane, measureSnapshotSize, mockMonsterAttacks, serializeUserInfo, setupBrowserEnvironment, setupMockAudioContext, setupNodeEnvironment, setupWebGPUMocks, simulateBandwidthLimit, simulateFrames, simulateFramesWithMock, simulateHandshake, simulateNetworkCondition, simulatePlayerInput, simulatePlayerJoin, simulatePlayerLeave, simulateServerCommand, simulateServerRegistration, simulateServerTick, simulateSnapshotDelivery, teardownBrowserEnvironment, teardownMockAudioContext, throttleBandwidth, verifySnapshotConsistency, waitForGameReady };
|
|
1016
|
+
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 MockServer, type MockServerConsole, type MockServerContext, MockTransport, type MockUDPSocket, type MultiplayerScenario, type NetworkAddress, type NetworkCondition, type NetworkConfig, type NetworkSimulator, type NodeSetupOptions, type PlaywrightOptions, type PlaywrightTestClient, type 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, createMockAudioContext, 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, 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, simulateFramesWithMock, simulateHandshake, simulateNetworkCondition, simulatePlayerInput, simulatePlayerJoin, simulatePlayerLeave, simulateServerCommand, simulateServerRegistration, simulateServerTick, simulateSnapshotDelivery, teardownBrowserEnvironment, teardownMockAudioContext, throttleBandwidth, verifySnapshotConsistency, waitForGameReady };
|
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
import * as vitest from 'vitest';
|
|
2
2
|
import { Mock } from 'vitest';
|
|
3
|
-
import { Vec3, CollisionPlane, CollisionBrush, CollisionNode, CollisionLeaf, CollisionModel, PlayerState, EntityState, createRandomGenerator, NetDriver, UserCommand } from '@quake2ts/shared';
|
|
3
|
+
import { Vec3, CollisionPlane, CollisionBrush, CollisionNode, CollisionLeaf, CollisionModel, PlayerState, EntityState, createRandomGenerator, NetDriver, TraceResult, UserCommand } from '@quake2ts/shared';
|
|
4
4
|
export { intersects, ladderTrace, stairTrace } from '@quake2ts/shared';
|
|
5
5
|
import { GameStateSnapshot, Entity, ScriptHookRegistry, SpawnContext, EntitySystem, SpawnRegistry, MonsterMove, DamageMod, PlayerInventory, BaseItem, WeaponId, WeaponItem, HealthItem, ArmorItem, AmmoItemId, PowerupItem, GameExports } from '@quake2ts/game';
|
|
6
6
|
import { NetworkTransport, Server, ServerStatic, Client, ClientState, ClientFrame } from '@quake2ts/server';
|
|
7
7
|
import { ImageData } from '@napi-rs/canvas';
|
|
8
|
+
import { vec3 } from 'gl-matrix';
|
|
9
|
+
import { Camera } from '@quake2ts/engine';
|
|
8
10
|
import { LaunchOptions, BrowserContextOptions, Browser, BrowserContext, Page } from 'playwright';
|
|
9
11
|
import { Server as Server$1 } from 'http';
|
|
10
12
|
|
|
@@ -523,6 +525,21 @@ declare function createMockServerInfo(overrides?: Partial<ServerInfo>): ServerIn
|
|
|
523
525
|
*/
|
|
524
526
|
declare function simulateServerRegistration(server: any, master: MasterServer): Promise<boolean>;
|
|
525
527
|
|
|
528
|
+
/**
|
|
529
|
+
* Mock interface for CollisionEntityIndex.
|
|
530
|
+
*/
|
|
531
|
+
interface MockCollisionEntityIndex {
|
|
532
|
+
trace: (start: any, mins: any, maxs: any, end: any, passEntity: any, contentMask: number) => TraceResult;
|
|
533
|
+
link: (entity: any) => void;
|
|
534
|
+
unlink: (entity: any) => void;
|
|
535
|
+
gatherTriggerTouches: (entity: any) => any[];
|
|
536
|
+
}
|
|
537
|
+
/**
|
|
538
|
+
* Creates a mock CollisionEntityIndex.
|
|
539
|
+
* @param overrides Optional overrides for the mock methods.
|
|
540
|
+
*/
|
|
541
|
+
declare function createMockCollisionEntityIndex(overrides?: Partial<MockCollisionEntityIndex>): MockCollisionEntityIndex;
|
|
542
|
+
|
|
526
543
|
type MockServerContext = Server & {
|
|
527
544
|
clients: (Client | null)[];
|
|
528
545
|
entities?: Entity[];
|
|
@@ -787,6 +804,126 @@ interface AudioEvent {
|
|
|
787
804
|
*/
|
|
788
805
|
declare function captureAudioEvents(context: AudioContext): AudioEvent[];
|
|
789
806
|
|
|
807
|
+
/**
|
|
808
|
+
* Client Input System Mocks
|
|
809
|
+
*
|
|
810
|
+
* Provides utilities for simulating user input (keyboard, mouse, pointer lock)
|
|
811
|
+
* in a test environment (JSDOM/Browser).
|
|
812
|
+
*/
|
|
813
|
+
interface KeyModifiers {
|
|
814
|
+
ctrl?: boolean;
|
|
815
|
+
alt?: boolean;
|
|
816
|
+
shift?: boolean;
|
|
817
|
+
meta?: boolean;
|
|
818
|
+
}
|
|
819
|
+
/**
|
|
820
|
+
* Factory for creating a mock KeyboardEvent.
|
|
821
|
+
*/
|
|
822
|
+
declare function createMockKeyboardEvent(key: string, type?: 'keydown' | 'keyup', modifiers?: KeyModifiers): KeyboardEvent;
|
|
823
|
+
/**
|
|
824
|
+
* Factory for creating a mock MouseEvent with support for movementX/Y.
|
|
825
|
+
*/
|
|
826
|
+
declare function createMockMouseEvent(type: string, options?: MouseEventInit): MouseEvent;
|
|
827
|
+
/**
|
|
828
|
+
* Factory for creating a mock WheelEvent.
|
|
829
|
+
*/
|
|
830
|
+
declare function createMockWheelEvent(deltaX?: number, deltaY?: number): WheelEvent;
|
|
831
|
+
/**
|
|
832
|
+
* Class implementing a mock for the Pointer Lock API.
|
|
833
|
+
* Handles patching the document and element prototypes to simulate pointer lock.
|
|
834
|
+
*/
|
|
835
|
+
declare class MockPointerLock {
|
|
836
|
+
private _doc;
|
|
837
|
+
constructor(doc?: Document);
|
|
838
|
+
private setup;
|
|
839
|
+
get element(): Element | null;
|
|
840
|
+
get locked(): boolean;
|
|
841
|
+
request(element: HTMLElement): void;
|
|
842
|
+
exit(): void;
|
|
843
|
+
isLocked(): boolean;
|
|
844
|
+
}
|
|
845
|
+
/**
|
|
846
|
+
* Class for simulating input events.
|
|
847
|
+
*/
|
|
848
|
+
declare class InputInjector {
|
|
849
|
+
private doc;
|
|
850
|
+
private win;
|
|
851
|
+
constructor(doc?: Document, win?: Window);
|
|
852
|
+
keyDown(key: string, code?: string, modifiers?: KeyModifiers): void;
|
|
853
|
+
keyUp(key: string, code?: string, modifiers?: KeyModifiers): void;
|
|
854
|
+
mouseMove(movementX: number, movementY: number, clientX?: number, clientY?: number): void;
|
|
855
|
+
mouseButton(button: number, state?: 'down' | 'up'): void;
|
|
856
|
+
mouseDown(button?: number): void;
|
|
857
|
+
mouseUp(button?: number): void;
|
|
858
|
+
mouseWheel(deltaY: number): void;
|
|
859
|
+
wheel(deltaY: number): void;
|
|
860
|
+
private dispatchToTarget;
|
|
861
|
+
}
|
|
862
|
+
/**
|
|
863
|
+
* Factory for creating a MockPointerLock instance.
|
|
864
|
+
*/
|
|
865
|
+
declare function createMockPointerLock(element?: HTMLElement): MockPointerLock;
|
|
866
|
+
/**
|
|
867
|
+
* Factory for creating an InputInjector.
|
|
868
|
+
*/
|
|
869
|
+
declare function createInputInjector(target?: EventTarget): InputInjector;
|
|
870
|
+
|
|
871
|
+
interface RefDef {
|
|
872
|
+
x: number;
|
|
873
|
+
y: number;
|
|
874
|
+
width: number;
|
|
875
|
+
height: number;
|
|
876
|
+
fov_x: number;
|
|
877
|
+
fov_y: number;
|
|
878
|
+
vieworg: vec3;
|
|
879
|
+
viewangles: vec3;
|
|
880
|
+
time: number;
|
|
881
|
+
rdflags: number;
|
|
882
|
+
}
|
|
883
|
+
interface ViewState {
|
|
884
|
+
camera: Camera;
|
|
885
|
+
viewport: {
|
|
886
|
+
x: number;
|
|
887
|
+
y: number;
|
|
888
|
+
width: number;
|
|
889
|
+
height: number;
|
|
890
|
+
};
|
|
891
|
+
refdef: RefDef;
|
|
892
|
+
}
|
|
893
|
+
interface ViewScenario {
|
|
894
|
+
viewState: ViewState;
|
|
895
|
+
cleanup: () => void;
|
|
896
|
+
}
|
|
897
|
+
interface CameraInput {
|
|
898
|
+
forward?: number;
|
|
899
|
+
right?: number;
|
|
900
|
+
up?: number;
|
|
901
|
+
pitchDelta?: number;
|
|
902
|
+
yawDelta?: number;
|
|
903
|
+
rollDelta?: number;
|
|
904
|
+
}
|
|
905
|
+
/**
|
|
906
|
+
* Creates a mock Camera instance with optional overrides.
|
|
907
|
+
*/
|
|
908
|
+
declare function createMockCamera(overrides?: Partial<Camera>): Camera;
|
|
909
|
+
/**
|
|
910
|
+
* Creates a mock RefDef object.
|
|
911
|
+
*/
|
|
912
|
+
declare function createMockRefDef(overrides?: Partial<RefDef>): RefDef;
|
|
913
|
+
/**
|
|
914
|
+
* Creates a mock ViewState object.
|
|
915
|
+
*/
|
|
916
|
+
declare function createMockViewState(overrides?: Partial<ViewState>): ViewState;
|
|
917
|
+
/**
|
|
918
|
+
* Creates a pre-configured view test scenario.
|
|
919
|
+
*/
|
|
920
|
+
declare function createViewTestScenario(scenarioType: 'firstPerson' | 'thirdPerson' | 'spectator'): ViewScenario;
|
|
921
|
+
/**
|
|
922
|
+
* Simulates camera movement based on input delta.
|
|
923
|
+
* This is a helper to verify camera logic, not a replacement for full physics.
|
|
924
|
+
*/
|
|
925
|
+
declare function simulateCameraMovement(camera: Camera, input: CameraInput, deltaTime: number): Camera;
|
|
926
|
+
|
|
790
927
|
/**
|
|
791
928
|
* Interface for Test Client options
|
|
792
929
|
*/
|
|
@@ -821,21 +958,6 @@ interface GameStateCapture {
|
|
|
821
958
|
}
|
|
822
959
|
declare function captureGameState(page: Page): Promise<GameStateCapture>;
|
|
823
960
|
|
|
824
|
-
declare class MockPointerLock {
|
|
825
|
-
static setup(doc: Document): void;
|
|
826
|
-
}
|
|
827
|
-
declare class InputInjector {
|
|
828
|
-
private doc;
|
|
829
|
-
private win;
|
|
830
|
-
constructor(doc: Document, win: any);
|
|
831
|
-
keyDown(key: string, code?: string): void;
|
|
832
|
-
keyUp(key: string, code?: string): void;
|
|
833
|
-
mouseMove(movementX: number, movementY: number, clientX?: number, clientY?: number): void;
|
|
834
|
-
mouseDown(button?: number): void;
|
|
835
|
-
mouseUp(button?: number): void;
|
|
836
|
-
wheel(deltaY: number): void;
|
|
837
|
-
}
|
|
838
|
-
|
|
839
961
|
interface NetworkSimulator {
|
|
840
962
|
apply(page: any): Promise<void>;
|
|
841
963
|
clear(page: any): Promise<void>;
|
|
@@ -891,4 +1013,4 @@ interface VisualScenario {
|
|
|
891
1013
|
*/
|
|
892
1014
|
declare function createVisualTestScenario(page: Page, sceneName: string): VisualScenario;
|
|
893
1015
|
|
|
894
|
-
export { type AudioEvent, type BandwidthScenario, type BinaryStreamMock, type BinaryWriterMock, type BrowserSetupOptions, type Connection, type ConsistencyReport, type ControlledTimer, type DeltaSnapshot, type DrawCall, type GameState, type GameStateCapture, type Handshake, HandshakeStage, InputInjector, type MasterServer, type Message, type MockAI, type MockDamageInfo, type MockEngine, type MockGame, type MockMonsterAI, MockPointerLock, type MockRAF, type MockRConClient, type MockServer, type MockServerConsole, type MockServerContext, MockTransport, type MockUDPSocket, type MultiplayerScenario, type NetworkAddress, type NetworkCondition, type NetworkConfig, type NetworkSimulator, type NodeSetupOptions, type PlaywrightOptions, type PlaywrightTestClient, type RateLimiter, type ServerInfo, type ServerListFilter, type Snapshot, type StorageScenario, type TestContext, type UserInfo, type VisualDiff, type VisualScenario, captureAudioEvents, captureCanvasDrawCalls, captureGameScreenshot, captureGameState, compareScreenshots, createBandwidthTestScenario, createBinaryStreamMock, createBinaryWriterMock, createCombatTestContext, createControlledTimer, createCustomNetworkCondition, createDeltaSnapshot, createEntity, createEntityFactory, createEntityStateFactory, createGameStateSnapshotFactory, createItemEntityFactory, createMockAI, createMockAmmoItem, createMockArmorItem, createMockAudioContext, createMockCanvas, createMockCanvasContext2D, createMockConnection, createMockDamageInfo, createMockEngine, createMockGPUAdapter, createMockGPUCanvasContext, createMockGPUDevice, createMockGame, createMockGameExports, createMockGameState, createMockHandshake, createMockHealthItem, createMockImage, createMockImageData, createMockIndexedDB, createMockInventory, createMockItem, createMockLocalStorage, createMockMasterServer, createMockMonsterAI, createMockMonsterMove, createMockNetDriver, createMockNetworkAddress, createMockPerformance, createMockPowerupItem, createMockRAF, createMockRConClient, createMockRateLimiter, createMockServer, createMockServerClient, createMockServerConsole, createMockServerInfo, createMockServerState, createMockServerStatic, createMockSessionStorage, createMockTransport, createMockUDPSocket, createMockUserInfo, createMockWeapon, createMockWeaponItem, createMockWebGL2Context, createMonsterEntityFactory, createMultiplayerTestScenario, createNetChanMock, createPhysicsTestContext, createPlayerEntityFactory, createPlayerStateFactory, createPlaywrightTestClient, createProjectileEntityFactory, createServerSnapshot, createSpawnTestContext, createStorageTestScenario, createTestContext, createTriggerEntityFactory, createVisualTestScenario, makeAxisBrush, makeBrushFromMinsMaxs, makeBspModel, makeLeaf, makeLeafModel, makeNode, makePlane, measureSnapshotSize, mockMonsterAttacks, serializeUserInfo, setupBrowserEnvironment, setupMockAudioContext, setupNodeEnvironment, setupWebGPUMocks, simulateBandwidthLimit, simulateFrames, simulateFramesWithMock, simulateHandshake, simulateNetworkCondition, simulatePlayerInput, simulatePlayerJoin, simulatePlayerLeave, simulateServerCommand, simulateServerRegistration, simulateServerTick, simulateSnapshotDelivery, teardownBrowserEnvironment, teardownMockAudioContext, throttleBandwidth, verifySnapshotConsistency, waitForGameReady };
|
|
1016
|
+
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 MockServer, type MockServerConsole, type MockServerContext, MockTransport, type MockUDPSocket, type MultiplayerScenario, type NetworkAddress, type NetworkCondition, type NetworkConfig, type NetworkSimulator, type NodeSetupOptions, type PlaywrightOptions, type PlaywrightTestClient, type 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, createMockAudioContext, 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, 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, simulateFramesWithMock, simulateHandshake, simulateNetworkCondition, simulatePlayerInput, simulatePlayerJoin, simulatePlayerLeave, simulateServerCommand, simulateServerRegistration, simulateServerTick, simulateSnapshotDelivery, teardownBrowserEnvironment, teardownMockAudioContext, throttleBandwidth, verifySnapshotConsistency, waitForGameReady };
|