tosijs-3d 0.7.2 → 0.7.4
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/CHANGELOG.md +900 -0
- package/dist/b3d-aircraft.d.ts +14 -0
- package/dist/b3d-aircraft.d.ts.map +1 -1
- package/dist/b3d-aircraft.js +45 -0
- package/dist/b3d-aircraft.js.map +1 -1
- package/dist/b3d-ambient.d.ts +12 -0
- package/dist/b3d-ambient.d.ts.map +1 -1
- package/dist/b3d-ambient.js +83 -1
- package/dist/b3d-ambient.js.map +1 -1
- package/dist/b3d-biped.d.ts +290 -0
- package/dist/b3d-biped.d.ts.map +1 -1
- package/dist/b3d-biped.js +1366 -22
- package/dist/b3d-biped.js.map +1 -1
- package/dist/b3d-collisions.d.ts.map +1 -1
- package/dist/b3d-collisions.js +45 -7
- package/dist/b3d-collisions.js.map +1 -1
- package/dist/b3d-controllable.d.ts +50 -0
- package/dist/b3d-controllable.d.ts.map +1 -1
- package/dist/b3d-controllable.js +61 -0
- package/dist/b3d-controllable.js.map +1 -1
- package/dist/b3d-death.d.ts +26 -0
- package/dist/b3d-death.d.ts.map +1 -1
- package/dist/b3d-death.js +224 -2
- package/dist/b3d-death.js.map +1 -1
- package/dist/b3d-interactive.d.ts +80 -0
- package/dist/b3d-interactive.d.ts.map +1 -0
- package/dist/b3d-interactive.js +284 -0
- package/dist/b3d-interactive.js.map +1 -0
- package/dist/b3d-library.d.ts +39 -0
- package/dist/b3d-library.d.ts.map +1 -1
- package/dist/b3d-library.js +67 -0
- package/dist/b3d-library.js.map +1 -1
- package/dist/b3d-svg-plane.d.ts +35 -0
- package/dist/b3d-svg-plane.d.ts.map +1 -1
- package/dist/b3d-svg-plane.js +96 -8
- package/dist/b3d-svg-plane.js.map +1 -1
- package/dist/b3d-water.d.ts.map +1 -1
- package/dist/b3d-water.js +32 -6
- package/dist/b3d-water.js.map +1 -1
- package/dist/buoyancy.d.ts +90 -0
- package/dist/buoyancy.d.ts.map +1 -0
- package/dist/buoyancy.js +150 -0
- package/dist/buoyancy.js.map +1 -0
- package/dist/curve-field.d.ts +39 -0
- package/dist/curve-field.d.ts.map +1 -0
- package/dist/curve-field.js +491 -0
- package/dist/curve-field.js.map +1 -0
- package/dist/curve.d.ts +241 -0
- package/dist/curve.d.ts.map +1 -0
- package/dist/curve.js +559 -0
- package/dist/curve.js.map +1 -0
- package/dist/dialog-placement.d.ts +69 -7
- package/dist/dialog-placement.d.ts.map +1 -1
- package/dist/dialog-placement.js +90 -9
- package/dist/dialog-placement.js.map +1 -1
- package/dist/embed-font.d.ts +48 -0
- package/dist/embed-font.d.ts.map +1 -0
- package/dist/embed-font.js +135 -0
- package/dist/embed-font.js.map +1 -0
- package/dist/footprint-field.d.ts +30 -0
- package/dist/footprint-field.d.ts.map +1 -0
- package/dist/footprint-field.js +256 -0
- package/dist/footprint-field.js.map +1 -0
- package/dist/frame-panel.d.ts.map +1 -1
- package/dist/frame-panel.js +15 -12
- package/dist/frame-panel.js.map +1 -1
- package/dist/glb-manifest.d.ts +75 -0
- package/dist/glb-manifest.d.ts.map +1 -0
- package/dist/glb-manifest.js +198 -0
- package/dist/glb-manifest.js.map +1 -0
- package/dist/icon-data.d.ts.map +1 -1
- package/dist/icon-data.js +20 -1
- package/dist/icon-data.js.map +1 -1
- package/dist/index.d.ts +33 -4
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +38 -3
- package/dist/index.js.map +1 -1
- package/dist/interaction.d.ts +66 -0
- package/dist/interaction.d.ts.map +1 -0
- package/dist/interaction.js +117 -0
- package/dist/interaction.js.map +1 -0
- package/dist/interactive-behavior.d.ts +105 -0
- package/dist/interactive-behavior.d.ts.map +1 -0
- package/dist/interactive-behavior.js +253 -0
- package/dist/interactive-behavior.js.map +1 -0
- package/dist/key-layout.d.ts +70 -0
- package/dist/key-layout.d.ts.map +1 -1
- package/dist/key-layout.js +122 -0
- package/dist/key-layout.js.map +1 -1
- package/dist/keyboard-gamepad.d.ts.map +1 -1
- package/dist/keyboard-gamepad.js +19 -6
- package/dist/keyboard-gamepad.js.map +1 -1
- package/dist/keyboard.d.ts +100 -1
- package/dist/keyboard.d.ts.map +1 -1
- package/dist/keyboard.js +280 -35
- package/dist/keyboard.js.map +1 -1
- package/dist/mantle.d.ts +56 -0
- package/dist/mantle.d.ts.map +1 -0
- package/dist/mantle.js +115 -0
- package/dist/mantle.js.map +1 -0
- package/dist/popup-surface.d.ts +5 -1
- package/dist/popup-surface.d.ts.map +1 -1
- package/dist/popup-surface.js +181 -14
- package/dist/popup-surface.js.map +1 -1
- package/dist/surface.d.ts.map +1 -1
- package/dist/surface.js +111 -15
- package/dist/surface.js.map +1 -1
- package/dist/svg-icons.d.ts.map +1 -1
- package/dist/svg-icons.js +13 -1
- package/dist/svg-icons.js.map +1 -1
- package/dist/svg-texture.d.ts.map +1 -1
- package/dist/svg-texture.js +40 -1
- package/dist/svg-texture.js.map +1 -1
- package/dist/swim-aim.d.ts +78 -0
- package/dist/swim-aim.d.ts.map +1 -0
- package/dist/swim-aim.js +140 -0
- package/dist/swim-aim.js.map +1 -0
- package/dist/theme-editor.d.ts +41 -0
- package/dist/theme-editor.d.ts.map +1 -0
- package/dist/theme-editor.js +303 -0
- package/dist/theme-editor.js.map +1 -0
- package/dist/tosi-b3d.d.ts +24 -4
- package/dist/tosi-b3d.d.ts.map +1 -1
- package/dist/tosi-b3d.js +238 -37
- package/dist/tosi-b3d.js.map +1 -1
- package/dist/vector-field.d.ts +58 -0
- package/dist/vector-field.d.ts.map +1 -0
- package/dist/vector-field.js +321 -0
- package/dist/vector-field.js.map +1 -0
- package/dist/virtual-gamepad.d.ts.map +1 -1
- package/dist/virtual-gamepad.js +46 -9
- package/dist/virtual-gamepad.js.map +1 -1
- package/dist/w3d-theme.d.ts +115 -17
- package/dist/w3d-theme.d.ts.map +1 -1
- package/dist/w3d-theme.js +311 -0
- package/dist/w3d-theme.js.map +1 -1
- package/dist/water-normal.d.ts +26 -0
- package/dist/water-normal.d.ts.map +1 -0
- package/dist/water-normal.js +105 -0
- package/dist/water-normal.js.map +1 -0
- package/dist/widgets3d-layout.d.ts +58 -0
- package/dist/widgets3d-layout.d.ts.map +1 -1
- package/dist/widgets3d-layout.js +79 -1
- package/dist/widgets3d-layout.js.map +1 -1
- package/dist/widgets3d.d.ts +51 -2
- package/dist/widgets3d.d.ts.map +1 -1
- package/dist/widgets3d.js +418 -112
- package/dist/widgets3d.js.map +1 -1
- package/dist/wreck-fall.d.ts +86 -0
- package/dist/wreck-fall.d.ts.map +1 -0
- package/dist/wreck-fall.js +129 -0
- package/dist/wreck-fall.js.map +1 -0
- package/package.json +9 -6
package/dist/b3d-death.js
CHANGED
|
@@ -101,12 +101,13 @@ tosi-b3d { width: 100%; height: 100%; }
|
|
|
101
101
|
*/
|
|
102
102
|
/*{ "parent": "World Sim" }*/
|
|
103
103
|
import * as BABYLON from '@babylonjs/core';
|
|
104
|
-
import { B3dChild, sceneDelta } from './b3d-utils';
|
|
104
|
+
import { B3dChild, sceneDelta, collidable } from './b3d-utils';
|
|
105
105
|
import { spawnPrefab } from './prefab';
|
|
106
106
|
import { explosionFx } from './b3d-warhead';
|
|
107
107
|
import { panel3d, label3d, button3d } from './widgets3d';
|
|
108
108
|
import { panelFitWidth } from './widgets3d-layout';
|
|
109
109
|
import { b3dSvgPlane } from './b3d-svg-plane';
|
|
110
|
+
import { newWreckFall, wreckFallStep } from './wreck-fall';
|
|
110
111
|
const DEG = Math.PI / 180;
|
|
111
112
|
/** A soft round dot for the wreck fire/smoke. A ParticleSystem with NO particleTexture emits
|
|
112
113
|
* nothing (it silently produced zero particles — that was the "lost explosion"), so it needs one. */
|
|
@@ -161,6 +162,11 @@ export class B3dDeath extends B3dChild {
|
|
|
161
162
|
_fires = [];
|
|
162
163
|
_charMats = [];
|
|
163
164
|
_obs = null;
|
|
165
|
+
/** The falling wreck, while it is still in the air. */
|
|
166
|
+
_fall = null;
|
|
167
|
+
_offOrigin = null;
|
|
168
|
+
_fallObs = null;
|
|
169
|
+
_fallRay = new BABYLON.Ray(BABYLON.Vector3.Zero(), BABYLON.Vector3.Down(), 2000);
|
|
164
170
|
_timer = null;
|
|
165
171
|
_onDeath = (e) => this._handleDeath(e);
|
|
166
172
|
sceneReady(owner) {
|
|
@@ -263,13 +269,25 @@ export class B3dDeath extends B3dChild {
|
|
|
263
269
|
else {
|
|
264
270
|
this._burn(scene, node, at);
|
|
265
271
|
}
|
|
272
|
+
this._startFall(scene, node, entity);
|
|
266
273
|
}
|
|
267
274
|
catch (err) {
|
|
268
275
|
console.warn('b3d-death: wreckage FX failed (exit continues)', err);
|
|
269
276
|
}
|
|
270
277
|
}
|
|
271
|
-
|
|
278
|
+
/*
|
|
279
|
+
2. Stop driving the corpse — and TELL it that it is one.
|
|
280
|
+
|
|
281
|
+
`releaseFocus()` already stops a focus-managed entity, but incidentally: it
|
|
282
|
+
nulls `inputProvider` and `_update` short-circuits on that. `halt()` says it
|
|
283
|
+
outright, and covers a `die()` handed an entity the focus manager never held
|
|
284
|
+
(a scripted death, an AI, a test), which nothing else would stop.
|
|
285
|
+
|
|
286
|
+
Order matters: `_startFall` above has already read the velocity it died
|
|
287
|
+
with.
|
|
288
|
+
*/
|
|
272
289
|
this.focusManager?.releaseFocus();
|
|
290
|
+
entity?.halt?.();
|
|
273
291
|
// 3. Orbit the mistake you made — FLAT ONLY. `setGameplayCamera` is a no-op in a headset (the
|
|
274
292
|
// WebXR camera owns the view; swapping it blanks the display), and returns false so we skip
|
|
275
293
|
// building the orbit rig entirely. In VR you keep your head where it is and the Respawn
|
|
@@ -321,10 +339,207 @@ export class B3dDeath extends B3dChild {
|
|
|
321
339
|
catch (err) {
|
|
322
340
|
console.warn('b3d-death: spectate camera failed (exit continues)', err);
|
|
323
341
|
}
|
|
342
|
+
/*
|
|
343
|
+
SURVIVE A FLOATING-ORIGIN REBASE.
|
|
344
|
+
|
|
345
|
+
Terrain rebases the world periodically (see B3d.shiftOrigin), and everything
|
|
346
|
+
holding a WORLD position has to opt in or it is silently left behind. Death
|
|
347
|
+
holds three: the spectate camera (position AND target), the fire emitters,
|
|
348
|
+
and the fall's cached ground-sample point.
|
|
349
|
+
|
|
350
|
+
Nothing here was registered, so in a terrain scene a rebase mid-death moved
|
|
351
|
+
the world out from under the shot — the camera left pointing at where the
|
|
352
|
+
crash used to be. That is the same FAMILY of symptom as the origin-teleport
|
|
353
|
+
fixed above and would read identically ("the wreck is way off, I am looking
|
|
354
|
+
at nothing"), which is exactly why it is worth closing rather than waiting
|
|
355
|
+
to see it: two causes producing one description is how a fixed bug looks
|
|
356
|
+
unfixed.
|
|
357
|
+
|
|
358
|
+
A LISTENER, not `registerWorldRoot`: a camera is not a TransformNode we own,
|
|
359
|
+
and the emitters are plain vectors. Per CLAUDE.md, anything holding world
|
|
360
|
+
coordinates in JS fixes ITSELF and must not also register a root.
|
|
361
|
+
|
|
362
|
+
The wreck NODE needs nothing — `_startFall` reads its position from the node
|
|
363
|
+
every frame and writes it back, so a shift is absorbed. That was written for
|
|
364
|
+
a different reason and pays off here.
|
|
365
|
+
*/
|
|
366
|
+
this.owner.addOriginListener(this._shiftOrigin);
|
|
367
|
+
this._offOrigin = () => this.owner?.removeOriginListener(this._shiftOrigin);
|
|
324
368
|
// 4. A beat to watch it burn, THEN the panel. Offering a menu over a fireball reads
|
|
325
369
|
// as a bug report rather than a death.
|
|
326
370
|
this._timer = setTimeout(() => this._showPanel(), this.delay * 1000);
|
|
327
371
|
}
|
|
372
|
+
/**
|
|
373
|
+
* DEAD THINGS FALL.
|
|
374
|
+
*
|
|
375
|
+
* A wreck used to stop where it died, so a kill at altitude left a charred
|
|
376
|
+
* airframe hanging in the sky — and, because it is still solid, waiting to be
|
|
377
|
+
* flown into. Tonio, from a headset: _"I collided with wreckage high up … the
|
|
378
|
+
* wrecked plane hanging in mid-air (it should really tumble to the ground)."_
|
|
379
|
+
*
|
|
380
|
+
* The rules are pure and tested in [[wreck-fall]]; this is the Babylon side:
|
|
381
|
+
* sample the ground, step the model, carry the node, the fires and the
|
|
382
|
+
* spectate camera down with it.
|
|
383
|
+
*
|
|
384
|
+
* **Position is read from the NODE each frame and written back**, rather than
|
|
385
|
+
* held in JS across frames. A floating-origin rebase moves the node, and a
|
|
386
|
+
* model holding a world position would keep flying the wreck to where the
|
|
387
|
+
* world used to be.
|
|
388
|
+
*/
|
|
389
|
+
_startFall(scene, node, entity) {
|
|
390
|
+
if (node == null)
|
|
391
|
+
return;
|
|
392
|
+
const vel = entity?.getWorldVelocity?.() ?? null;
|
|
393
|
+
// Own meshes never count as ground — a wreck must not land on its own wing.
|
|
394
|
+
const own = new Set();
|
|
395
|
+
if (node instanceof BABYLON.AbstractMesh)
|
|
396
|
+
own.add(node);
|
|
397
|
+
for (const child of node.getChildMeshes())
|
|
398
|
+
own.add(child);
|
|
399
|
+
const skip = collidable((m) => own.has(m));
|
|
400
|
+
/*
|
|
401
|
+
HOW you died decides how far the wreck goes.
|
|
402
|
+
|
|
403
|
+
Flying into something is an inelastic collision and eats most of the energy;
|
|
404
|
+
being shot down leaves you with all of it, still moving, now on fire. Only
|
|
405
|
+
this side knows which happened — `crashed` is set by the airframe's own
|
|
406
|
+
impact test — so the pure model takes it as a number and this makes the call.
|
|
407
|
+
|
|
408
|
+
Without it a crash at 90 m/s from 130 m carried the wreck ~450 m downrange:
|
|
409
|
+
a glide, not a crash, and it dragged the spectate camera across that much
|
|
410
|
+
terrain with it.
|
|
411
|
+
*/
|
|
412
|
+
const impact = entity?.crashed === true;
|
|
413
|
+
const carry = impact ? 0.25 : 0.7;
|
|
414
|
+
const start = node.getAbsolutePosition();
|
|
415
|
+
// Nothing under it is a real case — the edge of a finite ground plane, a
|
|
416
|
+
// kill out over open water in a scene with no sea floor. Without a floor
|
|
417
|
+
// the wreck falls forever, the spectate camera chases it down forever, and
|
|
418
|
+
// the observer never comes off. Found by killing at z≈1690 in a demo whose
|
|
419
|
+
// ground is 600 m across: it reached y = −25 and kept going.
|
|
420
|
+
const abandonY = start.y - 1500;
|
|
421
|
+
this._fall = newWreckFall({ x: start.x, y: start.y, z: start.z }, vel ? { x: vel.x, y: vel.y, z: vel.z } : { x: 0, y: 0, z: 0 }, { carry });
|
|
422
|
+
// Tumble about a FIXED world axis through the wreck: an airframe that has
|
|
423
|
+
// stopped flying has no frame of its own worth preserving.
|
|
424
|
+
const axis = new BABYLON.Vector3(this._fall.axis.x, this._fall.axis.y, this._fall.axis.z);
|
|
425
|
+
const rest = node.rotationQuaternion
|
|
426
|
+
? node.rotationQuaternion.clone()
|
|
427
|
+
: BABYLON.Quaternion.FromEulerVector(node.rotation);
|
|
428
|
+
const spin = new BABYLON.Quaternion();
|
|
429
|
+
let groundY = -Infinity; // -Infinity means "never picked"
|
|
430
|
+
let pickedAtX = 0;
|
|
431
|
+
let pickedAtZ = 0;
|
|
432
|
+
this._fallShift = (dx, dz) => {
|
|
433
|
+
pickedAtX += dx;
|
|
434
|
+
pickedAtZ += dz;
|
|
435
|
+
};
|
|
436
|
+
this._fallObs = scene.onBeforeRenderObservable.add(() => {
|
|
437
|
+
const fall = this._fall;
|
|
438
|
+
if (fall == null || node.isDisposed())
|
|
439
|
+
return;
|
|
440
|
+
const dt = sceneDelta(scene);
|
|
441
|
+
if (dt <= 0)
|
|
442
|
+
return;
|
|
443
|
+
// Node → model, so an origin shift is absorbed (see the note above).
|
|
444
|
+
const here = node.getAbsolutePosition();
|
|
445
|
+
fall.pos.x = here.x;
|
|
446
|
+
fall.pos.y = here.y;
|
|
447
|
+
fall.pos.z = here.z;
|
|
448
|
+
/*
|
|
449
|
+
RE-PICK ONLY WHEN THE ANSWER CAN HAVE CHANGED.
|
|
450
|
+
|
|
451
|
+
`scene.pickWithRay` walks every pickable mesh and does a full triangle
|
|
452
|
+
intersection on each one whose bounding box the ray enters. A vertical ray
|
|
453
|
+
through a terrain scene enters several tiles of tens of thousands of
|
|
454
|
+
triangles each, so this is milliseconds, not microseconds — and running it
|
|
455
|
+
per frame for the seconds a wreck takes to fall is the likeliest source of
|
|
456
|
+
"the world hung before the plane stopped flying" (Tonio, VR). It fits the
|
|
457
|
+
other half of that report too: pressing Respawn before the hang avoids it,
|
|
458
|
+
and Respawn is what takes this observer off.
|
|
459
|
+
|
|
460
|
+
The ground under a wreck falling STRAIGHT DOWN does not change at all, so
|
|
461
|
+
the whole descent needs one pick. Re-pick when it has drifted sideways far
|
|
462
|
+
enough to be over something else, or when it is close enough that being
|
|
463
|
+
wrong matters.
|
|
464
|
+
*/
|
|
465
|
+
const movedX = here.x - pickedAtX;
|
|
466
|
+
const movedZ = here.z - pickedAtZ;
|
|
467
|
+
if (groundY === -Infinity ||
|
|
468
|
+
movedX * movedX + movedZ * movedZ > 64 || // 8 m sideways
|
|
469
|
+
here.y - groundY < 60) {
|
|
470
|
+
pickedAtX = here.x;
|
|
471
|
+
pickedAtZ = here.z;
|
|
472
|
+
this._fallRay.origin.copyFromFloats(here.x, here.y + 1, here.z);
|
|
473
|
+
this._fallRay.direction.copyFromFloats(0, -1, 0);
|
|
474
|
+
const hit = scene.pickWithRay(this._fallRay, skip);
|
|
475
|
+
groundY = hit?.hit ? here.y + 1 - hit.distance : -Infinity;
|
|
476
|
+
// Nothing under it. Re-picking every frame will not conjure ground, and
|
|
477
|
+
// the abandon guard below ends it — so stop asking.
|
|
478
|
+
if (groundY === -Infinity) {
|
|
479
|
+
pickedAtX = here.x;
|
|
480
|
+
pickedAtZ = here.z;
|
|
481
|
+
groundY = -1e9;
|
|
482
|
+
}
|
|
483
|
+
}
|
|
484
|
+
const { impacted } = wreckFallStep(fall, groundY, dt);
|
|
485
|
+
node.position.copyFromFloats(fall.pos.x, fall.pos.y, fall.pos.z);
|
|
486
|
+
BABYLON.Quaternion.RotationAxisToRef(axis, fall.angle, spin);
|
|
487
|
+
node.rotationQuaternion = spin.multiply(rest);
|
|
488
|
+
// The fires ride along — a smoke column left behind at the kill point,
|
|
489
|
+
// with the wreck a hundred metres below it, is worse than no fire.
|
|
490
|
+
for (const p of this._fires) {
|
|
491
|
+
const e = p.emitter;
|
|
492
|
+
if (e && typeof e.copyFromFloats === 'function') {
|
|
493
|
+
e.copyFromFloats(fall.pos.x, fall.pos.y, fall.pos.z);
|
|
494
|
+
}
|
|
495
|
+
}
|
|
496
|
+
// And so does the shot: you are watching THIS, so keep it in frame.
|
|
497
|
+
const cam = this._orbitCam;
|
|
498
|
+
if (cam instanceof BABYLON.ArcRotateCamera) {
|
|
499
|
+
cam.target.copyFromFloats(fall.pos.x, fall.pos.y + this.orbitHeight * 0.35, fall.pos.z);
|
|
500
|
+
}
|
|
501
|
+
else if (cam instanceof BABYLON.FreeCamera) {
|
|
502
|
+
cam.setTarget(new BABYLON.Vector3(fall.pos.x, fall.pos.y, fall.pos.z));
|
|
503
|
+
}
|
|
504
|
+
if (impacted) {
|
|
505
|
+
try {
|
|
506
|
+
explosionFx(scene, new BABYLON.Vector3(fall.pos.x, fall.pos.y, fall.pos.z), this.blastRadius * 0.5);
|
|
507
|
+
}
|
|
508
|
+
catch {
|
|
509
|
+
// Cosmetics never block the exit — same rule as the death FX above.
|
|
510
|
+
}
|
|
511
|
+
}
|
|
512
|
+
if (fall.grounded || fall.pos.y < abandonY) {
|
|
513
|
+
scene.onBeforeRenderObservable.remove(this._fallObs);
|
|
514
|
+
this._fallObs = null;
|
|
515
|
+
this._fall = null;
|
|
516
|
+
}
|
|
517
|
+
});
|
|
518
|
+
}
|
|
519
|
+
/** Move everything death holds in world space by a rebase. See `die()`. */
|
|
520
|
+
_shiftOrigin = (dx, dz) => {
|
|
521
|
+
const cam = this._orbitCam;
|
|
522
|
+
if (cam != null) {
|
|
523
|
+
cam.position.x += dx;
|
|
524
|
+
cam.position.z += dz;
|
|
525
|
+
if (cam instanceof BABYLON.ArcRotateCamera) {
|
|
526
|
+
cam.target.x += dx;
|
|
527
|
+
cam.target.z += dz;
|
|
528
|
+
}
|
|
529
|
+
}
|
|
530
|
+
for (const p of this._fires) {
|
|
531
|
+
const e = p.emitter;
|
|
532
|
+
if (e &&
|
|
533
|
+
typeof e.addInPlaceFromFloats === 'function') {
|
|
534
|
+
e.addInPlaceFromFloats(dx, 0, dz);
|
|
535
|
+
}
|
|
536
|
+
}
|
|
537
|
+
// The fall re-reads the node each frame, so only its cached sample point is
|
|
538
|
+
// stale — shift it so the shift does not look like sideways drift and force
|
|
539
|
+
// a needless re-pick.
|
|
540
|
+
this._fallShift?.(dx, dz);
|
|
541
|
+
};
|
|
542
|
+
_fallShift = null;
|
|
328
543
|
_burn(scene, mesh, at) {
|
|
329
544
|
const fire = new BABYLON.ParticleSystem('wreck-fire', 220, scene);
|
|
330
545
|
fire.particleTexture = sootDot(scene);
|
|
@@ -469,6 +684,13 @@ export class B3dDeath extends B3dChild {
|
|
|
469
684
|
if (scene && this._obs)
|
|
470
685
|
scene.onBeforeRenderObservable.remove(this._obs);
|
|
471
686
|
this._obs = null;
|
|
687
|
+
if (scene && this._fallObs)
|
|
688
|
+
scene.onBeforeRenderObservable.remove(this._fallObs);
|
|
689
|
+
this._fallObs = null;
|
|
690
|
+
this._fall = null;
|
|
691
|
+
this._fallShift = null;
|
|
692
|
+
this._offOrigin?.();
|
|
693
|
+
this._offOrigin = null;
|
|
472
694
|
for (const p of this._fires)
|
|
473
695
|
p.dispose();
|
|
474
696
|
this._fires = [];
|
package/dist/b3d-death.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"b3d-death.js","sourceRoot":"","sources":["../src/b3d-death.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"b3d-death.js","sourceRoot":"","sources":["../src/b3d-death.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
import * as BABYLON from '@babylonjs/core';
|
|
2
|
+
import { B3dChild } from './b3d-utils';
|
|
3
|
+
import type { B3d } from './tosi-b3d';
|
|
4
|
+
import { type InteractionInfo } from './interactive-behavior';
|
|
5
|
+
export declare class B3dInteractive extends B3dChild {
|
|
6
|
+
static styleSpec: {
|
|
7
|
+
':host': {
|
|
8
|
+
display: string;
|
|
9
|
+
};
|
|
10
|
+
};
|
|
11
|
+
static initAttributes: {
|
|
12
|
+
/** Mesh/node name. Empty = the mesh of the element this is nested inside. */
|
|
13
|
+
target: string;
|
|
14
|
+
/** `'subtree'` (the node and its children) or `'self'`. */
|
|
15
|
+
include: string;
|
|
16
|
+
/** Max distance in world units; 0 = no limit. */
|
|
17
|
+
reach: number;
|
|
18
|
+
disabled: boolean;
|
|
19
|
+
/** Hover outline colour, or `'none'`. */
|
|
20
|
+
highlight: string;
|
|
21
|
+
};
|
|
22
|
+
target: string;
|
|
23
|
+
include: string;
|
|
24
|
+
reach: number;
|
|
25
|
+
disabled: boolean;
|
|
26
|
+
highlight: string;
|
|
27
|
+
owner: B3d | null;
|
|
28
|
+
whenActivated: ((info: InteractionInfo) => void) | null;
|
|
29
|
+
whenHovered: ((info: InteractionInfo) => void) | null;
|
|
30
|
+
whenUnhovered: ((info: InteractionInfo) => void) | null;
|
|
31
|
+
whenRefused: ((info: InteractionInfo) => void) | null;
|
|
32
|
+
/**
|
|
33
|
+
* Other features' refusals — see the doc above. Lives on the element (not
|
|
34
|
+
* behind the behaviour) so a `lockable` can be pushed before the scene is up.
|
|
35
|
+
*/
|
|
36
|
+
vetoes: Array<{
|
|
37
|
+
name: string;
|
|
38
|
+
blocks: () => boolean;
|
|
39
|
+
}>;
|
|
40
|
+
private _behavior;
|
|
41
|
+
private _cache;
|
|
42
|
+
content: () => string;
|
|
43
|
+
sceneReady(owner: B3d, _scene: BABYLON.Scene): void;
|
|
44
|
+
sceneDispose(): void;
|
|
45
|
+
/** Is the pointer on it right now? */
|
|
46
|
+
get hovered(): boolean;
|
|
47
|
+
/** True when nothing refuses an activation — i.e. using it would do something. */
|
|
48
|
+
get operable(): boolean;
|
|
49
|
+
/** Use it without pointing at it (a key press, an NPC, a test). */
|
|
50
|
+
activate(info?: Partial<InteractionInfo>): boolean;
|
|
51
|
+
/**
|
|
52
|
+
* Tuned state for the console / `hj eval`. Says whether the target NAME
|
|
53
|
+
* resolved, which is the one thing that silently makes an interactive inert.
|
|
54
|
+
*/
|
|
55
|
+
get debugState(): {
|
|
56
|
+
enabled: boolean;
|
|
57
|
+
phase: import("./interaction").InteractPhase;
|
|
58
|
+
armed: boolean;
|
|
59
|
+
meshes: string[];
|
|
60
|
+
reach: number;
|
|
61
|
+
vetoes: string[];
|
|
62
|
+
target: any;
|
|
63
|
+
resolved: boolean;
|
|
64
|
+
} | {
|
|
65
|
+
attached: boolean;
|
|
66
|
+
target: any;
|
|
67
|
+
resolved: boolean;
|
|
68
|
+
};
|
|
69
|
+
/**
|
|
70
|
+
* The meshes that count as "this thing".
|
|
71
|
+
*
|
|
72
|
+
* Cached, because a pointer move fires on every frame the mouse is in motion
|
|
73
|
+
* and `getChildMeshes` allocates — but re-resolved whenever the cache is empty
|
|
74
|
+
* or anything in it has been disposed, so a GLB that loads late starts working
|
|
75
|
+
* when it arrives instead of never.
|
|
76
|
+
*/
|
|
77
|
+
private _meshes;
|
|
78
|
+
}
|
|
79
|
+
export declare const b3dInteractive: import("tosijs").ElementCreator<B3dInteractive>;
|
|
80
|
+
//# sourceMappingURL=b3d-interactive.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"b3d-interactive.d.ts","sourceRoot":"","sources":["../src/b3d-interactive.ts"],"names":[],"mappings":"AAuKA,OAAO,KAAK,OAAO,MAAM,iBAAiB,CAAA;AAC1C,OAAO,EAAE,QAAQ,EAAkB,MAAM,aAAa,CAAA;AACtD,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,YAAY,CAAA;AACrC,OAAO,EAEL,KAAK,eAAe,EACrB,MAAM,wBAAwB,CAAA;AAE/B,qBAAa,cAAe,SAAQ,QAAQ;IAC1C,MAAM,CAAC,SAAS;;;;MAIf;IAED,MAAM,CAAC,cAAc;QACnB,6EAA6E;;QAE7E,2DAA2D;;QAE3D,iDAAiD;;;QAKjD,yCAAyC;;MAE1C;IAEO,MAAM,EAAE,MAAM,CAAA;IACd,OAAO,EAAE,MAAM,CAAA;IACf,KAAK,EAAE,MAAM,CAAA;IACb,QAAQ,EAAE,OAAO,CAAA;IACjB,SAAS,EAAE,MAAM,CAAA;IAEzB,KAAK,EAAE,GAAG,GAAG,IAAI,CAAO;IAExB,aAAa,EAAE,CAAC,CAAC,IAAI,EAAE,eAAe,KAAK,IAAI,CAAC,GAAG,IAAI,CAAO;IAC9D,WAAW,EAAE,CAAC,CAAC,IAAI,EAAE,eAAe,KAAK,IAAI,CAAC,GAAG,IAAI,CAAO;IAC5D,aAAa,EAAE,CAAC,CAAC,IAAI,EAAE,eAAe,KAAK,IAAI,CAAC,GAAG,IAAI,CAAO;IAC9D,WAAW,EAAE,CAAC,CAAC,IAAI,EAAE,eAAe,KAAK,IAAI,CAAC,GAAG,IAAI,CAAO;IAE5D;;;OAGG;IACH,MAAM,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,OAAO,CAAA;KAAE,CAAC,CAAK;IAE3D,OAAO,CAAC,SAAS,CAAmC;IACpD,OAAO,CAAC,MAAM,CAAsC;IAEpD,OAAO,eAAW;IAElB,UAAU,CAAC,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,KAAK;IAmB5C,YAAY;IAOZ,sCAAsC;IACtC,IAAI,OAAO,IAAI,OAAO,CAErB;IAED,kFAAkF;IAClF,IAAI,QAAQ,IAAI,OAAO,CAEtB;IAED,mEAAmE;IACnE,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC,eAAe,CAAC,GAAG,OAAO;IAIlD;;;OAGG;IACH,IAAI,UAAU;;;;;;;;;;;;;MAQb;IAED;;;;;;;OAOG;IACH,OAAO,CAAC,OAAO;CAkBhB;AAED,eAAO,MAAM,cAAc,iDAEzB,CAAA"}
|