quake2ts 0.0.86 → 0.0.87
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 +1 -1
- package/packages/client/dist/browser/index.global.js.map +1 -1
- package/packages/client/dist/cjs/index.cjs +80 -0
- package/packages/client/dist/cjs/index.cjs.map +1 -1
- package/packages/client/dist/esm/index.js +80 -0
- package/packages/client/dist/esm/index.js.map +1 -1
- package/packages/client/dist/tsconfig.tsbuildinfo +1 -1
- package/packages/engine/dist/browser/index.global.js +7 -7
- package/packages/engine/dist/browser/index.global.js.map +1 -1
- package/packages/engine/dist/cjs/index.cjs +40 -0
- package/packages/engine/dist/cjs/index.cjs.map +1 -1
- package/packages/engine/dist/esm/index.js +40 -0
- package/packages/engine/dist/esm/index.js.map +1 -1
- package/packages/engine/dist/tsconfig.tsbuildinfo +1 -1
- package/packages/engine/dist/types/render/collisionVis.d.ts +53 -0
- package/packages/engine/dist/types/render/collisionVis.d.ts.map +1 -0
- package/packages/engine/dist/types/render/renderer.d.ts +2 -0
- package/packages/engine/dist/types/render/renderer.d.ts.map +1 -1
- package/packages/game/dist/browser/index.global.js +1 -1
- package/packages/game/dist/browser/index.global.js.map +1 -1
- package/packages/game/dist/cjs/index.cjs +118 -2
- package/packages/game/dist/cjs/index.cjs.map +1 -1
- package/packages/game/dist/esm/index.js +118 -2
- package/packages/game/dist/esm/index.js.map +1 -1
- package/packages/game/dist/tsconfig.tsbuildinfo +1 -1
- package/packages/game/dist/types/entities/system.d.ts.map +1 -1
- package/packages/game/dist/types/physics/fluid.d.ts +5 -0
- package/packages/game/dist/types/physics/fluid.d.ts.map +1 -0
- package/packages/game/dist/types/physics/movement.d.ts.map +1 -1
- package/packages/shared/dist/browser/index.global.js +1 -1
- package/packages/shared/dist/browser/index.global.js.map +1 -1
- package/packages/shared/dist/cjs/index.cjs +41 -0
- package/packages/shared/dist/cjs/index.cjs.map +1 -1
- package/packages/shared/dist/esm/index.js +46 -0
- package/packages/shared/dist/esm/index.js.map +1 -1
- package/packages/shared/dist/tsconfig.tsbuildinfo +1 -1
- package/packages/shared/dist/types/index.d.ts +1 -0
- package/packages/shared/dist/types/index.d.ts.map +1 -1
- package/packages/shared/dist/types/replay/index.d.ts +3 -0
- package/packages/shared/dist/types/replay/index.d.ts.map +1 -0
- package/packages/shared/dist/types/replay/io.d.ts +7 -0
- package/packages/shared/dist/types/replay/io.d.ts.map +1 -0
- package/packages/shared/dist/types/replay/schema.d.ts +31 -0
- package/packages/shared/dist/types/replay/schema.d.ts.map +1 -0
- package/packages/tools/dist/tsconfig.tsbuildinfo +1 -1
|
@@ -153,6 +153,11 @@ __export(index_exports, {
|
|
|
153
153
|
module.exports = __toCommonJS(index_exports);
|
|
154
154
|
|
|
155
155
|
// ../shared/dist/esm/index.js
|
|
156
|
+
var __defProp2 = Object.defineProperty;
|
|
157
|
+
var __export2 = (target, all) => {
|
|
158
|
+
for (var name in all)
|
|
159
|
+
__defProp2(target, name, { get: all[name], enumerable: true });
|
|
160
|
+
};
|
|
156
161
|
var ZERO_VEC3 = { x: 0, y: 0, z: 0 };
|
|
157
162
|
var STOP_EPSILON = 0.1;
|
|
158
163
|
var DEG_TO_RAD = Math.PI / 180;
|
|
@@ -595,6 +600,41 @@ var ConfigStringIndex = ((ConfigStringIndex2) => {
|
|
|
595
600
|
return ConfigStringIndex2;
|
|
596
601
|
})(ConfigStringIndex || {});
|
|
597
602
|
var MAX_CONFIGSTRINGS = ConfigStringIndex.MaxConfigStrings;
|
|
603
|
+
var replay_exports = {};
|
|
604
|
+
__export2(replay_exports, {
|
|
605
|
+
addReplayFrame: () => addReplayFrame,
|
|
606
|
+
createReplaySession: () => createReplaySession,
|
|
607
|
+
deserializeReplay: () => deserializeReplay,
|
|
608
|
+
serializeReplay: () => serializeReplay
|
|
609
|
+
});
|
|
610
|
+
function serializeReplay(session) {
|
|
611
|
+
return JSON.stringify(session, null, 2);
|
|
612
|
+
}
|
|
613
|
+
function deserializeReplay(json) {
|
|
614
|
+
const session = JSON.parse(json);
|
|
615
|
+
if (!session.metadata || !Array.isArray(session.frames)) {
|
|
616
|
+
throw new Error("Invalid replay format: missing metadata or frames");
|
|
617
|
+
}
|
|
618
|
+
return session;
|
|
619
|
+
}
|
|
620
|
+
function createReplaySession(map, seed) {
|
|
621
|
+
return {
|
|
622
|
+
metadata: {
|
|
623
|
+
map,
|
|
624
|
+
date: (/* @__PURE__ */ new Date()).toISOString(),
|
|
625
|
+
version: "1.0",
|
|
626
|
+
seed
|
|
627
|
+
},
|
|
628
|
+
frames: []
|
|
629
|
+
};
|
|
630
|
+
}
|
|
631
|
+
function addReplayFrame(session, cmd, serverFrame, startTime) {
|
|
632
|
+
session.frames.push({
|
|
633
|
+
serverFrame,
|
|
634
|
+
cmd,
|
|
635
|
+
timestamp: Date.now() - startTime
|
|
636
|
+
});
|
|
637
|
+
}
|
|
598
638
|
var WaterLevel = /* @__PURE__ */ ((WaterLevel3) => {
|
|
599
639
|
WaterLevel3[WaterLevel3["None"] = 0] = "None";
|
|
600
640
|
WaterLevel3[WaterLevel3["Feet"] = 1] = "Feet";
|
|
@@ -1064,8 +1104,23 @@ var ENTITY_FIELD_METADATA = [
|
|
|
1064
1104
|
// src/physics/movement.ts
|
|
1065
1105
|
function runGravity(ent, gravity, frametime) {
|
|
1066
1106
|
if (ent.movetype === 7 /* Toss */) {
|
|
1067
|
-
|
|
1068
|
-
|
|
1107
|
+
if (ent.waterlevel > 1) {
|
|
1108
|
+
const speed = Math.sqrt(ent.velocity.x * ent.velocity.x + ent.velocity.y * ent.velocity.y + ent.velocity.z * ent.velocity.z);
|
|
1109
|
+
if (speed > 1) {
|
|
1110
|
+
const newspeed = speed - frametime * speed * 2;
|
|
1111
|
+
if (newspeed < 0) {
|
|
1112
|
+
ent.velocity = { x: 0, y: 0, z: 0 };
|
|
1113
|
+
} else {
|
|
1114
|
+
const scale = newspeed / speed;
|
|
1115
|
+
ent.velocity = scaleVec3(ent.velocity, scale);
|
|
1116
|
+
}
|
|
1117
|
+
}
|
|
1118
|
+
ent.velocity = addVec3(ent.velocity, scaleVec3(gravity, ent.gravity * frametime * 0.1));
|
|
1119
|
+
ent.origin = addVec3(ent.origin, scaleVec3(ent.velocity, frametime));
|
|
1120
|
+
} else {
|
|
1121
|
+
ent.velocity = addVec3(ent.velocity, scaleVec3(gravity, ent.gravity * frametime));
|
|
1122
|
+
ent.origin = addVec3(ent.origin, scaleVec3(ent.velocity, frametime));
|
|
1123
|
+
}
|
|
1069
1124
|
}
|
|
1070
1125
|
}
|
|
1071
1126
|
function runBouncing(ent, imports, frametime) {
|
|
@@ -1214,6 +1269,64 @@ function runPush(pusher, system, imports, frametime) {
|
|
|
1214
1269
|
return true;
|
|
1215
1270
|
}
|
|
1216
1271
|
|
|
1272
|
+
// src/physics/fluid.ts
|
|
1273
|
+
function checkWater2(ent, system, imports) {
|
|
1274
|
+
const origin = ent.origin;
|
|
1275
|
+
const mins = ent.mins;
|
|
1276
|
+
const maxs = ent.maxs;
|
|
1277
|
+
const point = {
|
|
1278
|
+
x: origin.x + (mins.x + maxs.x) * 0.5,
|
|
1279
|
+
y: origin.y + (mins.y + maxs.y) * 0.5,
|
|
1280
|
+
z: origin.z + mins.z + 1
|
|
1281
|
+
};
|
|
1282
|
+
let cont = imports.pointcontents(point);
|
|
1283
|
+
if ((cont & MASK_WATER) === 0) {
|
|
1284
|
+
if (ent.waterlevel > 0) {
|
|
1285
|
+
playLeaveWaterSound(ent, system);
|
|
1286
|
+
ent.flags &= ~2 /* Swim */;
|
|
1287
|
+
}
|
|
1288
|
+
ent.waterlevel = 0;
|
|
1289
|
+
ent.watertype = 0;
|
|
1290
|
+
return;
|
|
1291
|
+
}
|
|
1292
|
+
ent.watertype = cont;
|
|
1293
|
+
ent.waterlevel = 1;
|
|
1294
|
+
const waistZ = origin.z + mins.z + (maxs.z - mins.z) * 0.5;
|
|
1295
|
+
const headZ = origin.z + maxs.z - 1;
|
|
1296
|
+
const waistPoint = { ...point, z: waistZ };
|
|
1297
|
+
cont = imports.pointcontents(waistPoint);
|
|
1298
|
+
if (cont & MASK_WATER) {
|
|
1299
|
+
ent.waterlevel = 2;
|
|
1300
|
+
const headPoint = { ...point, z: headZ };
|
|
1301
|
+
cont = imports.pointcontents(headPoint);
|
|
1302
|
+
if (cont & MASK_WATER) {
|
|
1303
|
+
ent.waterlevel = 3;
|
|
1304
|
+
}
|
|
1305
|
+
}
|
|
1306
|
+
if ((ent.flags & 2 /* Swim */) === 0) {
|
|
1307
|
+
playEnterWaterSound(ent, system);
|
|
1308
|
+
ent.flags |= 2 /* Swim */;
|
|
1309
|
+
}
|
|
1310
|
+
}
|
|
1311
|
+
function playEnterWaterSound(ent, system) {
|
|
1312
|
+
if (ent.watertype & CONTENTS_LAVA) {
|
|
1313
|
+
system.sound(ent, 0, "player/lava_in.wav", 1, 1, 0);
|
|
1314
|
+
} else if (ent.watertype & CONTENTS_SLIME) {
|
|
1315
|
+
system.sound(ent, 0, "player/watr_in.wav", 1, 1, 0);
|
|
1316
|
+
} else if (ent.watertype & CONTENTS_WATER) {
|
|
1317
|
+
system.sound(ent, 0, "player/watr_in.wav", 1, 1, 0);
|
|
1318
|
+
}
|
|
1319
|
+
}
|
|
1320
|
+
function playLeaveWaterSound(ent, system) {
|
|
1321
|
+
if (ent.watertype & CONTENTS_LAVA) {
|
|
1322
|
+
system.sound(ent, 0, "player/lava_out.wav", 1, 1, 0);
|
|
1323
|
+
} else if (ent.watertype & CONTENTS_SLIME) {
|
|
1324
|
+
system.sound(ent, 0, "player/watr_out.wav", 1, 1, 0);
|
|
1325
|
+
} else if (ent.watertype & CONTENTS_WATER) {
|
|
1326
|
+
system.sound(ent, 0, "player/watr_out.wav", 1, 1, 0);
|
|
1327
|
+
}
|
|
1328
|
+
}
|
|
1329
|
+
|
|
1217
1330
|
// src/entities/pool.ts
|
|
1218
1331
|
var MAX_EDICTS = 2048;
|
|
1219
1332
|
var WORLD_INDEX = 0;
|
|
@@ -1681,6 +1794,9 @@ var EntitySystem = class {
|
|
|
1681
1794
|
if (!ent.inUse || ent.freePending) {
|
|
1682
1795
|
continue;
|
|
1683
1796
|
}
|
|
1797
|
+
if (ent.movetype !== 0 /* None */ && ent.movetype !== 2 /* Push */ && ent.movetype !== 3 /* Stop */ && ent.movetype !== 1 /* Noclip */) {
|
|
1798
|
+
checkWater2(ent, this, this.imports);
|
|
1799
|
+
}
|
|
1684
1800
|
const frametime = this.currentTimeSeconds - (ent.timestamp || 0);
|
|
1685
1801
|
switch (ent.movetype) {
|
|
1686
1802
|
case 7 /* Toss */:
|