quake2ts 0.0.243 → 0.0.245

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
@@ -10212,6 +10212,82 @@ var WheelMenuSystem = class {
10212
10212
  }
10213
10213
  };
10214
10214
 
10215
+ // src/entities.ts
10216
+ function lerp2(a, b, t) {
10217
+ return a + (b - a) * t;
10218
+ }
10219
+ function lerpAngle(a, b, t) {
10220
+ return lerp2(a, b, t);
10221
+ }
10222
+ function buildRenderableEntities(latestEntities, previousEntities, alpha, configStrings, imports) {
10223
+ const renderables = [];
10224
+ const assets = imports.engine.assets;
10225
+ if (!assets) return renderables;
10226
+ const prevMap = new Map(previousEntities.map((e) => [e.number, e]));
10227
+ for (const ent of latestEntities) {
10228
+ const prev = prevMap.get(ent.number) ?? ent;
10229
+ const modelName = configStrings.getModelName(ent.modelIndex);
10230
+ if (!modelName) continue;
10231
+ const model = assets.getMd2Model(modelName) || assets.getMd3Model(modelName);
10232
+ if (!model) continue;
10233
+ const origin = {
10234
+ x: lerp2(prev.origin.x, ent.origin.x, alpha),
10235
+ y: lerp2(prev.origin.y, ent.origin.y, alpha),
10236
+ z: lerp2(prev.origin.z, ent.origin.z, alpha)
10237
+ };
10238
+ const angles = {
10239
+ x: lerpAngle(prev.angles.x, ent.angles.x, alpha),
10240
+ y: lerpAngle(prev.angles.y, ent.angles.y, alpha),
10241
+ z: lerpAngle(prev.angles.z, ent.angles.z, alpha)
10242
+ };
10243
+ const frame = ent.frame;
10244
+ const prevFrame = prev.frame;
10245
+ const scaleA = prev.scale !== void 0 ? prev.scale : 1;
10246
+ const scaleB = ent.scale !== void 0 ? ent.scale : 1;
10247
+ const scale3 = lerp2(scaleA, scaleB, alpha);
10248
+ const getAlpha = (val) => val === void 0 || val === 0 ? 255 : val;
10249
+ const alphaA = getAlpha(prev.alpha);
10250
+ const alphaB = getAlpha(ent.alpha);
10251
+ const alphaVal = lerp2(alphaA, alphaB, alpha);
10252
+ const normalizedAlpha = alphaVal / 255;
10253
+ const mat = mat4_exports.create();
10254
+ mat4_exports.translate(mat, mat, [origin.x, origin.y, origin.z]);
10255
+ mat4_exports.rotateZ(mat, mat, angles.z * Math.PI / 180);
10256
+ mat4_exports.rotateY(mat, mat, angles.y * Math.PI / 180);
10257
+ mat4_exports.rotateX(mat, mat, angles.x * Math.PI / 180);
10258
+ mat4_exports.scale(mat, mat, [scale3, scale3, scale3]);
10259
+ if (model.header.magic === 844121161) {
10260
+ renderables.push({
10261
+ type: "md2",
10262
+ model,
10263
+ // Cast to Md2Model
10264
+ blend: {
10265
+ frame0: prevFrame,
10266
+ frame1: frame,
10267
+ lerp: alpha
10268
+ },
10269
+ transform: mat,
10270
+ skin: ent.skinNum > 0 ? configStrings.getImageName(ent.skinNum) : void 0,
10271
+ alpha: normalizedAlpha
10272
+ });
10273
+ } else if (model.header.magic === 860898377) {
10274
+ renderables.push({
10275
+ type: "md3",
10276
+ model,
10277
+ blend: {
10278
+ frame0: prevFrame,
10279
+ frame1: frame,
10280
+ lerp: alpha
10281
+ },
10282
+ transform: mat,
10283
+ alpha: normalizedAlpha
10284
+ // Lighting? Skins?
10285
+ });
10286
+ }
10287
+ }
10288
+ return renderables;
10289
+ }
10290
+
10215
10291
  // src/input/bindings.ts
