quake2ts 0.0.567 → 0.0.569
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/client/dist/browser/index.global.js +13 -13
- package/packages/client/dist/browser/index.global.js.map +1 -1
- package/packages/client/dist/tsconfig.tsbuildinfo +1 -1
- package/packages/game/dist/browser/index.global.js +5 -5
- package/packages/game/dist/browser/index.global.js.map +1 -1
- package/packages/game/dist/cjs/index.cjs +127 -0
- package/packages/game/dist/cjs/index.cjs.map +1 -1
- package/packages/game/dist/esm/index.js +124 -0
- package/packages/game/dist/esm/index.js.map +1 -1
- package/packages/game/dist/tsconfig.tsbuildinfo +1 -1
- package/packages/game/dist/types/entities/index.d.ts +1 -1
- package/packages/game/dist/types/entities/index.d.ts.map +1 -1
- package/packages/test-utils/dist/index.cjs +275 -73
- package/packages/test-utils/dist/index.cjs.map +1 -1
- package/packages/test-utils/dist/index.d.cts +73 -3
- package/packages/test-utils/dist/index.d.ts +73 -3
- package/packages/test-utils/dist/index.js +263 -70
- package/packages/test-utils/dist/index.js.map +1 -1
|
@@ -150,6 +150,13 @@ function makeBrushFromMinsMaxs(mins, maxs, contents = CONTENTS_SOLID) {
|
|
|
150
150
|
}
|
|
151
151
|
|
|
152
152
|
// src/game/factories.ts
|
|
153
|
+
import {
|
|
154
|
+
Entity,
|
|
155
|
+
MoveType,
|
|
156
|
+
Solid,
|
|
157
|
+
ServerFlags,
|
|
158
|
+
DeadFlag
|
|
159
|
+
} from "@quake2ts/game";
|
|
153
160
|
var createPlayerStateFactory = (overrides) => ({
|
|
154
161
|
pm_type: 0,
|
|
155
162
|
pm_time: 0,
|
|
@@ -232,10 +239,77 @@ var createGameStateSnapshotFactory = (overrides) => ({
|
|
|
232
239
|
pm_type: 0,
|
|
233
240
|
...overrides
|
|
234
241
|
});
|
|
242
|
+
function createEntityFactory(overrides = {}) {
|
|
243
|
+
const ent = new Entity(1);
|
|
244
|
+
Object.assign(ent, {
|
|
245
|
+
classname: "info_null",
|
|
246
|
+
health: 0,
|
|
247
|
+
max_health: 0,
|
|
248
|
+
takedamage: false,
|
|
249
|
+
deadflag: DeadFlag.Alive,
|
|
250
|
+
solid: Solid.Not,
|
|
251
|
+
movetype: MoveType.None,
|
|
252
|
+
flags: 0,
|
|
253
|
+
svflags: 0,
|
|
254
|
+
...overrides
|
|
255
|
+
});
|
|
256
|
+
return ent;
|
|
257
|
+
}
|
|
258
|
+
function createPlayerEntityFactory(overrides = {}) {
|
|
259
|
+
return createEntityFactory({
|
|
260
|
+
classname: "player",
|
|
261
|
+
health: 100,
|
|
262
|
+
max_health: 100,
|
|
263
|
+
takedamage: true,
|
|
264
|
+
solid: Solid.BoundingBox,
|
|
265
|
+
movetype: MoveType.Walk,
|
|
266
|
+
svflags: ServerFlags.Player,
|
|
267
|
+
viewheight: 22,
|
|
268
|
+
...overrides
|
|
269
|
+
});
|
|
270
|
+
}
|
|
271
|
+
function createMonsterEntityFactory(classname, overrides = {}) {
|
|
272
|
+
return createEntityFactory({
|
|
273
|
+
classname,
|
|
274
|
+
health: 100,
|
|
275
|
+
max_health: 100,
|
|
276
|
+
takedamage: true,
|
|
277
|
+
solid: Solid.BoundingBox,
|
|
278
|
+
movetype: MoveType.Step,
|
|
279
|
+
svflags: ServerFlags.Monster,
|
|
280
|
+
deadflag: DeadFlag.Alive,
|
|
281
|
+
...overrides
|
|
282
|
+
});
|
|
283
|
+
}
|
|
284
|
+
function createItemEntityFactory(classname, overrides = {}) {
|
|
285
|
+
return createEntityFactory({
|
|
286
|
+
classname,
|
|
287
|
+
solid: Solid.Trigger,
|
|
288
|
+
movetype: MoveType.Toss,
|
|
289
|
+
...overrides
|
|
290
|
+
});
|
|
291
|
+
}
|
|
292
|
+
function createProjectileEntityFactory(classname, overrides = {}) {
|
|
293
|
+
return createEntityFactory({
|
|
294
|
+
classname,
|
|
295
|
+
solid: Solid.Bsp,
|
|
296
|
+
movetype: MoveType.FlyMissile,
|
|
297
|
+
svflags: ServerFlags.Projectile,
|
|
298
|
+
...overrides
|
|
299
|
+
});
|
|
300
|
+
}
|
|
301
|
+
function createTriggerEntityFactory(classname, overrides = {}) {
|
|
302
|
+
return createEntityFactory({
|
|
303
|
+
classname,
|
|
304
|
+
solid: Solid.Trigger,
|
|
305
|
+
movetype: MoveType.None,
|
|
306
|
+
...overrides
|
|
307
|
+
});
|
|
308
|
+
}
|
|
235
309
|
|
|
236
310
|
// src/game/helpers.ts
|
|
237
311
|
import { vi as vi2 } from "vitest";
|
|
238
|
-
import { Entity, SpawnRegistry, ScriptHookRegistry } from "@quake2ts/game";
|
|
312
|
+
import { Entity as Entity2, SpawnRegistry, ScriptHookRegistry } from "@quake2ts/game";
|
|
239
313
|
import { createRandomGenerator } from "@quake2ts/shared";
|
|
240
314
|
import { intersects, stairTrace, ladderTrace } from "@quake2ts/shared";
|
|
241
315
|
var createMockEngine = () => ({
|
|
@@ -288,7 +362,7 @@ function createTestContext(options) {
|
|
|
288
362
|
const hooks = game.hooks;
|
|
289
363
|
const entities = {
|
|
290
364
|
spawn: vi2.fn(() => {
|
|
291
|
-
const ent = new
|
|
365
|
+
const ent = new Entity2(entityList.length + 1);
|
|
292
366
|
entityList.push(ent);
|
|
293
367
|
hooks.onEntitySpawn(ent);
|
|
294
368
|
return ent;
|
|
@@ -367,7 +441,7 @@ function createTestContext(options) {
|
|
|
367
441
|
deathmatch: false,
|
|
368
442
|
coop: false,
|
|
369
443
|
activeCount: entityList.length,
|
|
370
|
-
world: entityList.find((e) => e.classname === "worldspawn") || new
|
|
444
|
+
world: entityList.find((e) => e.classname === "worldspawn") || new Entity2(0)
|
|
371
445
|
// ... other EntitySystem properties would go here
|
|
372
446
|
};
|
|
373
447
|
return {
|
|
@@ -384,13 +458,113 @@ function createTestContext(options) {
|
|
|
384
458
|
precacheImage: vi2.fn()
|
|
385
459
|
};
|
|
386
460
|
}
|
|
387
|
-
function
|
|
461
|
+
function createSpawnTestContext(mapName) {
|
|
462
|
+
const ctx = createTestContext();
|
|
463
|
+
if (mapName) {
|
|
464
|
+
ctx.game.spawnWorld();
|
|
465
|
+
}
|
|
466
|
+
return ctx;
|
|
467
|
+
}
|
|
468
|
+
function createCombatTestContext() {
|
|
469
|
+
return createTestContext();
|
|
470
|
+
}
|
|
471
|
+
function createPhysicsTestContext() {
|
|
388
472
|
return createTestContext();
|
|
389
473
|
}
|
|
390
474
|
function createEntity() {
|
|
391
|
-
return new
|
|
475
|
+
return new Entity2(1);
|
|
392
476
|
}
|
|
393
477
|
|
|
478
|
+
// src/game/mocks/ai.ts
|
|
479
|
+
import { vi as vi3 } from "vitest";
|
|
480
|
+
function createMockAI(overrides = {}) {
|
|
481
|
+
return {
|
|
482
|
+
checkAttack: vi3.fn(() => false),
|
|
483
|
+
findTarget: vi3.fn(() => null),
|
|
484
|
+
visible: vi3.fn(() => true),
|
|
485
|
+
infront: vi3.fn(() => true),
|
|
486
|
+
...overrides
|
|
487
|
+
};
|
|
488
|
+
}
|
|
489
|
+
function createMockMonsterAI(overrides = {}) {
|
|
490
|
+
return {
|
|
491
|
+
stand: vi3.fn(),
|
|
492
|
+
walk: vi3.fn(),
|
|
493
|
+
run: vi3.fn(),
|
|
494
|
+
dodge: vi3.fn(),
|
|
495
|
+
attack: vi3.fn(),
|
|
496
|
+
melee: vi3.fn(),
|
|
497
|
+
sight: vi3.fn(),
|
|
498
|
+
idle: vi3.fn(),
|
|
499
|
+
...overrides
|
|
500
|
+
};
|
|
501
|
+
}
|
|
502
|
+
function createMockMonsterMove(first, last, think, action) {
|
|
503
|
+
const frames = [];
|
|
504
|
+
for (let i = first; i <= last; i++) {
|
|
505
|
+
frames.push({
|
|
506
|
+
ai: action,
|
|
507
|
+
dist: 0,
|
|
508
|
+
think
|
|
509
|
+
});
|
|
510
|
+
}
|
|
511
|
+
return {
|
|
512
|
+
firstframe: first,
|
|
513
|
+
lastframe: last,
|
|
514
|
+
frames,
|
|
515
|
+
endfunc: null
|
|
516
|
+
};
|
|
517
|
+
}
|
|
518
|
+
|
|
519
|
+
// src/game/mocks/combat.ts
|
|
520
|
+
import { vi as vi4 } from "vitest";
|
|
521
|
+
import { DamageMod } from "@quake2ts/game";
|
|
522
|
+
function createMockDamageInfo(overrides = {}) {
|
|
523
|
+
return {
|
|
524
|
+
damage: 10,
|
|
525
|
+
mod: DamageMod.UNKNOWN,
|
|
526
|
+
knockback: 0,
|
|
527
|
+
attacker: null,
|
|
528
|
+
inflictor: null,
|
|
529
|
+
dir: null,
|
|
530
|
+
point: null,
|
|
531
|
+
...overrides
|
|
532
|
+
};
|
|
533
|
+
}
|
|
534
|
+
var WEAPON_NAMES = {
|
|
535
|
+
"weapon_blaster": "Blaster",
|
|
536
|
+
"weapon_shotgun": "Shotgun",
|
|
537
|
+
"weapon_supershotgun": "Super Shotgun",
|
|
538
|
+
"weapon_machinegun": "Machinegun",
|
|
539
|
+
"weapon_chaingun": "Chaingun",
|
|
540
|
+
"weapon_grenadelauncher": "Grenade Launcher",
|
|
541
|
+
"weapon_rocketlauncher": "Rocket Launcher",
|
|
542
|
+
"weapon_hyperblaster": "HyperBlaster",
|
|
543
|
+
"weapon_railgun": "Railgun",
|
|
544
|
+
"weapon_bfg": "BFG10K"
|
|
545
|
+
};
|
|
546
|
+
function createMockWeapon(name = "Mock Weapon") {
|
|
547
|
+
const displayName = WEAPON_NAMES[name] || name;
|
|
548
|
+
return {
|
|
549
|
+
name: displayName,
|
|
550
|
+
ammoType: "bullets",
|
|
551
|
+
ammoUse: 1,
|
|
552
|
+
selection: vi4.fn(),
|
|
553
|
+
think: vi4.fn(),
|
|
554
|
+
command: vi4.fn()
|
|
555
|
+
};
|
|
556
|
+
}
|
|
557
|
+
var mockMonsterAttacks = {
|
|
558
|
+
fireBlaster: vi4.fn(),
|
|
559
|
+
fireRocket: vi4.fn(),
|
|
560
|
+
fireGrenade: vi4.fn(),
|
|
561
|
+
fireHeat: vi4.fn(),
|
|
562
|
+
fireBullet: vi4.fn(),
|
|
563
|
+
fireShotgun: vi4.fn(),
|
|
564
|
+
fireRailgun: vi4.fn(),
|
|
565
|
+
fireBFG: vi4.fn()
|
|
566
|
+
};
|
|
567
|
+
|
|
394
568
|
// src/game/mocks.ts
|
|
395
569
|
function createMockGameState(overrides) {
|
|
396
570
|
return {
|
|
@@ -403,7 +577,7 @@ function createMockGameState(overrides) {
|
|
|
403
577
|
}
|
|
404
578
|
|
|
405
579
|
// src/server/mocks/transport.ts
|
|
406
|
-
import { vi as
|
|
580
|
+
import { vi as vi5 } from "vitest";
|
|
407
581
|
var MockTransport = class {
|
|
408
582
|
constructor() {
|
|
409
583
|
this.address = "127.0.0.1";
|
|
@@ -411,11 +585,11 @@ var MockTransport = class {
|
|
|
411
585
|
this.sentMessages = [];
|
|
412
586
|
this.receivedMessages = [];
|
|
413
587
|
this.listening = false;
|
|
414
|
-
this.listenSpy =
|
|
588
|
+
this.listenSpy = vi5.fn().mockImplementation(async (port) => {
|
|
415
589
|
this.port = port;
|
|
416
590
|
this.listening = true;
|
|
417
591
|
});
|
|
418
|
-
this.closeSpy =
|
|
592
|
+
this.closeSpy = vi5.fn().mockImplementation(() => {
|
|
419
593
|
this.listening = false;
|
|
420
594
|
});
|
|
421
595
|
}
|
|
@@ -471,11 +645,11 @@ var MockTransport = class {
|
|
|
471
645
|
};
|
|
472
646
|
function createMockUDPSocket(overrides) {
|
|
473
647
|
const socket = {
|
|
474
|
-
send:
|
|
475
|
-
on:
|
|
476
|
-
close:
|
|
477
|
-
bind:
|
|
478
|
-
address:
|
|
648
|
+
send: vi5.fn(),
|
|
649
|
+
on: vi5.fn(),
|
|
650
|
+
close: vi5.fn(),
|
|
651
|
+
bind: vi5.fn(),
|
|
652
|
+
address: vi5.fn().mockReturnValue({ address: "127.0.0.1", family: "IPv4", port: 0 }),
|
|
479
653
|
...overrides
|
|
480
654
|
};
|
|
481
655
|
return socket;
|
|
@@ -490,11 +664,23 @@ function createMockTransport(address = "127.0.0.1", port = 27910, overrides) {
|
|
|
490
664
|
Object.assign(transport, overrides);
|
|
491
665
|
return transport;
|
|
492
666
|
}
|
|
667
|
+
function createMockNetDriver(overrides) {
|
|
668
|
+
return {
|
|
669
|
+
connect: vi5.fn().mockResolvedValue(void 0),
|
|
670
|
+
disconnect: vi5.fn(),
|
|
671
|
+
send: vi5.fn(),
|
|
672
|
+
onMessage: vi5.fn(),
|
|
673
|
+
onClose: vi5.fn(),
|
|
674
|
+
onError: vi5.fn(),
|
|
675
|
+
isConnected: vi5.fn().mockReturnValue(true),
|
|
676
|
+
...overrides
|
|
677
|
+
};
|
|
678
|
+
}
|
|
493
679
|
|
|
494
680
|
// src/server/mocks/state.ts
|
|
495
681
|
import { ServerState, ClientState } from "@quake2ts/server";
|
|
496
682
|
import { MAX_CONFIGSTRINGS, MAX_EDICTS } from "@quake2ts/shared";
|
|
497
|
-
import { vi as
|
|
683
|
+
import { vi as vi6 } from "vitest";
|
|
498
684
|
function createMockServerState(overrides) {
|
|
499
685
|
return {
|
|
500
686
|
state: ServerState.Game,
|
|
@@ -524,15 +710,7 @@ function createMockServerStatic(maxClients = 16, overrides) {
|
|
|
524
710
|
};
|
|
525
711
|
}
|
|
526
712
|
function createMockServerClient(clientNum, overrides) {
|
|
527
|
-
const mockNet =
|
|
528
|
-
connect: vi4.fn(),
|
|
529
|
-
disconnect: vi4.fn(),
|
|
530
|
-
send: vi4.fn(),
|
|
531
|
-
onMessage: vi4.fn(),
|
|
532
|
-
onClose: vi4.fn(),
|
|
533
|
-
onError: vi4.fn(),
|
|
534
|
-
isConnected: vi4.fn().mockReturnValue(true)
|
|
535
|
-
};
|
|
713
|
+
const mockNet = createMockNetDriver();
|
|
536
714
|
return {
|
|
537
715
|
index: clientNum,
|
|
538
716
|
state: ClientState.Connected,
|
|
@@ -544,13 +722,13 @@ function createMockServerClient(clientNum, overrides) {
|
|
|
544
722
|
incomingSequence: 0,
|
|
545
723
|
outgoingSequence: 0,
|
|
546
724
|
lastReceived: 0,
|
|
547
|
-
process:
|
|
548
|
-
transmit:
|
|
549
|
-
writeReliableByte:
|
|
550
|
-
writeReliableShort:
|
|
551
|
-
writeReliableLong:
|
|
552
|
-
writeReliableString:
|
|
553
|
-
writeReliableData:
|
|
725
|
+
process: vi6.fn(),
|
|
726
|
+
transmit: vi6.fn(),
|
|
727
|
+
writeReliableByte: vi6.fn(),
|
|
728
|
+
writeReliableShort: vi6.fn(),
|
|
729
|
+
writeReliableLong: vi6.fn(),
|
|
730
|
+
writeReliableString: vi6.fn(),
|
|
731
|
+
writeReliableData: vi6.fn()
|
|
554
732
|
},
|
|
555
733
|
// Cast as any because NetChan might be complex to fully mock here
|
|
556
734
|
userInfo: "",
|
|
@@ -592,13 +770,13 @@ function createMockServerClient(clientNum, overrides) {
|
|
|
592
770
|
}
|
|
593
771
|
function createMockServer(overrides) {
|
|
594
772
|
return {
|
|
595
|
-
start:
|
|
596
|
-
stop:
|
|
597
|
-
multicast:
|
|
598
|
-
unicast:
|
|
599
|
-
configstring:
|
|
600
|
-
kickPlayer:
|
|
601
|
-
changeMap:
|
|
773
|
+
start: vi6.fn().mockResolvedValue(void 0),
|
|
774
|
+
stop: vi6.fn(),
|
|
775
|
+
multicast: vi6.fn(),
|
|
776
|
+
unicast: vi6.fn(),
|
|
777
|
+
configstring: vi6.fn(),
|
|
778
|
+
kickPlayer: vi6.fn(),
|
|
779
|
+
changeMap: vi6.fn().mockResolvedValue(void 0),
|
|
602
780
|
...overrides
|
|
603
781
|
};
|
|
604
782
|
}
|
|
@@ -660,19 +838,19 @@ async function simulateHandshake(client, server) {
|
|
|
660
838
|
}
|
|
661
839
|
|
|
662
840
|
// src/server/mocks/commands.ts
|
|
663
|
-
import { vi as
|
|
841
|
+
import { vi as vi7 } from "vitest";
|
|
664
842
|
function createMockServerConsole(overrides) {
|
|
665
843
|
const outputBuffer = [];
|
|
666
844
|
const commandBuffer = [];
|
|
667
845
|
return {
|
|
668
|
-
exec:
|
|
846
|
+
exec: vi7.fn((cmd) => {
|
|
669
847
|
commandBuffer.push(cmd);
|
|
670
848
|
return `Executed: ${cmd}`;
|
|
671
849
|
}),
|
|
672
|
-
print:
|
|
850
|
+
print: vi7.fn((text) => {
|
|
673
851
|
outputBuffer.push(text);
|
|
674
852
|
}),
|
|
675
|
-
broadcast:
|
|
853
|
+
broadcast: vi7.fn((text) => {
|
|
676
854
|
outputBuffer.push(`Broadcast: ${text}`);
|
|
677
855
|
}),
|
|
678
856
|
commandBuffer,
|
|
@@ -685,13 +863,13 @@ function createMockRConClient(password = "") {
|
|
|
685
863
|
connected: false,
|
|
686
864
|
lastCommand: "",
|
|
687
865
|
lastResponse: "",
|
|
688
|
-
connect:
|
|
866
|
+
connect: vi7.fn(async (address, port, pwd) => {
|
|
689
867
|
return pwd === password;
|
|
690
868
|
}),
|
|
691
|
-
sendCommand:
|
|
869
|
+
sendCommand: vi7.fn(async (cmd) => {
|
|
692
870
|
return `RCON Response for: ${cmd}`;
|
|
693
871
|
}),
|
|
694
|
-
disconnect:
|
|
872
|
+
disconnect: vi7.fn()
|
|
695
873
|
};
|
|
696
874
|
}
|
|
697
875
|
function simulateServerCommand(server, command) {
|
|
@@ -1334,10 +1512,10 @@ function createMockImage(width, height, src) {
|
|
|
1334
1512
|
}
|
|
1335
1513
|
|
|
1336
1514
|
// src/engine/mocks/webgpu.ts
|
|
1337
|
-
import { vi as
|
|
1515
|
+
import { vi as vi8 } from "vitest";
|
|
1338
1516
|
function createMockGPUAdapter() {
|
|
1339
1517
|
return {
|
|
1340
|
-
requestDevice:
|
|
1518
|
+
requestDevice: vi8.fn().mockResolvedValue(createMockGPUDevice()),
|
|
1341
1519
|
features: /* @__PURE__ */ new Set(),
|
|
1342
1520
|
limits: {}
|
|
1343
1521
|
};
|
|
@@ -1347,40 +1525,40 @@ function createMockGPUDevice() {
|
|
|
1347
1525
|
features: /* @__PURE__ */ new Set(),
|
|
1348
1526
|
limits: {},
|
|
1349
1527
|
queue: {
|
|
1350
|
-
submit:
|
|
1351
|
-
writeBuffer:
|
|
1352
|
-
writeTexture:
|
|
1353
|
-
copyExternalImageToTexture:
|
|
1354
|
-
},
|
|
1355
|
-
createCommandEncoder:
|
|
1356
|
-
beginRenderPass:
|
|
1357
|
-
setPipeline:
|
|
1358
|
-
draw:
|
|
1359
|
-
end:
|
|
1528
|
+
submit: vi8.fn(),
|
|
1529
|
+
writeBuffer: vi8.fn(),
|
|
1530
|
+
writeTexture: vi8.fn(),
|
|
1531
|
+
copyExternalImageToTexture: vi8.fn()
|
|
1532
|
+
},
|
|
1533
|
+
createCommandEncoder: vi8.fn().mockReturnValue({
|
|
1534
|
+
beginRenderPass: vi8.fn().mockReturnValue({
|
|
1535
|
+
setPipeline: vi8.fn(),
|
|
1536
|
+
draw: vi8.fn(),
|
|
1537
|
+
end: vi8.fn()
|
|
1360
1538
|
}),
|
|
1361
|
-
finish:
|
|
1539
|
+
finish: vi8.fn()
|
|
1362
1540
|
}),
|
|
1363
|
-
createRenderPipeline:
|
|
1364
|
-
createShaderModule:
|
|
1365
|
-
createBindGroup:
|
|
1366
|
-
createBindGroupLayout:
|
|
1367
|
-
createBuffer:
|
|
1368
|
-
createTexture:
|
|
1369
|
-
createSampler:
|
|
1541
|
+
createRenderPipeline: vi8.fn(),
|
|
1542
|
+
createShaderModule: vi8.fn(),
|
|
1543
|
+
createBindGroup: vi8.fn(),
|
|
1544
|
+
createBindGroupLayout: vi8.fn(),
|
|
1545
|
+
createBuffer: vi8.fn(),
|
|
1546
|
+
createTexture: vi8.fn(),
|
|
1547
|
+
createSampler: vi8.fn()
|
|
1370
1548
|
};
|
|
1371
1549
|
}
|
|
1372
1550
|
function createMockGPUCanvasContext() {
|
|
1373
1551
|
return {
|
|
1374
|
-
configure:
|
|
1375
|
-
unconfigure:
|
|
1376
|
-
getCurrentTexture:
|
|
1552
|
+
configure: vi8.fn(),
|
|
1553
|
+
unconfigure: vi8.fn(),
|
|
1554
|
+
getCurrentTexture: vi8.fn()
|
|
1377
1555
|
};
|
|
1378
1556
|
}
|
|
1379
1557
|
function setupWebGPUMocks() {
|
|
1380
1558
|
const mockAdapter = createMockGPUAdapter();
|
|
1381
1559
|
const mockGpu = {
|
|
1382
|
-
requestAdapter:
|
|
1383
|
-
getPreferredCanvasFormat:
|
|
1560
|
+
requestAdapter: vi8.fn().mockResolvedValue(mockAdapter),
|
|
1561
|
+
getPreferredCanvasFormat: vi8.fn().mockReturnValue("bgra8unorm")
|
|
1384
1562
|
};
|
|
1385
1563
|
Object.defineProperty(global.navigator, "gpu", {
|
|
1386
1564
|
value: mockGpu,
|
|
@@ -1996,16 +2174,21 @@ export {
|
|
|
1996
2174
|
compareScreenshots,
|
|
1997
2175
|
createBinaryStreamMock,
|
|
1998
2176
|
createBinaryWriterMock,
|
|
2177
|
+
createCombatTestContext,
|
|
1999
2178
|
createControlledTimer,
|
|
2000
2179
|
createCustomNetworkCondition,
|
|
2001
2180
|
createDeltaSnapshot,
|
|
2002
2181
|
createEntity,
|
|
2182
|
+
createEntityFactory,
|
|
2003
2183
|
createEntityStateFactory,
|
|
2004
2184
|
createGameStateSnapshotFactory,
|
|
2185
|
+
createItemEntityFactory,
|
|
2186
|
+
createMockAI,
|
|
2005
2187
|
createMockAudioContext,
|
|
2006
2188
|
createMockCanvas,
|
|
2007
2189
|
createMockCanvasContext2D,
|
|
2008
2190
|
createMockConnection,
|
|
2191
|
+
createMockDamageInfo,
|
|
2009
2192
|
createMockEngine,
|
|
2010
2193
|
createMockGPUAdapter,
|
|
2011
2194
|
createMockGPUCanvasContext,
|
|
@@ -2017,6 +2200,9 @@ export {
|
|
|
2017
2200
|
createMockImageData,
|
|
2018
2201
|
createMockIndexedDB,
|
|
2019
2202
|
createMockLocalStorage,
|
|
2203
|
+
createMockMonsterAI,
|
|
2204
|
+
createMockMonsterMove,
|
|
2205
|
+
createMockNetDriver,
|
|
2020
2206
|
createMockNetworkAddress,
|
|
2021
2207
|
createMockPerformance,
|
|
2022
2208
|
createMockRAF,
|
|
@@ -2030,15 +2216,21 @@ export {
|
|
|
2030
2216
|
createMockTransport,
|
|
2031
2217
|
createMockUDPSocket,
|
|
2032
2218
|
createMockUserInfo,
|
|
2219
|
+
createMockWeapon,
|
|
2033
2220
|
createMockWebGL2Context,
|
|
2221
|
+
createMonsterEntityFactory,
|
|
2034
2222
|
createMultiplayerTestScenario,
|
|
2035
2223
|
createNetChanMock,
|
|
2224
|
+
createPhysicsTestContext,
|
|
2225
|
+
createPlayerEntityFactory,
|
|
2036
2226
|
createPlayerStateFactory,
|
|
2037
2227
|
createPlaywrightTestClient,
|
|
2228
|
+
createProjectileEntityFactory,
|
|
2038
2229
|
createServerSnapshot,
|
|
2039
|
-
|
|
2230
|
+
createSpawnTestContext,
|
|
2040
2231
|
createStorageTestScenario,
|
|
2041
2232
|
createTestContext,
|
|
2233
|
+
createTriggerEntityFactory,
|
|
2042
2234
|
createVisualTestScenario,
|
|
2043
2235
|
intersects,
|
|
2044
2236
|
ladderTrace,
|
|
@@ -2049,6 +2241,7 @@ export {
|
|
|
2049
2241
|
makeLeafModel,
|
|
2050
2242
|
makeNode,
|
|
2051
2243
|
makePlane,
|
|
2244
|
+
mockMonsterAttacks,
|
|
2052
2245
|
serializeUserInfo,
|
|
2053
2246
|
setupBrowserEnvironment,
|
|
2054
2247
|
setupMockAudioContext,
|