quake2ts 0.0.568 → 0.0.570

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -2,7 +2,7 @@ import * as vitest from 'vitest';
2
2
  import { Mock } from 'vitest';
3
3
  import { Vec3, CollisionPlane, CollisionBrush, CollisionNode, CollisionLeaf, CollisionModel, PlayerState, EntityState, createRandomGenerator, NetDriver, UserCommand } from '@quake2ts/shared';
4
4
  export { intersects, ladderTrace, stairTrace } from '@quake2ts/shared';
5
- import { GameStateSnapshot, Entity, ScriptHookRegistry, SpawnContext, EntitySystem, SpawnRegistry } from '@quake2ts/game';
5
+ import { GameStateSnapshot, Entity, ScriptHookRegistry, SpawnContext, EntitySystem, SpawnRegistry, MonsterMove, DamageMod, GameExports } from '@quake2ts/game';
6
6
  import { NetworkTransport, Server, ServerStatic, Client, ClientState } from '@quake2ts/server';
7
7
  import { ImageData } from '@napi-rs/canvas';
8
8
  import { LaunchOptions, BrowserContextOptions, Browser, BrowserContext, Page } from 'playwright';
@@ -97,6 +97,12 @@ declare function makeBrushFromMinsMaxs(mins: Vec3, maxs: Vec3, contents?: number
97
97
  declare const createPlayerStateFactory: (overrides?: Partial<PlayerState>) => PlayerState;
98
98
  declare const createEntityStateFactory: (overrides?: Partial<EntityState>) => EntityState;
99
99
  declare const createGameStateSnapshotFactory: (overrides?: Partial<GameStateSnapshot>) => GameStateSnapshot;
100
+ declare function createEntityFactory(overrides?: Partial<Entity>): Entity;
101
+ declare function createPlayerEntityFactory(overrides?: Partial<Entity>): Entity;
102
+ declare function createMonsterEntityFactory(classname: string, overrides?: Partial<Entity>): Entity;
103
+ declare function createItemEntityFactory(classname: string, overrides?: Partial<Entity>): Entity;
104
+ declare function createProjectileEntityFactory(classname: string, overrides?: Partial<Entity>): Entity;
105
+ declare function createTriggerEntityFactory(classname: string, overrides?: Partial<Entity>): Entity;
100
106
 
101
107
  interface MockEngine {
102
108
  sound: Mock<[Entity, number, string, number, number, number], void>;
@@ -129,9 +135,68 @@ declare function createTestContext(options?: {
129
135
  seed?: number;
130
136
  initialEntities?: Entity[];
131
137
  }): TestContext;
132
- declare function createSpawnContext(): SpawnContext;
138
+ declare function createSpawnTestContext(mapName?: string): TestContext;
139
+ declare function createCombatTestContext(): TestContext;
140
+ declare function createPhysicsTestContext(): TestContext;
133
141
  declare function createEntity(): Entity;
134
142
 
143
+ interface MockAI {
144
+ checkAttack: Mock;
145
+ findTarget: Mock;
146
+ visible: Mock;
147
+ infront: Mock;
148
+ }
149
+ interface MockMonsterAI {
150
+ stand: Mock;
151
+ walk: Mock;
152
+ run: Mock;
153
+ dodge: Mock;
154
+ attack: Mock;
155
+ melee: Mock;
156
+ sight: Mock;
157
+ idle: Mock;
158
+ }
159
+ declare function createMockAI(overrides?: Partial<MockAI>): MockAI;
160
+ declare function createMockMonsterAI(overrides?: Partial<MockMonsterAI>): MockMonsterAI;
161
+ declare function createMockMonsterMove(first: number, last: number, think: (self: Entity, context: EntitySystem) => void, action: (self: Entity, dist: number, context: EntitySystem) => void): MonsterMove;
162
+
163
+ interface MockDamageInfo {
164
+ damage: number;
165
+ mod: DamageMod;
166
+ knockback: number;
167
+ attacker: Entity | null;
168
+ inflictor: Entity | null;
169
+ dir: {
170
+ x: number;
171
+ y: number;
172
+ z: number;
173
+ } | null;
174
+ point: {
175
+ x: number;
176
+ y: number;
177
+ z: number;
178
+ } | null;
179
+ }
180
+ declare function createMockDamageInfo(overrides?: Partial<MockDamageInfo>): MockDamageInfo;
181
+ declare function createMockWeapon(name?: string): {
182
+ name: string;
183
+ ammoType: string;
184
+ ammoUse: number;
185
+ selection: Mock<any, any>;
186
+ think: Mock<any, any>;
187
+ command: Mock<any, any>;
188
+ };
189
+ declare const mockMonsterAttacks: {
190
+ fireBlaster: Mock<any, any>;
191
+ fireRocket: Mock<any, any>;
192
+ fireGrenade: Mock<any, any>;
193
+ fireHeat: Mock<any, any>;
194
+ fireBullet: Mock<any, any>;
195
+ fireShotgun: Mock<any, any>;
196
+ fireRailgun: Mock<any, any>;
197
+ fireBFG: Mock<any, any>;
198
+ };
199
+
135
200
  interface GameState {
136
201
  levelName: string;
137
202
  time: number;
@@ -143,6 +208,10 @@ interface GameState {
143
208
  * @param overrides Optional overrides for the game state.
144
209
  */
145
210
  declare function createMockGameState(overrides?: Partial<GameState>): GameState;
211
+ /**
212
+ * Creates a mock GameExports object.
213
+ */
214
+ declare function createMockGameExports(overrides?: Partial<GameExports>): GameExports;
146
215
 
147
216
  /**
148
217
  * Mock implementation of the NetworkTransport interface for server testing.
@@ -709,4 +778,4 @@ interface VisualScenario {
709
778
  */
710
779
  declare function createVisualTestScenario(page: Page, sceneName: string): VisualScenario;
711
780
 
712
- export { type AudioEvent, type BinaryStreamMock, type BinaryWriterMock, type BrowserSetupOptions, type Connection, type ConsistencyReport, type ControlledTimer, type DeltaSnapshot, type DrawCall, type GameState, type GameStateCapture, type Handshake, HandshakeStage, InputInjector, type MockEngine, type MockGame, MockPointerLock, type MockRAF, type MockRConClient, type MockServer, type MockServerConsole, type MockServerContext, MockTransport, type MockUDPSocket, type MultiplayerScenario, type NetworkAddress, type NetworkCondition, type NetworkConfig, type NetworkSimulator, type NodeSetupOptions, type PlaywrightOptions, type PlaywrightTestClient, type Snapshot, type StorageScenario, type TestContext, type UserInfo, type VisualDiff, type VisualScenario, captureAudioEvents, captureCanvasDrawCalls, captureGameScreenshot, captureGameState, compareScreenshots, createBinaryStreamMock, createBinaryWriterMock, createControlledTimer, createCustomNetworkCondition, createDeltaSnapshot, createEntity, createEntityStateFactory, createGameStateSnapshotFactory, createMockAudioContext, createMockCanvas, createMockCanvasContext2D, createMockConnection, createMockEngine, createMockGPUAdapter, createMockGPUCanvasContext, createMockGPUDevice, createMockGame, createMockGameState, createMockHandshake, createMockImage, createMockImageData, createMockIndexedDB, createMockLocalStorage, createMockNetDriver, createMockNetworkAddress, createMockPerformance, createMockRAF, createMockRConClient, createMockServer, createMockServerClient, createMockServerConsole, createMockServerState, createMockServerStatic, createMockSessionStorage, createMockTransport, createMockUDPSocket, createMockUserInfo, createMockWebGL2Context, createMultiplayerTestScenario, createNetChanMock, createPlayerStateFactory, createPlaywrightTestClient, createServerSnapshot, createSpawnContext, createStorageTestScenario, createTestContext, createVisualTestScenario, makeAxisBrush, makeBrushFromMinsMaxs, makeBspModel, makeLeaf, makeLeafModel, makeNode, makePlane, serializeUserInfo, setupBrowserEnvironment, setupMockAudioContext, setupNodeEnvironment, setupWebGPUMocks, simulateFrames, simulateFramesWithMock, simulateHandshake, simulateNetworkCondition, simulatePlayerInput, simulatePlayerJoin, simulatePlayerLeave, simulateServerCommand, simulateServerTick, simulateSnapshotDelivery, teardownBrowserEnvironment, teardownMockAudioContext, throttleBandwidth, verifySnapshotConsistency, waitForGameReady };
781
+ export { type AudioEvent, type BinaryStreamMock, type BinaryWriterMock, type BrowserSetupOptions, type Connection, type ConsistencyReport, type ControlledTimer, type DeltaSnapshot, type DrawCall, type GameState, type GameStateCapture, type Handshake, HandshakeStage, InputInjector, type MockAI, type MockDamageInfo, type MockEngine, type MockGame, type MockMonsterAI, MockPointerLock, type MockRAF, type MockRConClient, type MockServer, type MockServerConsole, type MockServerContext, MockTransport, type MockUDPSocket, type MultiplayerScenario, type NetworkAddress, type NetworkCondition, type NetworkConfig, type NetworkSimulator, type NodeSetupOptions, type PlaywrightOptions, type PlaywrightTestClient, type Snapshot, type StorageScenario, type TestContext, type UserInfo, type VisualDiff, type VisualScenario, captureAudioEvents, captureCanvasDrawCalls, captureGameScreenshot, captureGameState, compareScreenshots, createBinaryStreamMock, createBinaryWriterMock, createCombatTestContext, createControlledTimer, createCustomNetworkCondition, createDeltaSnapshot, createEntity, createEntityFactory, createEntityStateFactory, createGameStateSnapshotFactory, createItemEntityFactory, createMockAI, createMockAudioContext, createMockCanvas, createMockCanvasContext2D, createMockConnection, createMockDamageInfo, createMockEngine, createMockGPUAdapter, createMockGPUCanvasContext, createMockGPUDevice, createMockGame, createMockGameExports, createMockGameState, createMockHandshake, createMockImage, createMockImageData, createMockIndexedDB, createMockLocalStorage, createMockMonsterAI, createMockMonsterMove, createMockNetDriver, createMockNetworkAddress, createMockPerformance, createMockRAF, createMockRConClient, createMockServer, createMockServerClient, createMockServerConsole, createMockServerState, createMockServerStatic, createMockSessionStorage, createMockTransport, createMockUDPSocket, createMockUserInfo, createMockWeapon, createMockWebGL2Context, createMonsterEntityFactory, createMultiplayerTestScenario, createNetChanMock, createPhysicsTestContext, createPlayerEntityFactory, createPlayerStateFactory, createPlaywrightTestClient, createProjectileEntityFactory, createServerSnapshot, createSpawnTestContext, createStorageTestScenario, createTestContext, createTriggerEntityFactory, createVisualTestScenario, makeAxisBrush, makeBrushFromMinsMaxs, makeBspModel, makeLeaf, makeLeafModel, makeNode, makePlane, mockMonsterAttacks, serializeUserInfo, setupBrowserEnvironment, setupMockAudioContext, setupNodeEnvironment, setupWebGPUMocks, simulateFrames, simulateFramesWithMock, simulateHandshake, simulateNetworkCondition, simulatePlayerInput, simulatePlayerJoin, simulatePlayerLeave, simulateServerCommand, simulateServerTick, simulateSnapshotDelivery, teardownBrowserEnvironment, teardownMockAudioContext, throttleBandwidth, verifySnapshotConsistency, waitForGameReady };
@@ -2,7 +2,7 @@ import * as vitest from 'vitest';
2
2
  import { Mock } from 'vitest';
3
3
  import { Vec3, CollisionPlane, CollisionBrush, CollisionNode, CollisionLeaf, CollisionModel, PlayerState, EntityState, createRandomGenerator, NetDriver, UserCommand } from '@quake2ts/shared';
4
4
  export { intersects, ladderTrace, stairTrace } from '@quake2ts/shared';
5
- import { GameStateSnapshot, Entity, ScriptHookRegistry, SpawnContext, EntitySystem, SpawnRegistry } from '@quake2ts/game';
5
+ import { GameStateSnapshot, Entity, ScriptHookRegistry, SpawnContext, EntitySystem, SpawnRegistry, MonsterMove, DamageMod, GameExports } from '@quake2ts/game';
6
6
  import { NetworkTransport, Server, ServerStatic, Client, ClientState } from '@quake2ts/server';
7
7
  import { ImageData } from '@napi-rs/canvas';
8
8
  import { LaunchOptions, BrowserContextOptions, Browser, BrowserContext, Page } from 'playwright';
@@ -97,6 +97,12 @@ declare function makeBrushFromMinsMaxs(mins: Vec3, maxs: Vec3, contents?: number
97
97
  declare const createPlayerStateFactory: (overrides?: Partial<PlayerState>) => PlayerState;
98
98
  declare const createEntityStateFactory: (overrides?: Partial<EntityState>) => EntityState;
99
99
  declare const createGameStateSnapshotFactory: (overrides?: Partial<GameStateSnapshot>) => GameStateSnapshot;
100
+ declare function createEntityFactory(overrides?: Partial<Entity>): Entity;
101
+ declare function createPlayerEntityFactory(overrides?: Partial<Entity>): Entity;
102
+ declare function createMonsterEntityFactory(classname: string, overrides?: Partial<Entity>): Entity;
103
+ declare function createItemEntityFactory(classname: string, overrides?: Partial<Entity>): Entity;
104
+ declare function createProjectileEntityFactory(classname: string, overrides?: Partial<Entity>): Entity;
105
+ declare function createTriggerEntityFactory(classname: string, overrides?: Partial<Entity>): Entity;
100
106
 
101
107
  interface MockEngine {
102
108
  sound: Mock<[Entity, number, string, number, number, number], void>;
@@ -129,9 +135,68 @@ declare function createTestContext(options?: {
129
135
  seed?: number;
130
136
  initialEntities?: Entity[];
131
137
  }): TestContext;
132
- declare function createSpawnContext(): SpawnContext;
138
+ declare function createSpawnTestContext(mapName?: string): TestContext;
139
+ declare function createCombatTestContext(): TestContext;
140
+ declare function createPhysicsTestContext(): TestContext;
133
141
  declare function createEntity(): Entity;
134
142
 
143
+ interface MockAI {
144
+ checkAttack: Mock;
145
+ findTarget: Mock;
146
+ visible: Mock;
147
+ infront: Mock;
148
+ }
149
+ interface MockMonsterAI {
150
+ stand: Mock;
151
+ walk: Mock;
152
+ run: Mock;
153
+ dodge: Mock;
154
+ attack: Mock;
155
+ melee: Mock;
156
+ sight: Mock;
157
+ idle: Mock;
158
+ }
159
+ declare function createMockAI(overrides?: Partial<MockAI>): MockAI;
160
+ declare function createMockMonsterAI(overrides?: Partial<MockMonsterAI>): MockMonsterAI;
161
+ declare function createMockMonsterMove(first: number, last: number, think: (self: Entity, context: EntitySystem) => void, action: (self: Entity, dist: number, context: EntitySystem) => void): MonsterMove;
162
+
163
+ interface MockDamageInfo {
164
+ damage: number;
165
+ mod: DamageMod;
166
+ knockback: number;
167
+ attacker: Entity | null;
168
+ inflictor: Entity | null;
169
+ dir: {
170
+ x: number;
171
+ y: number;
172
+ z: number;
173
+ } | null;
174
+ point: {
175
+ x: number;
176
+ y: number;
177
+ z: number;
178
+ } | null;
179
+ }
180
+ declare function createMockDamageInfo(overrides?: Partial<MockDamageInfo>): MockDamageInfo;
181
+ declare function createMockWeapon(name?: string): {
182
+ name: string;
183
+ ammoType: string;
184
+ ammoUse: number;
185
+ selection: Mock<any, any>;
186
+ think: Mock<any, any>;
187
+ command: Mock<any, any>;
188
+ };
189
+ declare const mockMonsterAttacks: {
190
+ fireBlaster: Mock<any, any>;
191
+ fireRocket: Mock<any, any>;
192
+ fireGrenade: Mock<any, any>;
193
+ fireHeat: Mock<any, any>;
194
+ fireBullet: Mock<any, any>;
195
+ fireShotgun: Mock<any, any>;
196
+ fireRailgun: Mock<any, any>;
197
+ fireBFG: Mock<any, any>;
198
+ };
199
+
135
200
  interface GameState {
136
201
  levelName: string;
137
202
  time: number;
@@ -143,6 +208,10 @@ interface GameState {
143
208
  * @param overrides Optional overrides for the game state.
144
209
  */
145
210
  declare function createMockGameState(overrides?: Partial<GameState>): GameState;
211
+ /**
212
+ * Creates a mock GameExports object.
213
+ */
214
+ declare function createMockGameExports(overrides?: Partial<GameExports>): GameExports;
146
215
 
147
216
  /**
148
217
  * Mock implementation of the NetworkTransport interface for server testing.
@@ -709,4 +778,4 @@ interface VisualScenario {
709
778
  */
710
779
  declare function createVisualTestScenario(page: Page, sceneName: string): VisualScenario;
711
780
 
712
- export { type AudioEvent, type BinaryStreamMock, type BinaryWriterMock, type BrowserSetupOptions, type Connection, type ConsistencyReport, type ControlledTimer, type DeltaSnapshot, type DrawCall, type GameState, type GameStateCapture, type Handshake, HandshakeStage, InputInjector, type MockEngine, type MockGame, MockPointerLock, type MockRAF, type MockRConClient, type MockServer, type MockServerConsole, type MockServerContext, MockTransport, type MockUDPSocket, type MultiplayerScenario, type NetworkAddress, type NetworkCondition, type NetworkConfig, type NetworkSimulator, type NodeSetupOptions, type PlaywrightOptions, type PlaywrightTestClient, type Snapshot, type StorageScenario, type TestContext, type UserInfo, type VisualDiff, type VisualScenario, captureAudioEvents, captureCanvasDrawCalls, captureGameScreenshot, captureGameState, compareScreenshots, createBinaryStreamMock, createBinaryWriterMock, createControlledTimer, createCustomNetworkCondition, createDeltaSnapshot, createEntity, createEntityStateFactory, createGameStateSnapshotFactory, createMockAudioContext, createMockCanvas, createMockCanvasContext2D, createMockConnection, createMockEngine, createMockGPUAdapter, createMockGPUCanvasContext, createMockGPUDevice, createMockGame, createMockGameState, createMockHandshake, createMockImage, createMockImageData, createMockIndexedDB, createMockLocalStorage, createMockNetDriver, createMockNetworkAddress, createMockPerformance, createMockRAF, createMockRConClient, createMockServer, createMockServerClient, createMockServerConsole, createMockServerState, createMockServerStatic, createMockSessionStorage, createMockTransport, createMockUDPSocket, createMockUserInfo, createMockWebGL2Context, createMultiplayerTestScenario, createNetChanMock, createPlayerStateFactory, createPlaywrightTestClient, createServerSnapshot, createSpawnContext, createStorageTestScenario, createTestContext, createVisualTestScenario, makeAxisBrush, makeBrushFromMinsMaxs, makeBspModel, makeLeaf, makeLeafModel, makeNode, makePlane, serializeUserInfo, setupBrowserEnvironment, setupMockAudioContext, setupNodeEnvironment, setupWebGPUMocks, simulateFrames, simulateFramesWithMock, simulateHandshake, simulateNetworkCondition, simulatePlayerInput, simulatePlayerJoin, simulatePlayerLeave, simulateServerCommand, simulateServerTick, simulateSnapshotDelivery, teardownBrowserEnvironment, teardownMockAudioContext, throttleBandwidth, verifySnapshotConsistency, waitForGameReady };
781
+ export { type AudioEvent, type BinaryStreamMock, type BinaryWriterMock, type BrowserSetupOptions, type Connection, type ConsistencyReport, type ControlledTimer, type DeltaSnapshot, type DrawCall, type GameState, type GameStateCapture, type Handshake, HandshakeStage, InputInjector, type MockAI, type MockDamageInfo, type MockEngine, type MockGame, type MockMonsterAI, MockPointerLock, type MockRAF, type MockRConClient, type MockServer, type MockServerConsole, type MockServerContext, MockTransport, type MockUDPSocket, type MultiplayerScenario, type NetworkAddress, type NetworkCondition, type NetworkConfig, type NetworkSimulator, type NodeSetupOptions, type PlaywrightOptions, type PlaywrightTestClient, type Snapshot, type StorageScenario, type TestContext, type UserInfo, type VisualDiff, type VisualScenario, captureAudioEvents, captureCanvasDrawCalls, captureGameScreenshot, captureGameState, compareScreenshots, createBinaryStreamMock, createBinaryWriterMock, createCombatTestContext, createControlledTimer, createCustomNetworkCondition, createDeltaSnapshot, createEntity, createEntityFactory, createEntityStateFactory, createGameStateSnapshotFactory, createItemEntityFactory, createMockAI, createMockAudioContext, createMockCanvas, createMockCanvasContext2D, createMockConnection, createMockDamageInfo, createMockEngine, createMockGPUAdapter, createMockGPUCanvasContext, createMockGPUDevice, createMockGame, createMockGameExports, createMockGameState, createMockHandshake, createMockImage, createMockImageData, createMockIndexedDB, createMockLocalStorage, createMockMonsterAI, createMockMonsterMove, createMockNetDriver, createMockNetworkAddress, createMockPerformance, createMockRAF, createMockRConClient, createMockServer, createMockServerClient, createMockServerConsole, createMockServerState, createMockServerStatic, createMockSessionStorage, createMockTransport, createMockUDPSocket, createMockUserInfo, createMockWeapon, createMockWebGL2Context, createMonsterEntityFactory, createMultiplayerTestScenario, createNetChanMock, createPhysicsTestContext, createPlayerEntityFactory, createPlayerStateFactory, createPlaywrightTestClient, createProjectileEntityFactory, createServerSnapshot, createSpawnTestContext, createStorageTestScenario, createTestContext, createTriggerEntityFactory, createVisualTestScenario, makeAxisBrush, makeBrushFromMinsMaxs, makeBspModel, makeLeaf, makeLeafModel, makeNode, makePlane, mockMonsterAttacks, serializeUserInfo, setupBrowserEnvironment, setupMockAudioContext, setupNodeEnvironment, setupWebGPUMocks, simulateFrames, simulateFramesWithMock, simulateHandshake, simulateNetworkCondition, simulatePlayerInput, simulatePlayerJoin, simulatePlayerLeave, simulateServerCommand, simulateServerTick, simulateSnapshotDelivery, teardownBrowserEnvironment, teardownMockAudioContext, throttleBandwidth, verifySnapshotConsistency, waitForGameReady };