quake2ts 0.0.243 → 0.0.244

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.
Files changed (27) hide show
  1. package/package.json +1 -1
  2. package/packages/client/dist/browser/index.global.js +10 -10
  3. package/packages/client/dist/browser/index.global.js.map +1 -1
  4. package/packages/client/dist/cjs/index.cjs +76 -74
  5. package/packages/client/dist/cjs/index.cjs.map +1 -1
  6. package/packages/client/dist/esm/index.js +76 -74
  7. package/packages/client/dist/esm/index.js.map +1 -1
  8. package/packages/client/dist/tsconfig.tsbuildinfo +1 -1
  9. package/packages/client/dist/types/entities.d.ts +6 -0
  10. package/packages/client/dist/types/entities.d.ts.map +1 -0
  11. package/packages/client/dist/types/index.d.ts.map +1 -1
  12. package/packages/game/dist/browser/index.global.js +2 -2
  13. package/packages/game/dist/browser/index.global.js.map +1 -1
  14. package/packages/game/dist/cjs/index.cjs +16 -1
  15. package/packages/game/dist/cjs/index.cjs.map +1 -1
  16. package/packages/game/dist/esm/index.js +16 -1
  17. package/packages/game/dist/esm/index.js.map +1 -1
  18. package/packages/game/dist/tsconfig.tsbuildinfo +1 -1
  19. package/packages/game/dist/types/combat/damage.d.ts.map +1 -1
  20. package/packages/game/dist/types/combat/weapons/firing.d.ts.map +1 -1
  21. package/packages/game/dist/types/combat/weapons/rogue.d.ts +1 -0
  22. package/packages/game/dist/types/combat/weapons/rogue.d.ts.map +1 -1
  23. package/packages/game/dist/types/entities/entity.d.ts +1 -0
  24. package/packages/game/dist/types/entities/entity.d.ts.map +1 -1
  25. package/packages/game/dist/types/entities/projectiles.d.ts +1 -0
  26. package/packages/game/dist/types/entities/projectiles.d.ts.map +1 -1
  27. package/packages/game/dist/types/inventory/items.d.ts.map +1 -1
@@ -10243,6 +10243,82 @@ var WheelMenuSystem = class {
10243
10243
  }
10244
10244
  };
10245
10245
 
10246
+ // src/entities.ts
10247
+ function lerp2(a, b, t) {
10248
+ return a + (b - a) * t;
10249
+ }
10250
+ function lerpAngle(a, b, t) {
10251
+ return lerp2(a, b, t);
10252
+ }
10253
+ function buildRenderableEntities(latestEntities, previousEntities, alpha, configStrings, imports) {
10254
+ const renderables = [];
10255
+ const assets = imports.engine.assets;
10256
+ if (!assets) return renderables;
10257
+ const prevMap = new Map(previousEntities.map((e) => [e.number, e]));
10258
+ for (const ent of latestEntities) {
10259
+ const prev = prevMap.get(ent.number) ?? ent;
10260
+ const modelName = configStrings.getModelName(ent.modelIndex);
10261
+ if (!modelName) continue;
10262
+ const model = assets.getMd2Model(modelName) || assets.getMd3Model(modelName);
10263
+ if (!model) continue;
10264
+ const origin = {
10265
+ x: lerp2(prev.origin.x, ent.origin.x, alpha),
10266
+ y: lerp2(prev.origin.y, ent.origin.y, alpha),
10267
+ z: lerp2(prev.origin.z, ent.origin.z, alpha)
10268
+ };
10269
+ const angles = {
10270
+ x: lerpAngle(prev.angles.x, ent.angles.x, alpha),
10271
+ y: lerpAngle(prev.angles.y, ent.angles.y, alpha),
10272
+ z: lerpAngle(prev.angles.z, ent.angles.z, alpha)
10273
+ };
10274
+ const frame = ent.frame;
10275
+ const prevFrame = prev.frame;
10276
+ const scaleA = prev.scale !== void 0 ? prev.scale : 1;
10277
+ const scaleB = ent.scale !== void 0 ? ent.scale : 1;
10278
+ const scale3 = lerp2(scaleA, scaleB, alpha);
10279
+ const getAlpha = (val) => val === void 0 || val === 0 ? 255 : val;
10280
+ const alphaA = getAlpha(prev.alpha);
10281
+ const alphaB = getAlpha(ent.alpha);
10282
+ const alphaVal = lerp2(alphaA, alphaB, alpha);
10283
+ const normalizedAlpha = alphaVal / 255;
10284
+ const mat = mat4_exports.create();
10285
+ mat4_exports.translate(mat, mat, [origin.x, origin.y, origin.z]);
10286
+ mat4_exports.rotateZ(mat, mat, angles.z * Math.PI / 180);
10287
+ mat4_exports.rotateY(mat, mat, angles.y * Math.PI / 180);
10288
+ mat4_exports.rotateX(mat, mat, angles.x * Math.PI / 180);
10289
+ mat4_exports.scale(mat, mat, [scale3, scale3, scale3]);
10290
+ if (model.header.magic === 844121161) {
10291
+ renderables.push({
10292
+ type: "md2",
10293
+ model,
10294
+ // Cast to Md2Model
10295
+ blend: {
10296
+ frame0: prevFrame,
10297
+ frame1: frame,
10298
+ lerp: alpha
10299
+ },
10300
+ transform: mat,
10301
+ skin: ent.skinNum > 0 ? configStrings.getImageName(ent.skinNum) : void 0,
10302
+ alpha: normalizedAlpha
10303
+ });
10304
+ } else if (model.header.magic === 860898377) {
10305
+ renderables.push({
10306
+ type: "md3",
10307
+ model,
10308
+ blend: {
10309
+ frame0: prevFrame,
10310
+ frame1: frame,
10311
+ lerp: alpha
10312
+ },
10313
+ transform: mat,
10314
+ alpha: normalizedAlpha
10315
+ // Lighting? Skins?
10316
+ });
10317
+ }
10318
+ }
10319
+ return renderables;
10320
+ }
10321
+
10246
10322
  // src/input/bindings.ts
