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
|
@@ -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();
|