10216
10292
  var DEFAULT_BINDINGS = [
10217
10293
  { code: "KeyW", command: "+forward" },
@@ -10707,80 +10783,6 @@ import {
10707
10783
  } from "@quake2ts/cgame";
10708
10784
  import { ViewEffects as ViewEffects3 } from "@quake2ts/cgame";
10709
10785
  var ZERO_VEC32 = { x: 0, y: 0, z: 0 };
10710
- function lerp2(a, b, t) {
10711
- return a + (b - a) * t;
10712
- }
10713
- function lerpAngle(a, b, t) {
10714
- return lerp2(a, b, t);
10715
- }
10716
- function buildRenderableEntities(latestEntities, previousEntities, alpha, configStrings, imports) {
10717
- const renderables = [];
10718
- const assets = imports.engine.assets;
10719
- if (!assets) return renderables;
10720
- const prevMap = new Map(previousEntities.map((e) => [e.number, e]));
10721
- for (const ent of latestEntities) {
10722
- const prev = prevMap.get(ent.number) ?? ent;
10723
- const modelName = configStrings.getModelName(ent.modelIndex);
10724
- if (!modelName) continue;
10725
- const model = assets.getMd2Model(modelName) || assets.getMd3Model(modelName);
10726
- if (!model) continue;
10727
- const origin = {
10728
- x: lerp2(prev.origin.x, ent.origin.x, alpha),
10729
- y: lerp2(prev.origin.y, ent.origin.y, alpha),
10730
- z: lerp2(prev.origin.z, ent.origin.z, alpha)
10731
- };
10732
- const angles = {
10733
- x: lerpAngle(prev.angles.x, ent.angles.x, alpha),
10734
- y: lerpAngle(prev.angles.y, ent.angles.y, alpha),
10735
- z: lerpAngle(prev.angles.z, ent.angles.z, alpha)
10736
- };
10737
- const frame = ent.frame;
10738
- const prevFrame = prev.frame;
10739
- const scaleA = prev.scale !== void 0 ? prev.scale : 1;
10740
- const scaleB = ent.scale !== void 0 ? ent.scale : 1;
10741
- const scale3 = lerp2(scaleA, scaleB, alpha);
10742
- const getAlpha = (val) => val === void 0 || val === 0 ? 255 : val;
10743
- const alphaA = getAlpha(prev.alpha);
10744
- const alphaB = getAlpha(ent.alpha);
10745
- const alphaVal = lerp2(alphaA, alphaB, alpha);
10746
- const normalizedAlpha = alphaVal / 255;
10747
- const mat = mat4_exports.create();
10748
- mat4_exports.translate(mat, mat, [origin.x, origin.y, origin.z]);
10749
- mat4_exports.rotateZ(mat, mat, angles.z * Math.PI / 180);
10750
- mat4_exports.rotateY(mat, mat, angles.y * Math.PI / 180);
10751
- mat4_exports.rotateX(mat, mat, angles.x * Math.PI / 180);
10752
- mat4_exports.scale(mat, mat, [scale3, scale3, scale3]);
10753
- if (model.header.magic === 844121161) {
10754
- renderables.push({
10755
- type: "md2",
10756
- model,
10757
- // Cast to Md2Model
10758
- blend: {
10759
- frame0: prevFrame,
10760
- frame1: frame,
10761
- lerp: alpha
10762
- },
10763
- transform: mat,
10764
- skin: ent.skinNum > 0 ? configStrings.getImageName(ent.skinNum) : void 0,
10765
- alpha: normalizedAlpha
10766
- });
10767
- } else if (model.header.magic === 860898377) {
10768
- renderables.push({
10769
- type: "md3",
10770
- model,
10771
- blend: {
10772
- frame0: prevFrame,
10773
- frame1: frame,
10774
- lerp: alpha
10775
- },
10776
- transform: mat,
10777
- alpha: normalizedAlpha
10778
- // Lighting? Skins?
10779
- });
10780
- }
10781
- }
10782
- return renderables;
10783
- }
10784
10786
  function createClient(imports) {
10785
10787
  const prediction = new ClientPrediction(imports.engine.trace);
10786
10788
  const view = new ViewEffects2();