10247
10323
  var DEFAULT_BINDINGS = [
10248
10324
  { code: "KeyW", command: "+forward" },
@@ -10735,80 +10811,6 @@ var InputCommandBuffer = class {
10735
10811
  var import_cgame4 = require("@quake2ts/cgame");
10736
10812
  var import_cgame5 = require("@quake2ts/cgame");
10737
10813
  var ZERO_VEC32 = { x: 0, y: 0, z: 0 };
10738
- function lerp2(a, b, t) {
10739
- return a + (b - a) * t;
10740
- }
10741
- function lerpAngle(a, b, t) {
10742
- return lerp2(a, b, t);
10743
- }
10744
- function buildRenderableEntities(latestEntities, previousEntities, alpha, configStrings, imports) {
10745
- const renderables = [];
10746
- const assets = imports.engine.assets;
10747
- if (!assets) return renderables;
10748
- const prevMap = new Map(previousEntities.map((e) => [e.number, e]));
10749
- for (const ent of latestEntities) {
10750
- const prev = prevMap.get(ent.number) ?? ent;
10751
- const modelName = configStrings.getModelName(ent.modelIndex);
10752
- if (!modelName) continue;
10753
- const model = assets.getMd2Model(modelName) || assets.getMd3Model(modelName);
10754
- if (!model) continue;
10755
- const origin = {
10756
- x: lerp2(prev.origin.x, ent.origin.x, alpha),
10757
- y: lerp2(prev.origin.y, ent.origin.y, alpha),
10758
- z: lerp2(prev.origin.z, ent.origin.z, alpha)
10759
- };
10760
- const angles = {
10761
- x: lerpAngle(prev.angles.x, ent.angles.x, alpha),
10762
- y: lerpAngle(prev.angles.y, ent.angles.y, alpha),
10763
- z: lerpAngle(prev.angles.z, ent.angles.z, alpha)
10764
- };
10765
- const frame = ent.frame;
10766
- const prevFrame = prev.frame;
10767
- const scaleA = prev.scale !== void 0 ? prev.scale : 1;
10768
- const scaleB = ent.scale !== void 0 ? ent.scale : 1;
10769
- const scale3 = lerp2(scaleA, scaleB, alpha);
10770
- const getAlpha = (val) => val === void 0 || val === 0 ? 255 : val;
10771
- const alphaA = getAlpha(prev.alpha);
10772
- const alphaB = getAlpha(ent.alpha);
10773
- const alphaVal = lerp2(alphaA, alphaB, alpha);
10774
- const normalizedAlpha = alphaVal / 255;
10775
- const mat = mat4_exports.create();
10776
- mat4_exports.translate(mat, mat, [origin.x, origin.y, origin.z]);
10777
- mat4_exports.rotateZ(mat, mat, angles.z * Math.PI / 180);
10778
- mat4_exports.rotateY(mat, mat, angles.y * Math.PI / 180);
10779
- mat4_exports.rotateX(mat, mat, angles.x * Math.PI / 180);
10780
- mat4_exports.scale(mat, mat, [scale3, scale3, scale3]);
10781
- if (model.header.magic === 844121161) {
10782
- renderables.push({
10783
- type: "md2",
10784
- model,
10785
- // Cast to Md2Model
10786
- blend: {
10787
- frame0: prevFrame,
10788
- frame1: frame,
10789
- lerp: alpha
10790
- },
10791
- transform: mat,
10792
- skin: ent.skinNum > 0 ? configStrings.getImageName(ent.skinNum) : void 0,
10793
- alpha: normalizedAlpha
10794
- });
10795
- } else if (model.header.magic === 860898377) {
10796
- renderables.push({
10797
- type: "md3",
10798
- model,
10799
- blend: {
10800
- frame0: prevFrame,
10801
- frame1: frame,
10802
- lerp: alpha
10803
- },
10804
- transform: mat,
10805
- alpha: normalizedAlpha
10806
- // Lighting? Skins?
10807
- });
10808
- }
10809
- }
10810
- return renderables;
10811
- }
10812
10814
  function createClient(imports) {
10813
10815
  const prediction = new import_cgame2.ClientPrediction(imports.engine.trace);
10814
10816
  const view = new import_cgame3.ViewEffects();