@quake2ts/test-utils 0.0.740 → 0.0.741

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/dist/index.cjs CHANGED
@@ -55,6 +55,7 @@ __export(index_exports, {
55
55
  ParticleSystem: () => import_engine7.ParticleSystem,
56
56
  ShaderProgram: () => import_engine5.ShaderProgram,
57
57
  VertexBuffer: () => import_engine4.VertexBuffer,
58
+ ZERO_VEC3: () => import_shared2.ZERO_VEC3,
58
59
  captureAudioEvents: () => captureAudioEvents,
59
60
  captureCanvasDrawCalls: () => captureCanvasDrawCalls,
60
61
  captureFramebufferAsPNG: () => captureFramebufferAsPNG,
@@ -228,8 +229,8 @@ __export(index_exports, {
228
229
  findPakFile: () => findPakFile,
229
230
  getSnapshotPath: () => getSnapshotPath,
230
231
  initHeadlessWebGPU: () => initHeadlessWebGPU,
231
- intersects: () => import_shared2.intersects,
232
- ladderTrace: () => import_shared2.ladderTrace,
232
+ intersects: () => import_shared3.intersects,
233
+ ladderTrace: () => import_shared3.ladderTrace,
233
234
  loadMapFromPak: () => loadMapFromPak,
234
235
  loadPNG: () => loadPNG,
235
236
  makeAxisBrush: () => makeAxisBrush,
@@ -272,7 +273,8 @@ __export(index_exports, {
272
273
  simulateServerRegistration: () => simulateServerRegistration,
273
274
  simulateServerTick: () => simulateServerTick,
274
275
  simulateSnapshotDelivery: () => simulateSnapshotDelivery,
275
- stairTrace: () => import_shared2.stairTrace,
276
+ spawnEntity: () => spawnEntity,
277
+ stairTrace: () => import_shared3.stairTrace,
276
278
  takeScreenshot: () => takeScreenshot,
277
279
  teardownBrowserEnvironment: () => teardownBrowserEnvironment,
278
280
  teardownMockAudioContext: () => teardownMockAudioContext,
@@ -508,6 +510,7 @@ function loadMapFromPak(mapName) {
508
510
  }
509
511
 
510
512
  // src/shared/math.ts
513
+ var import_shared2 = require("@quake2ts/shared");
511
514
  var createVector3 = (x = 0, y = 0, z = 0) => ({
512
515
  x,
513
516
  y,
@@ -530,7 +533,7 @@ var randomVector3 = (min = -100, max = 100) => ({
530
533
  });
531
534
 
532
535
  // src/shared/collision.ts
533
- var import_shared2 = require("@quake2ts/shared");
536
+ var import_shared3 = require("@quake2ts/shared");
534
537
  var createTraceMock = (overrides) => ({
535
538
  fraction: 1,
536
539
  endpos: { x: 0, y: 0, z: 0 },
@@ -551,7 +554,7 @@ var createSurfaceMock = (overrides) => ({
551
554
 
552
555
  // src/shared/factories.ts
553
556
  var import_engine2 = require("@quake2ts/engine");
554
- var import_shared3 = require("@quake2ts/shared");
557
+ var import_shared4 = require("@quake2ts/shared");
555
558
  var import_engine3 = require("@quake2ts/engine");
556
559
  function createConfigStringMock(index, value) {
557
560
  return { index, value };
@@ -565,7 +568,7 @@ function createConfigStringArrayMock(entries) {
565
568
  }
566
569
  return result;
567
570
  }
568
- function createCvarMock(name, value, flags = import_shared3.CvarFlags.None) {
571
+ function createCvarMock(name, value, flags = import_shared4.CvarFlags.None) {
569
572
  return new import_engine2.Cvar({
570
573
  name,
571
574
  defaultValue: value,
@@ -785,7 +788,7 @@ function createTriggerEntityFactory(classname, overrides = {}) {
785
788
  // src/game/helpers.ts
786
789
  var import_vitest2 = require("vitest");
787
790
  var import_game2 = require("@quake2ts/game");
788
- var import_shared4 = require("@quake2ts/shared");
791
+ var import_shared5 = require("@quake2ts/shared");
789
792
  var createMockEngine = () => ({
790
793
  sound: import_vitest2.vi.fn(),
791
794
  soundIndex: import_vitest2.vi.fn((sound) => 0),
@@ -796,7 +799,7 @@ var createMockGame = (seed = 12345) => {
796
799
  const spawnRegistry = new import_game2.SpawnRegistry();
797
800
  const hooks = new import_game2.ScriptHookRegistry();
798
801
  const game = {
799
- random: (0, import_shared4.createRandomGenerator)({ seed }),
802
+ random: (0, import_shared5.createRandomGenerator)({ seed }),
800
803
  registerEntitySpawn: import_vitest2.vi.fn((classname, spawnFunc) => {
801
804
  spawnRegistry.register(classname, (entity) => spawnFunc(entity));
802
805
  }),
@@ -889,7 +892,7 @@ function createTestContext(options) {
889
892
  findByTargetName: import_vitest2.vi.fn(() => []),
890
893
  pickTarget: import_vitest2.vi.fn(() => null),
891
894
  killBox: import_vitest2.vi.fn(),
892
- rng: (0, import_shared4.createRandomGenerator)({ seed }),
895
+ rng: (0, import_shared5.createRandomGenerator)({ seed }),
893
896
  imports: {
894
897
  configstring: import_vitest2.vi.fn(),
895
898
  trace: traceFn,
@@ -918,18 +921,17 @@ function createTestContext(options) {
918
921
  timeSeconds: 10,
919
922
  frameNumber: 1,
920
923
  sightEntity: null,
921
- soundEntity: null
924
+ soundEntity: null,
925
+ activePlayers: [],
926
+ monsterAlertedByPlayers: import_vitest2.vi.fn().mockReturnValue(null),
927
+ soundClient: import_vitest2.vi.fn().mockReturnValue(null)
922
928
  },
923
929
  warn: import_vitest2.vi.fn(),
924
- // Added warn to entities as it is sometimes used there too, though typically on SpawnContext
925
- // Adding missing properties to satisfy EntitySystem interface partially or fully
926
- // We cast to unknown first anyway, but filling these in makes it safer for consumers
927
930
  skill: 1,
928
931
  deathmatch: false,
929
932
  coop: false,
930
933
  activeCount: entityList.length,
931
934
  world: entityList.find((e) => e.classname === "worldspawn") || new import_game2.Entity(0)
932
- // ... other EntitySystem properties would go here
933
935
  };
934
936
  return {
935
937
  keyValues: {},
@@ -939,7 +941,6 @@ function createTestContext(options) {
939
941
  health_multiplier: 1,
940
942
  warn: import_vitest2.vi.fn(),
941
943
  free: import_vitest2.vi.fn(),
942
- // Mock precache functions if they are part of SpawnContext in future or TestContext extensions
943
944
  precacheModel: import_vitest2.vi.fn(),
944
945
  precacheSound: import_vitest2.vi.fn(),
945
946
  precacheImage: import_vitest2.vi.fn()
@@ -964,6 +965,11 @@ function createPhysicsTestContext(bspModel) {
964
965
  function createEntity() {
965
966
  return new import_game2.Entity(1);
966
967
  }
968
+ function spawnEntity(system, data) {
969
+ const ent = system.spawn();
970
+ Object.assign(ent, data);
971
+ return ent;
972
+ }
967
973
  function createGameImportsAndEngine(overrides) {
968
974
  const defaultTraceResult = {
969
975
  fraction: 1,
@@ -1022,7 +1028,7 @@ function createMockGameExports(overrides = {}) {
1022
1028
 
1023
1029
  // src/game/helpers/physics.ts
1024
1030
  var import_game3 = require("@quake2ts/game");
1025
- var import_shared5 = require("@quake2ts/shared");
1031
+ var import_shared6 = require("@quake2ts/shared");
1026
1032
  function createPhysicsTestScenario(scenarioType, context) {
1027
1033
  const walls = [];
1028
1034
  const ground = context.entities.spawn();
@@ -1079,13 +1085,13 @@ function createPhysicsTestScenario(scenarioType, context) {
1079
1085
  }
1080
1086
  function simulateMovement(entity, destination, context) {
1081
1087
  const dt = 0.1;
1082
- const delta = (0, import_shared5.subtractVec3)(destination, entity.origin);
1083
- const dist = (0, import_shared5.lengthVec3)(delta);
1088
+ const delta = (0, import_shared6.subtractVec3)(destination, entity.origin);
1089
+ const dist = (0, import_shared6.lengthVec3)(delta);
1084
1090
  if (dist < 1e-3) {
1085
1091
  return createTraceMock({ fraction: 1, endpos: destination });
1086
1092
  }
1087
- const dir = (0, import_shared5.normalizeVec3)(delta);
1088
- entity.velocity = (0, import_shared5.scaleVec3)(dir, dist / dt);
1093
+ const dir = (0, import_shared6.normalizeVec3)(delta);
1094
+ entity.velocity = (0, import_shared6.scaleVec3)(dir, dist / dt);
1089
1095
  const start = { ...entity.origin };
1090
1096
  const end = destination;
1091
1097
  const tr = context.entities.trace(start, entity.mins, entity.maxs, end, entity, entity.clipmask || 0);
@@ -1549,12 +1555,12 @@ function createMockNetDriver(overrides) {
1549
1555
  }
1550
1556
 
1551
1557
  // src/server/mockTransport.ts
1552
- var import_shared6 = require("@quake2ts/shared");
1558
+ var import_shared7 = require("@quake2ts/shared");
1553
1559
  var MockNetworkTransport = class {
1554
1560
  constructor() {
1555
1561
  this.recordedPackets = [];
1556
1562
  this.sentPackets = [];
1557
- this.netchan = new import_shared6.NetChan();
1563
+ this.netchan = new import_shared7.NetChan();
1558
1564
  this.netchan.setup(1234, { type: "loopback", port: 0 });
1559
1565
  }
1560
1566
  reset() {
@@ -1666,7 +1672,7 @@ var MockNetDriver = class {
1666
1672
 
1667
1673
  // src/server/mocks/state.ts
1668
1674
  var import_server = require("@quake2ts/server");
1669
- var import_shared7 = require("@quake2ts/shared");
1675
+ var import_shared8 = require("@quake2ts/shared");
1670
1676
  var import_vitest7 = require("vitest");
1671
1677
  function createMockGameState(overrides) {
1672
1678
  return {
@@ -1687,8 +1693,8 @@ function createMockServerState(overrides) {
1687
1693
  frame: 0,
1688
1694
  name: "test_map",
1689
1695
  collisionModel: null,
1690
- configStrings: new Array(import_shared7.MAX_CONFIGSTRINGS).fill(""),
1691
- baselines: new Array(import_shared7.MAX_EDICTS).fill(null),
1696
+ configStrings: new Array(import_shared8.MAX_CONFIGSTRINGS).fill(""),
1697
+ baselines: new Array(import_shared8.MAX_EDICTS).fill(null),
1692
1698
  multicastBuf: new Uint8Array(0),
1693
1699
  ...overrides
1694
1700
  };
@@ -2043,7 +2049,7 @@ function simulatePlayerInput(client, input) {
2043
2049
  }
2044
2050
 
2045
2051
  // src/server/helpers/snapshot.ts
2046
- var import_shared8 = require("@quake2ts/shared");
2052
+ var import_shared9 = require("@quake2ts/shared");
2047
2053
  function createServerSnapshot(serverState, clientNum) {
2048
2054
  const visibleEntities = [];
2049
2055
  if (serverState.baselines) {
@@ -2107,7 +2113,7 @@ async function simulateSnapshotDelivery(snapshot, reliability = 1) {
2107
2113
  return snapshot;
2108
2114
  }
2109
2115
  function parseProtocolPlayerState(data) {
2110
- const stream = new import_shared8.BinaryStream(data.buffer);
2116
+ const stream = new import_shared9.BinaryStream(data.buffer);
2111
2117
  const ps = {
2112
2118
  pm_type: 0,
2113
2119
  origin: { x: 0, y: 0, z: 0 },
@@ -5130,6 +5136,7 @@ function createVisualTestScenario(sceneName) {
5130
5136
  ParticleSystem,
5131
5137
  ShaderProgram,
5132
5138
  VertexBuffer,
5139
+ ZERO_VEC3,
5133
5140
  captureAudioEvents,
5134
5141
  captureCanvasDrawCalls,
5135
5142
  captureFramebufferAsPNG,
@@ -5347,6 +5354,7 @@ function createVisualTestScenario(sceneName) {
5347
5354
  simulateServerRegistration,
5348
5355
  simulateServerTick,
5349
5356
  simulateSnapshotDelivery,
5357
+ spawnEntity,
5350
5358
  stairTrace,
5351
5359
  takeScreenshot,
5352
5360
  teardownBrowserEnvironment,