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.
- package/package.json +1 -1
- package/packages/client/dist/browser/index.global.js +10 -10
- package/packages/client/dist/browser/index.global.js.map +1 -1
- package/packages/client/dist/cjs/index.cjs +76 -74
- package/packages/client/dist/cjs/index.cjs.map +1 -1
- package/packages/client/dist/esm/index.js +76 -74
- package/packages/client/dist/esm/index.js.map +1 -1
- package/packages/client/dist/tsconfig.tsbuildinfo +1 -1
- package/packages/client/dist/types/entities.d.ts +6 -0
- package/packages/client/dist/types/entities.d.ts.map +1 -0
- package/packages/client/dist/types/index.d.ts.map +1 -1
- package/packages/game/dist/browser/index.global.js +2 -2
- package/packages/game/dist/browser/index.global.js.map +1 -1
- package/packages/game/dist/cjs/index.cjs +16 -1
- package/packages/game/dist/cjs/index.cjs.map +1 -1
- package/packages/game/dist/esm/index.js +16 -1
- package/packages/game/dist/esm/index.js.map +1 -1
- package/packages/game/dist/tsconfig.tsbuildinfo +1 -1
- package/packages/game/dist/types/combat/damage.d.ts.map +1 -1
- package/packages/game/dist/types/combat/weapons/firing.d.ts.map +1 -1
- package/packages/game/dist/types/combat/weapons/rogue.d.ts +1 -0
- package/packages/game/dist/types/combat/weapons/rogue.d.ts.map +1 -1
- package/packages/game/dist/types/entities/entity.d.ts +1 -0
- package/packages/game/dist/types/entities/entity.d.ts.map +1 -1
- package/packages/game/dist/types/entities/projectiles.d.ts +1 -0
- package/packages/game/dist/types/entities/projectiles.d.ts.map +1 -1
- 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();
|