quake2ts 0.0.584 → 0.0.586
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +6 -4
- package/packages/engine/dist/tsconfig.tsbuildinfo +1 -1
- package/packages/engine/dist/types/render/__mocks__/frame.d.ts +31 -0
- package/packages/engine/dist/types/render/__mocks__/frame.d.ts.map +1 -0
- package/packages/test-utils/dist/index.cjs +107 -17
- package/packages/test-utils/dist/index.cjs.map +1 -1
- package/packages/test-utils/dist/index.d.cts +57 -3
- package/packages/test-utils/dist/index.d.ts +57 -3
- package/packages/test-utils/dist/index.js +92 -11
- package/packages/test-utils/dist/index.js.map +1 -1
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
export declare const renderFrame: import("vitest").Mock<any[], {
|
|
2
|
+
drawCalls: number;
|
|
3
|
+
vertexCount: number;
|
|
4
|
+
batches: number;
|
|
5
|
+
facesDrawn: number;
|
|
6
|
+
skyDrawn: boolean;
|
|
7
|
+
viewModelDrawn: boolean;
|
|
8
|
+
fps: number;
|
|
9
|
+
shaderSwitches: number;
|
|
10
|
+
visibleSurfaces: number;
|
|
11
|
+
culledSurfaces: number;
|
|
12
|
+
visibleEntities: number;
|
|
13
|
+
culledEntities: number;
|
|
14
|
+
}>;
|
|
15
|
+
export declare const createFrameRenderer: import("vitest").Mock<[], {
|
|
16
|
+
renderFrame: import("vitest").Mock<any[], {
|
|
17
|
+
drawCalls: number;
|
|
18
|
+
vertexCount: number;
|
|
19
|
+
batches: number;
|
|
20
|
+
facesDrawn: number;
|
|
21
|
+
skyDrawn: boolean;
|
|
22
|
+
viewModelDrawn: boolean;
|
|
23
|
+
fps: number;
|
|
24
|
+
shaderSwitches: number;
|
|
25
|
+
visibleSurfaces: number;
|
|
26
|
+
culledSurfaces: number;
|
|
27
|
+
visibleEntities: number;
|
|
28
|
+
culledEntities: number;
|
|
29
|
+
}>;
|
|
30
|
+
}>;
|
|
31
|
+
//# sourceMappingURL=frame.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"frame.d.ts","sourceRoot":"","sources":["../../../../src/render/__mocks__/frame.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,WAAW;;;;;;;;;;;;;EAgBtB,CAAC;AAEH,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;EAE7B,CAAC"}
|
|
@@ -43,6 +43,7 @@ __export(index_exports, {
|
|
|
43
43
|
createBandwidthTestScenario: () => createBandwidthTestScenario,
|
|
44
44
|
createBinaryStreamMock: () => createBinaryStreamMock,
|
|
45
45
|
createBinaryWriterMock: () => createBinaryWriterMock,
|
|
46
|
+
createBounds: () => createBounds,
|
|
46
47
|
createCombatTestContext: () => createCombatTestContext,
|
|
47
48
|
createControlledTimer: () => createControlledTimer,
|
|
48
49
|
createCustomNetworkCondition: () => createCustomNetworkCondition,
|
|
@@ -53,6 +54,8 @@ __export(index_exports, {
|
|
|
53
54
|
createGameStateSnapshotFactory: () => createGameStateSnapshotFactory,
|
|
54
55
|
createInputInjector: () => createInputInjector,
|
|
55
56
|
createItemEntityFactory: () => createItemEntityFactory,
|
|
57
|
+
createMessageReaderMock: () => createMessageReaderMock,
|
|
58
|
+
createMessageWriterMock: () => createMessageWriterMock,
|
|
56
59
|
createMockAI: () => createMockAI,
|
|
57
60
|
createMockAmmoItem: () => createMockAmmoItem,
|
|
58
61
|
createMockArmorItem: () => createMockArmorItem,
|
|
@@ -110,6 +113,7 @@ __export(index_exports, {
|
|
|
110
113
|
createMonsterEntityFactory: () => createMonsterEntityFactory,
|
|
111
114
|
createMultiplayerTestScenario: () => createMultiplayerTestScenario,
|
|
112
115
|
createNetChanMock: () => createNetChanMock,
|
|
116
|
+
createPacketMock: () => createPacketMock,
|
|
113
117
|
createPhysicsTestContext: () => createPhysicsTestContext,
|
|
114
118
|
createPlayerEntityFactory: () => createPlayerEntityFactory,
|
|
115
119
|
createPlayerStateFactory: () => createPlayerStateFactory,
|
|
@@ -118,12 +122,16 @@ __export(index_exports, {
|
|
|
118
122
|
createServerSnapshot: () => createServerSnapshot,
|
|
119
123
|
createSpawnTestContext: () => createSpawnTestContext,
|
|
120
124
|
createStorageTestScenario: () => createStorageTestScenario,
|
|
125
|
+
createSurfaceMock: () => createSurfaceMock,
|
|
121
126
|
createTestContext: () => createTestContext,
|
|
127
|
+
createTraceMock: () => createTraceMock,
|
|
128
|
+
createTransform: () => createTransform,
|
|
122
129
|
createTriggerEntityFactory: () => createTriggerEntityFactory,
|
|
130
|
+
createVector3: () => createVector3,
|
|
123
131
|
createViewTestScenario: () => createViewTestScenario,
|
|
124
132
|
createVisualTestScenario: () => createVisualTestScenario,
|
|
125
|
-
intersects: () =>
|
|
126
|
-
ladderTrace: () =>
|
|
133
|
+
intersects: () => import_shared2.intersects,
|
|
134
|
+
ladderTrace: () => import_shared2.ladderTrace,
|
|
127
135
|
makeAxisBrush: () => makeAxisBrush,
|
|
128
136
|
makeBrushFromMinsMaxs: () => makeBrushFromMinsMaxs,
|
|
129
137
|
makeBspModel: () => makeBspModel,
|
|
@@ -133,6 +141,7 @@ __export(index_exports, {
|
|
|
133
141
|
makePlane: () => makePlane,
|
|
134
142
|
measureSnapshotSize: () => measureSnapshotSize,
|
|
135
143
|
mockMonsterAttacks: () => mockMonsterAttacks,
|
|
144
|
+
randomVector3: () => randomVector3,
|
|
136
145
|
serializeUserInfo: () => serializeUserInfo,
|
|
137
146
|
setupBrowserEnvironment: () => setupBrowserEnvironment,
|
|
138
147
|
setupMockAudioContext: () => setupMockAudioContext,
|
|
@@ -150,7 +159,7 @@ __export(index_exports, {
|
|
|
150
159
|
simulateServerRegistration: () => simulateServerRegistration,
|
|
151
160
|
simulateServerTick: () => simulateServerTick,
|
|
152
161
|
simulateSnapshotDelivery: () => simulateSnapshotDelivery,
|
|
153
|
-
stairTrace: () =>
|
|
162
|
+
stairTrace: () => import_shared2.stairTrace,
|
|
154
163
|
teardownBrowserEnvironment: () => teardownBrowserEnvironment,
|
|
155
164
|
teardownMockAudioContext: () => teardownMockAudioContext,
|
|
156
165
|
teardownNodeEnvironment: () => teardownNodeEnvironment,
|
|
@@ -178,7 +187,9 @@ var createBinaryWriterMock = () => ({
|
|
|
178
187
|
writeInt32: import_vitest.vi.fn(),
|
|
179
188
|
writeUint32: import_vitest.vi.fn(),
|
|
180
189
|
writeFloat: import_vitest.vi.fn(),
|
|
181
|
-
getData: import_vitest.vi.fn(() => new Uint8Array(0))
|
|
190
|
+
getData: import_vitest.vi.fn(() => new Uint8Array(0)),
|
|
191
|
+
writePos: import_vitest.vi.fn(),
|
|
192
|
+
writeDir: import_vitest.vi.fn()
|
|
182
193
|
});
|
|
183
194
|
var createNetChanMock = () => ({
|
|
184
195
|
qport: 1234,
|
|
@@ -240,6 +251,37 @@ var createBinaryStreamMock = () => ({
|
|
|
240
251
|
readPos: import_vitest.vi.fn(),
|
|
241
252
|
readDir: import_vitest.vi.fn()
|
|
242
253
|
});
|
|
254
|
+
var createMessageWriterMock = (overrides) => {
|
|
255
|
+
const mock = createBinaryWriterMock();
|
|
256
|
+
const writer = {
|
|
257
|
+
...mock,
|
|
258
|
+
writeInt: mock.writeInt32,
|
|
259
|
+
// Alias writeInt to writeInt32
|
|
260
|
+
writeVector: mock.writePos,
|
|
261
|
+
// Alias writeVector to writePos
|
|
262
|
+
...overrides
|
|
263
|
+
};
|
|
264
|
+
return writer;
|
|
265
|
+
};
|
|
266
|
+
var createMessageReaderMock = (data) => {
|
|
267
|
+
const mock = createBinaryStreamMock();
|
|
268
|
+
const reader = {
|
|
269
|
+
...mock,
|
|
270
|
+
readInt: mock.readLong,
|
|
271
|
+
// Alias readInt to readLong (int32)
|
|
272
|
+
readVector: mock.readPos
|
|
273
|
+
// Alias readVector to readPos
|
|
274
|
+
};
|
|
275
|
+
return reader;
|
|
276
|
+
};
|
|
277
|
+
var createPacketMock = (overrides) => ({
|
|
278
|
+
type: "data",
|
|
279
|
+
sequence: 0,
|
|
280
|
+
ack: 0,
|
|
281
|
+
qport: 0,
|
|
282
|
+
data: new Uint8Array(0),
|
|
283
|
+
...overrides
|
|
284
|
+
});
|
|
243
285
|
|
|
244
286
|
// src/shared/bsp.ts
|
|
245
287
|
var import_shared = require("@quake2ts/shared");
|
|
@@ -308,6 +350,28 @@ function makeBrushFromMinsMaxs(mins, maxs, contents = import_shared.CONTENTS_SOL
|
|
|
308
350
|
};
|
|
309
351
|
}
|
|
310
352
|
|
|
353
|
+
// src/shared/math.ts
|
|
354
|
+
var createVector3 = (x = 0, y = 0, z = 0) => ({
|
|
355
|
+
x,
|
|
356
|
+
y,
|
|
357
|
+
z
|
|
358
|
+
});
|
|
359
|
+
var createBounds = (mins = createVector3(0, 0, 0), maxs = createVector3(1, 1, 1)) => ({
|
|
360
|
+
mins,
|
|
361
|
+
maxs
|
|
362
|
+
});
|
|
363
|
+
var createTransform = (overrides) => ({
|
|
364
|
+
position: createVector3(),
|
|
365
|
+
rotation: createVector3(),
|
|
366
|
+
scale: createVector3(1, 1, 1),
|
|
367
|
+
...overrides
|
|
368
|
+
});
|
|
369
|
+
var randomVector3 = (min2 = -100, max2 = 100) => ({
|
|
370
|
+
x: Math.random() * (max2 - min2) + min2,
|
|
371
|
+
y: Math.random() * (max2 - min2) + min2,
|
|
372
|
+
z: Math.random() * (max2 - min2) + min2
|
|
373
|
+
});
|
|
374
|
+
|
|
311
375
|
// src/game/factories.ts
|
|
312
376
|
var import_game = require("@quake2ts/game");
|
|
313
377
|
var createPlayerStateFactory = (overrides) => ({
|
|
@@ -463,8 +527,29 @@ function createTriggerEntityFactory(classname, overrides = {}) {
|
|
|
463
527
|
// src/game/helpers.ts
|
|
464
528
|
var import_vitest2 = require("vitest");
|
|
465
529
|
var import_game2 = require("@quake2ts/game");
|
|
466
|
-
var import_shared2 = require("@quake2ts/shared");
|
|
467
530
|
var import_shared3 = require("@quake2ts/shared");
|
|
531
|
+
|
|
532
|
+
// src/shared/collision.ts
|
|
533
|
+
var import_shared2 = require("@quake2ts/shared");
|
|
534
|
+
var createTraceMock = (overrides) => ({
|
|
535
|
+
fraction: 1,
|
|
536
|
+
endpos: { x: 0, y: 0, z: 0 },
|
|
537
|
+
plane: { normal: { x: 0, y: 0, z: 0 }, dist: 0, type: 0, signbits: 0 },
|
|
538
|
+
surface: { flags: 0 },
|
|
539
|
+
contents: 0,
|
|
540
|
+
ent: null,
|
|
541
|
+
allsolid: false,
|
|
542
|
+
startsolid: false,
|
|
543
|
+
...overrides
|
|
544
|
+
});
|
|
545
|
+
var createSurfaceMock = (overrides) => ({
|
|
546
|
+
flags: 0,
|
|
547
|
+
name: "default",
|
|
548
|
+
value: 0,
|
|
549
|
+
...overrides
|
|
550
|
+
});
|
|
551
|
+
|
|
552
|
+
// src/game/helpers.ts
|
|
468
553
|
var createMockEngine = () => ({
|
|
469
554
|
sound: import_vitest2.vi.fn(),
|
|
470
555
|
soundIndex: import_vitest2.vi.fn((sound) => 0),
|
|
@@ -475,7 +560,7 @@ var createMockGame = (seed = 12345) => {
|
|
|
475
560
|
const spawnRegistry = new import_game2.SpawnRegistry();
|
|
476
561
|
const hooks = new import_game2.ScriptHookRegistry();
|
|
477
562
|
const game = {
|
|
478
|
-
random: (0,
|
|
563
|
+
random: (0, import_shared3.createRandomGenerator)({ seed }),
|
|
479
564
|
registerEntitySpawn: import_vitest2.vi.fn((classname, spawnFunc) => {
|
|
480
565
|
spawnRegistry.register(classname, (entity) => spawnFunc(entity));
|
|
481
566
|
}),
|
|
@@ -501,16 +586,12 @@ function createTestContext(options) {
|
|
|
501
586
|
const engine = createMockEngine();
|
|
502
587
|
const seed = options?.seed ?? 12345;
|
|
503
588
|
const { game, spawnRegistry } = createMockGame(seed);
|
|
504
|
-
const traceFn = import_vitest2.vi.fn(
|
|
505
|
-
|
|
506
|
-
|
|
507
|
-
|
|
508
|
-
|
|
509
|
-
|
|
510
|
-
plane: { normal: { x: 0, y: 0, z: 1 }, dist: 0 },
|
|
511
|
-
surfaceFlags: 0,
|
|
512
|
-
contents: 0
|
|
513
|
-
}));
|
|
589
|
+
const traceFn = import_vitest2.vi.fn(
|
|
590
|
+
(start, end, mins, maxs) => createTraceMock({
|
|
591
|
+
endpos: end,
|
|
592
|
+
plane: { normal: { x: 0, y: 0, z: 1 }, dist: 0, type: 0, signbits: 0 }
|
|
593
|
+
})
|
|
594
|
+
);
|
|
514
595
|
const entityList = options?.initialEntities ? [...options.initialEntities] : [];
|
|
515
596
|
const hooks = game.hooks;
|
|
516
597
|
const entities = {
|
|
@@ -557,7 +638,7 @@ function createTestContext(options) {
|
|
|
557
638
|
findByTargetName: import_vitest2.vi.fn(() => []),
|
|
558
639
|
pickTarget: import_vitest2.vi.fn(() => null),
|
|
559
640
|
killBox: import_vitest2.vi.fn(),
|
|
560
|
-
rng: (0,
|
|
641
|
+
rng: (0, import_shared3.createRandomGenerator)({ seed }),
|
|
561
642
|
imports: {
|
|
562
643
|
configstring: import_vitest2.vi.fn(),
|
|
563
644
|
trace: traceFn,
|
|
@@ -3099,6 +3180,7 @@ function createVisualTestScenario(sceneName) {
|
|
|
3099
3180
|
createBandwidthTestScenario,
|
|
3100
3181
|
createBinaryStreamMock,
|
|
3101
3182
|
createBinaryWriterMock,
|
|
3183
|
+
createBounds,
|
|
3102
3184
|
createCombatTestContext,
|
|
3103
3185
|
createControlledTimer,
|
|
3104
3186
|
createCustomNetworkCondition,
|
|
@@ -3109,6 +3191,8 @@ function createVisualTestScenario(sceneName) {
|
|
|
3109
3191
|
createGameStateSnapshotFactory,
|
|
3110
3192
|
createInputInjector,
|
|
3111
3193
|
createItemEntityFactory,
|
|
3194
|
+
createMessageReaderMock,
|
|
3195
|
+
createMessageWriterMock,
|
|
3112
3196
|
createMockAI,
|
|
3113
3197
|
createMockAmmoItem,
|
|
3114
3198
|
createMockArmorItem,
|
|
@@ -3166,6 +3250,7 @@ function createVisualTestScenario(sceneName) {
|
|
|
3166
3250
|
createMonsterEntityFactory,
|
|
3167
3251
|
createMultiplayerTestScenario,
|
|
3168
3252
|
createNetChanMock,
|
|
3253
|
+
createPacketMock,
|
|
3169
3254
|
createPhysicsTestContext,
|
|
3170
3255
|
createPlayerEntityFactory,
|
|
3171
3256
|
createPlayerStateFactory,
|
|
@@ -3174,8 +3259,12 @@ function createVisualTestScenario(sceneName) {
|
|
|
3174
3259
|
createServerSnapshot,
|
|
3175
3260
|
createSpawnTestContext,
|
|
3176
3261
|
createStorageTestScenario,
|
|
3262
|
+
createSurfaceMock,
|
|
3177
3263
|
createTestContext,
|
|
3264
|
+
createTraceMock,
|
|
3265
|
+
createTransform,
|
|
3178
3266
|
createTriggerEntityFactory,
|
|
3267
|
+
createVector3,
|
|
3179
3268
|
createViewTestScenario,
|
|
3180
3269
|
createVisualTestScenario,
|
|
3181
3270
|
intersects,
|
|
@@ -3189,6 +3278,7 @@ function createVisualTestScenario(sceneName) {
|
|
|
3189
3278
|
makePlane,
|
|
3190
3279
|
measureSnapshotSize,
|
|
3191
3280
|
mockMonsterAttacks,
|
|
3281
|
+
randomVector3,
|
|
3192
3282
|
serializeUserInfo,
|
|
3193
3283
|
setupBrowserEnvironment,
|
|
3194
3284
|
setupMockAudioContext,
|