quake2ts 0.0.292 → 0.0.294
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 +13 -13
- package/packages/client/dist/browser/index.global.js.map +1 -1
- package/packages/client/dist/cjs/index.cjs +31 -11
- package/packages/client/dist/cjs/index.cjs.map +1 -1
- package/packages/client/dist/esm/index.js +31 -11
- 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 +31 -11
- package/packages/engine/dist/cjs/index.cjs.map +1 -1
- package/packages/engine/dist/esm/index.js +31 -11
- package/packages/engine/dist/esm/index.js.map +1 -1
- package/packages/engine/dist/tsconfig.tsbuildinfo +1 -1
- package/packages/engine/dist/types/demo/playback.d.ts +5 -0
- package/packages/engine/dist/types/demo/playback.d.ts.map +1 -1
- package/packages/game/dist/browser/index.global.js +4 -4
- package/packages/game/dist/browser/index.global.js.map +1 -1
- package/packages/game/dist/cjs/index.cjs +113 -28
- package/packages/game/dist/cjs/index.cjs.map +1 -1
- package/packages/game/dist/esm/index.js +113 -28
- package/packages/game/dist/esm/index.js.map +1 -1
- package/packages/game/dist/tsconfig.tsbuildinfo +1 -1
- package/packages/game/dist/types/entities/gibs.d.ts +2 -0
- package/packages/game/dist/types/entities/gibs.d.ts.map +1 -1
|
@@ -7484,40 +7484,80 @@ init_esm();
|
|
|
7484
7484
|
// src/entities/gibs.ts
|
|
7485
7485
|
init_esm();
|
|
7486
7486
|
var random3 = createRandomGenerator();
|
|
7487
|
+
var GIB_ORGANIC = 0;
|
|
7487
7488
|
var GIB_METALLIC = 1;
|
|
7488
7489
|
var GIB_DEBRIS = 2;
|
|
7489
|
-
function
|
|
7490
|
+
function velocityForDamage(damage) {
|
|
7491
|
+
let x = 100 * random3.crandom();
|
|
7492
|
+
let y = 100 * random3.crandom();
|
|
7493
|
+
let z = 200 + 100 * random3.frandom();
|
|
7494
|
+
if (damage < 50) {
|
|
7495
|
+
x *= 0.7;
|
|
7496
|
+
y *= 0.7;
|
|
7497
|
+
z *= 0.7;
|
|
7498
|
+
} else {
|
|
7499
|
+
x *= 1.2;
|
|
7500
|
+
y *= 1.2;
|
|
7501
|
+
z *= 1.2;
|
|
7502
|
+
}
|
|
7503
|
+
return { x, y, z };
|
|
7504
|
+
}
|
|
7505
|
+
function clipGibVelocity(ent) {
|
|
7506
|
+
let { x, y, z } = ent.velocity;
|
|
7507
|
+
if (x < -300) x = -300;
|
|
7508
|
+
else if (x > 300) x = 300;
|
|
7509
|
+
if (y < -300) y = -300;
|
|
7510
|
+
else if (y > 300) y = 300;
|
|
7511
|
+
if (z < 200) z = 200;
|
|
7512
|
+
else if (z > 500) z = 500;
|
|
7513
|
+
ent.velocity = { x, y, z };
|
|
7514
|
+
}
|
|
7515
|
+
function gib_touch(self, other, plane, surf, sys) {
|
|
7516
|
+
if (!self.groundentity) return;
|
|
7517
|
+
self.touch = void 0;
|
|
7518
|
+
if (plane) {
|
|
7519
|
+
sys.sound(self, 0, "misc/fhit3.wav", 1, 1, 0);
|
|
7520
|
+
}
|
|
7521
|
+
}
|
|
7522
|
+
function spawnGib(sys, origin, damage, model, type = GIB_ORGANIC) {
|
|
7490
7523
|
const gib = sys.spawn();
|
|
7491
7524
|
gib.classname = "gib";
|
|
7492
7525
|
gib.origin = {
|
|
7493
|
-
x: origin.x +
|
|
7494
|
-
y: origin.y +
|
|
7495
|
-
z: origin.z +
|
|
7526
|
+
x: origin.x + random3.crandom() * 20,
|
|
7527
|
+
y: origin.y + random3.crandom() * 20,
|
|
7528
|
+
z: origin.z + random3.crandom() * 20
|
|
7496
7529
|
};
|
|
7497
|
-
|
|
7498
|
-
x: (random3.frandom() - 0.5) * 300,
|
|
7499
|
-
y: (random3.frandom() - 0.5) * 300,
|
|
7500
|
-
z: 200 + random3.frandom() * 100
|
|
7501
|
-
};
|
|
7502
|
-
gib.movetype = 9 /* Bounce */;
|
|
7503
|
-
gib.solid = 0 /* Not */;
|
|
7504
|
-
gib.clipmask = 1;
|
|
7505
|
-
gib.avelocity = {
|
|
7506
|
-
x: random3.crandom() * 600,
|
|
7507
|
-
y: random3.crandom() * 600,
|
|
7508
|
-
z: random3.crandom() * 600
|
|
7509
|
-
};
|
|
7510
|
-
const defaultModels = [
|
|
7511
|
-
"models/objects/gibs/bone/tris.md2",
|
|
7512
|
-
"models/objects/gibs/meat/tris.md2",
|
|
7513
|
-
"models/objects/gibs/sm_meat/tris.md2"
|
|
7514
|
-
];
|
|
7515
|
-
const modelName = model || defaultModels[Math.floor(random3.frandom() * defaultModels.length)];
|
|
7530
|
+
const modelName = model || "models/objects/gibs/sm_meat/tris.md2";
|
|
7516
7531
|
gib.modelindex = sys.modelIndex(modelName);
|
|
7517
7532
|
gib.mins = { x: -2, y: -2, z: -2 };
|
|
7518
7533
|
gib.maxs = { x: 2, y: 2, z: 2 };
|
|
7519
|
-
|
|
7534
|
+
gib.solid = 0 /* Not */;
|
|
7535
|
+
gib.takedamage = true;
|
|
7536
|
+
gib.die = (self, inflictor, attacker, dmg, point, mod) => {
|
|
7537
|
+
sys.free(self);
|
|
7538
|
+
};
|
|
7539
|
+
gib.clipmask = 1;
|
|
7540
|
+
let vscale = 1;
|
|
7541
|
+
if (type === GIB_ORGANIC) {
|
|
7542
|
+
gib.movetype = 7 /* Toss */;
|
|
7543
|
+
gib.touch = (self, other, plane, surf) => gib_touch(self, other, plane, surf, sys);
|
|
7544
|
+
vscale = 0.5;
|
|
7545
|
+
} else {
|
|
7546
|
+
gib.movetype = 9 /* Bounce */;
|
|
7547
|
+
vscale = 1;
|
|
7520
7548
|
}
|
|
7549
|
+
const vd = velocityForDamage(damage);
|
|
7550
|
+
gib.velocity = {
|
|
7551
|
+
x: vd.x * vscale,
|
|
7552
|
+
y: vd.y * vscale,
|
|
7553
|
+
z: vd.z * vscale
|
|
7554
|
+
};
|
|
7555
|
+
clipGibVelocity(gib);
|
|
7556
|
+
gib.avelocity = {
|
|
7557
|
+
x: random3.frandom() * 600,
|
|
7558
|
+
y: random3.frandom() * 600,
|
|
7559
|
+
z: random3.frandom() * 600
|
|
7560
|
+
};
|
|
7521
7561
|
gib.think = (self) => {
|
|
7522
7562
|
sys.free(self);
|
|
7523
7563
|
};
|
|
@@ -7525,13 +7565,58 @@ function spawnGib(sys, origin, damage, model, type) {
|
|
|
7525
7565
|
sys.finalizeSpawn(gib);
|
|
7526
7566
|
return gib;
|
|
7527
7567
|
}
|
|
7568
|
+
function spawnHead(sys, origin, damage) {
|
|
7569
|
+
const head = sys.spawn();
|
|
7570
|
+
let gibname;
|
|
7571
|
+
if (random3.irandom(2) === 1) {
|
|
7572
|
+
gibname = "models/objects/gibs/head2/tris.md2";
|
|
7573
|
+
head.skin = 1;
|
|
7574
|
+
} else {
|
|
7575
|
+
gibname = "models/objects/gibs/skull/tris.md2";
|
|
7576
|
+
head.skin = 0;
|
|
7577
|
+
}
|
|
7578
|
+
head.frame = 0;
|
|
7579
|
+
head.modelindex = sys.modelIndex(gibname);
|
|
7580
|
+
head.mins = { x: -16, y: -16, z: 0 };
|
|
7581
|
+
head.maxs = { x: 16, y: 16, z: 16 };
|
|
7582
|
+
head.origin = {
|
|
7583
|
+
x: origin.x,
|
|
7584
|
+
y: origin.y,
|
|
7585
|
+
z: origin.z + 32
|
|
7586
|
+
};
|
|
7587
|
+
head.solid = 0 /* Not */;
|
|
7588
|
+
head.takedamage = true;
|
|
7589
|
+
head.die = (self, inflictor, attacker, dmg, point, mod) => {
|
|
7590
|
+
sys.free(self);
|
|
7591
|
+
};
|
|
7592
|
+
let vscale = 0.5;
|
|
7593
|
+
head.movetype = 7 /* Toss */;
|
|
7594
|
+
head.touch = (self, other, plane, surf) => gib_touch(self, other, plane, surf, sys);
|
|
7595
|
+
const vd = velocityForDamage(damage);
|
|
7596
|
+
head.velocity = {
|
|
7597
|
+
x: vd.x * vscale,
|
|
7598
|
+
y: vd.y * vscale,
|
|
7599
|
+
z: vd.z * vscale
|
|
7600
|
+
};
|
|
7601
|
+
clipGibVelocity(head);
|
|
7602
|
+
head.avelocity = { x: 0, y: random3.crandom() * 600, z: 0 };
|
|
7603
|
+
head.think = (self) => {
|
|
7604
|
+
sys.free(self);
|
|
7605
|
+
};
|
|
7606
|
+
sys.scheduleThink(head, sys.timeSeconds + 10 + random3.frandom() * 10);
|
|
7607
|
+
sys.finalizeSpawn(head);
|
|
7608
|
+
return head;
|
|
7609
|
+
}
|
|
7528
7610
|
function throwGibs(sys, origin, damageOrDefs) {
|
|
7529
7611
|
if (typeof damageOrDefs === "number") {
|
|
7530
7612
|
const damage = damageOrDefs;
|
|
7531
|
-
|
|
7532
|
-
|
|
7533
|
-
|
|
7534
|
-
|
|
7613
|
+
spawnGib(sys, origin, damage, "models/objects/gibs/sm_meat/tris.md2", GIB_ORGANIC);
|
|
7614
|
+
spawnGib(sys, origin, damage, "models/objects/gibs/sm_meat/tris.md2", GIB_ORGANIC);
|
|
7615
|
+
spawnGib(sys, origin, damage, "models/objects/gibs/sm_meat/tris.md2", GIB_ORGANIC);
|
|
7616
|
+
spawnGib(sys, origin, damage, "models/objects/gibs/sm_meat/tris.md2", GIB_ORGANIC);
|
|
7617
|
+
spawnGib(sys, origin, damage, "models/objects/gibs/meat/tris.md2", GIB_ORGANIC);
|
|
7618
|
+
spawnGib(sys, origin, damage, "models/objects/gibs/bone/tris.md2", GIB_ORGANIC);
|
|
7619
|
+
spawnHead(sys, origin, damage);
|
|
7535
7620
|
} else {
|
|
7536
7621
|
const defs = damageOrDefs;
|
|
7537
7622
|
for (const def of defs) {
|