quake2ts 0.0.568 → 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 +267 -71
- package/packages/test-utils/dist/index.cjs.map +1 -1
- package/packages/test-utils/dist/index.d.cts +68 -3
- package/packages/test-utils/dist/index.d.ts +68 -3
- package/packages/test-utils/dist/index.js +256 -68
- 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,12 +458,112 @@ 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);
|
|
476
|
+
}
|
|
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
|
+
};
|
|
392
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
|
+
};
|
|
393
567
|
|
|
394
568
|
// src/game/mocks.ts
|
|
395
569
|
function createMockGameState(overrides) {
|
|
@@ -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;
|
|
@@ -492,13 +666,13 @@ function createMockTransport(address = "127.0.0.1", port = 27910, overrides) {
|
|
|
492
666
|
}
|
|
493
667
|
function createMockNetDriver(overrides) {
|
|
494
668
|
return {
|
|
495
|
-
connect:
|
|
496
|
-
disconnect:
|
|
497
|
-
send:
|
|
498
|
-
onMessage:
|
|
499
|
-
onClose:
|
|
500
|
-
onError:
|
|
501
|
-
isConnected:
|
|
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),
|
|
502
676
|
...overrides
|
|
503
677
|
};
|
|
504
678
|
}
|
|
@@ -506,7 +680,7 @@ function createMockNetDriver(overrides) {
|
|
|
506
680
|
// src/server/mocks/state.ts
|
|
507
681
|
import { ServerState, ClientState } from "@quake2ts/server";
|
|
508
682
|
import { MAX_CONFIGSTRINGS, MAX_EDICTS } from "@quake2ts/shared";
|
|
509
|
-
import { vi as
|
|
683
|
+
import { vi as vi6 } from "vitest";
|
|
510
684
|
function createMockServerState(overrides) {
|
|
511
685
|
return {
|
|
512
686
|
state: ServerState.Game,
|
|
@@ -548,13 +722,13 @@ function createMockServerClient(clientNum, overrides) {
|
|
|
548
722
|
incomingSequence: 0,
|
|
549
723
|
outgoingSequence: 0,
|
|
550
724
|
lastReceived: 0,
|
|
551
|
-
process:
|
|
552
|
-
transmit:
|
|
553
|
-
writeReliableByte:
|
|
554
|
-
writeReliableShort:
|
|
555
|
-
writeReliableLong:
|
|
556
|
-
writeReliableString:
|
|
557
|
-
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()
|
|
558
732
|
},
|
|
559
733
|
// Cast as any because NetChan might be complex to fully mock here
|
|
560
734
|
userInfo: "",
|
|
@@ -596,13 +770,13 @@ function createMockServerClient(clientNum, overrides) {
|
|
|
596
770
|
}
|
|
597
771
|
function createMockServer(overrides) {
|
|
598
772
|
return {
|
|
599
|
-
start:
|
|
600
|
-
stop:
|
|
601
|
-
multicast:
|
|
602
|
-
unicast:
|
|
603
|
-
configstring:
|
|
604
|
-
kickPlayer:
|
|
605
|
-
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),
|
|
606
780
|
...overrides
|
|
607
781
|
};
|
|
608
782
|
}
|
|
@@ -664,19 +838,19 @@ async function simulateHandshake(client, server) {
|
|
|
664
838
|
}
|
|
665
839
|
|
|
666
840
|
// src/server/mocks/commands.ts
|
|
667
|
-
import { vi as
|
|
841
|
+
import { vi as vi7 } from "vitest";
|
|
668
842
|
function createMockServerConsole(overrides) {
|
|
669
843
|
const outputBuffer = [];
|
|
670
844
|
const commandBuffer = [];
|
|
671
845
|
return {
|
|
672
|
-
exec:
|
|
846
|
+
exec: vi7.fn((cmd) => {
|
|
673
847
|
commandBuffer.push(cmd);
|
|
674
848
|
return `Executed: ${cmd}`;
|
|
675
849
|
}),
|
|
676
|
-
print:
|
|
850
|
+
print: vi7.fn((text) => {
|
|
677
851
|
outputBuffer.push(text);
|
|
678
852
|
}),
|
|
679
|
-
broadcast:
|
|
853
|
+
broadcast: vi7.fn((text) => {
|
|
680
854
|
outputBuffer.push(`Broadcast: ${text}`);
|
|
681
855
|
}),
|
|
682
856
|
commandBuffer,
|
|
@@ -689,13 +863,13 @@ function createMockRConClient(password = "") {
|
|
|
689
863
|
connected: false,
|
|
690
864
|
lastCommand: "",
|
|
691
865
|
lastResponse: "",
|
|
692
|
-
connect:
|
|
866
|
+
connect: vi7.fn(async (address, port, pwd) => {
|
|
693
867
|
return pwd === password;
|
|
694
868
|
}),
|
|
695
|
-
sendCommand:
|
|
869
|
+
sendCommand: vi7.fn(async (cmd) => {
|
|
696
870
|
return `RCON Response for: ${cmd}`;
|
|
697
871
|
}),
|
|
698
|
-
disconnect:
|
|
872
|
+
disconnect: vi7.fn()
|
|
699
873
|
};
|
|
700
874
|
}
|
|
701
875
|
function simulateServerCommand(server, command) {
|
|
@@ -1338,10 +1512,10 @@ function createMockImage(width, height, src) {
|
|
|
1338
1512
|
}
|
|
1339
1513
|
|
|
1340
1514
|
// src/engine/mocks/webgpu.ts
|
|
1341
|
-
import { vi as
|
|
1515
|
+
import { vi as vi8 } from "vitest";
|
|
1342
1516
|
function createMockGPUAdapter() {
|
|
1343
1517
|
return {
|
|
1344
|
-
requestDevice:
|
|
1518
|
+
requestDevice: vi8.fn().mockResolvedValue(createMockGPUDevice()),
|
|
1345
1519
|
features: /* @__PURE__ */ new Set(),
|
|
1346
1520
|
limits: {}
|
|
1347
1521
|
};
|
|
@@ -1351,40 +1525,40 @@ function createMockGPUDevice() {
|
|
|
1351
1525
|
features: /* @__PURE__ */ new Set(),
|
|
1352
1526
|
limits: {},
|
|
1353
1527
|
queue: {
|
|
1354
|
-
submit:
|
|
1355
|
-
writeBuffer:
|
|
1356
|
-
writeTexture:
|
|
1357
|
-
copyExternalImageToTexture:
|
|
1358
|
-
},
|
|
1359
|
-
createCommandEncoder:
|
|
1360
|
-
beginRenderPass:
|
|
1361
|
-
setPipeline:
|
|
1362
|
-
draw:
|
|
1363
|
-
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()
|
|
1364
1538
|
}),
|
|
1365
|
-
finish:
|
|
1539
|
+
finish: vi8.fn()
|
|
1366
1540
|
}),
|
|
1367
|
-
createRenderPipeline:
|
|
1368
|
-
createShaderModule:
|
|
1369
|
-
createBindGroup:
|
|
1370
|
-
createBindGroupLayout:
|
|
1371
|
-
createBuffer:
|
|
1372
|
-
createTexture:
|
|
1373
|
-
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()
|
|
1374
1548
|
};
|
|
1375
1549
|
}
|
|
1376
1550
|
function createMockGPUCanvasContext() {
|
|
1377
1551
|
return {
|
|
1378
|
-
configure:
|
|
1379
|
-
unconfigure:
|
|
1380
|
-
getCurrentTexture:
|
|
1552
|
+
configure: vi8.fn(),
|
|
1553
|
+
unconfigure: vi8.fn(),
|
|
1554
|
+
getCurrentTexture: vi8.fn()
|
|
1381
1555
|
};
|
|
1382
1556
|
}
|
|
1383
1557
|
function setupWebGPUMocks() {
|
|
1384
1558
|
const mockAdapter = createMockGPUAdapter();
|
|
1385
1559
|
const mockGpu = {
|
|
1386
|
-
requestAdapter:
|
|
1387
|
-
getPreferredCanvasFormat:
|
|
1560
|
+
requestAdapter: vi8.fn().mockResolvedValue(mockAdapter),
|
|
1561
|
+
getPreferredCanvasFormat: vi8.fn().mockReturnValue("bgra8unorm")
|
|
1388
1562
|
};
|
|
1389
1563
|
Object.defineProperty(global.navigator, "gpu", {
|
|
1390
1564
|
value: mockGpu,
|
|
@@ -2000,16 +2174,21 @@ export {
|
|
|
2000
2174
|
compareScreenshots,
|
|
2001
2175
|
createBinaryStreamMock,
|
|
2002
2176
|
createBinaryWriterMock,
|
|
2177
|
+
createCombatTestContext,
|
|
2003
2178
|
createControlledTimer,
|
|
2004
2179
|
createCustomNetworkCondition,
|
|
2005
2180
|
createDeltaSnapshot,
|
|
2006
2181
|
createEntity,
|
|
2182
|
+
createEntityFactory,
|
|
2007
2183
|
createEntityStateFactory,
|
|
2008
2184
|
createGameStateSnapshotFactory,
|
|
2185
|
+
createItemEntityFactory,
|
|
2186
|
+
createMockAI,
|
|
2009
2187
|
createMockAudioContext,
|
|
2010
2188
|
createMockCanvas,
|
|
2011
2189
|
createMockCanvasContext2D,
|
|
2012
2190
|
createMockConnection,
|
|
2191
|
+
createMockDamageInfo,
|
|
2013
2192
|
createMockEngine,
|
|
2014
2193
|
createMockGPUAdapter,
|
|
2015
2194
|
createMockGPUCanvasContext,
|
|
@@ -2021,6 +2200,8 @@ export {
|
|
|
2021
2200
|
createMockImageData,
|
|
2022
2201
|
createMockIndexedDB,
|
|
2023
2202
|
createMockLocalStorage,
|
|
2203
|
+
createMockMonsterAI,
|
|
2204
|
+
createMockMonsterMove,
|
|
2024
2205
|
createMockNetDriver,
|
|
2025
2206
|
createMockNetworkAddress,
|
|
2026
2207
|
createMockPerformance,
|
|
@@ -2035,15 +2216,21 @@ export {
|
|
|
2035
2216
|
createMockTransport,
|
|
2036
2217
|
createMockUDPSocket,
|
|
2037
2218
|
createMockUserInfo,
|
|
2219
|
+
createMockWeapon,
|
|
2038
2220
|
createMockWebGL2Context,
|
|
2221
|
+
createMonsterEntityFactory,
|
|
2039
2222
|
createMultiplayerTestScenario,
|
|
2040
2223
|
createNetChanMock,
|
|
2224
|
+
createPhysicsTestContext,
|
|
2225
|
+
createPlayerEntityFactory,
|
|
2041
2226
|
createPlayerStateFactory,
|
|
2042
2227
|
createPlaywrightTestClient,
|
|
2228
|
+
createProjectileEntityFactory,
|
|
2043
2229
|
createServerSnapshot,
|
|
2044
|
-
|
|
2230
|
+
createSpawnTestContext,
|
|
2045
2231
|
createStorageTestScenario,
|
|
2046
2232
|
createTestContext,
|
|
2233
|
+
createTriggerEntityFactory,
|
|
2047
2234
|
createVisualTestScenario,
|
|
2048
2235
|
intersects,
|
|
2049
2236
|
ladderTrace,
|
|
@@ -2054,6 +2241,7 @@ export {
|
|
|
2054
2241
|
makeLeafModel,
|
|
2055
2242
|
makeNode,
|
|
2056
2243
|
makePlane,
|
|
2244
|
+
mockMonsterAttacks,
|
|
2057
2245
|
serializeUserInfo,
|
|
2058
2246
|
setupBrowserEnvironment,
|
|
2059
2247
|
setupMockAudioContext,
|