tosijs-3d 0.5.0 → 0.5.2

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.
Files changed (186) hide show
  1. package/README.md +5 -1
  2. package/dist/ambient-budget.d.ts.map +1 -1
  3. package/dist/ambient-budget.js +11 -0
  4. package/dist/ambient-budget.js.map +1 -1
  5. package/dist/ambient-leaves.d.ts.map +1 -1
  6. package/dist/ambient-leaves.js +11 -0
  7. package/dist/ambient-leaves.js.map +1 -1
  8. package/dist/b3d-ambient.d.ts.map +1 -1
  9. package/dist/b3d-ambient.js +17 -10
  10. package/dist/b3d-ambient.js.map +1 -1
  11. package/dist/b3d-biped.d.ts.map +1 -1
  12. package/dist/b3d-biped.js +4 -6
  13. package/dist/b3d-biped.js.map +1 -1
  14. package/dist/b3d-clouds.d.ts +6 -0
  15. package/dist/b3d-clouds.d.ts.map +1 -1
  16. package/dist/b3d-clouds.js +88 -22
  17. package/dist/b3d-clouds.js.map +1 -1
  18. package/dist/b3d-collisions.js +2 -2
  19. package/dist/b3d-collisions.js.map +1 -1
  20. package/dist/b3d-controllable.d.ts +2 -2
  21. package/dist/b3d-controllable.d.ts.map +1 -1
  22. package/dist/b3d-controllable.js +20 -3
  23. package/dist/b3d-controllable.js.map +1 -1
  24. package/dist/b3d-controller.d.ts.map +1 -1
  25. package/dist/b3d-controller.js +6 -2
  26. package/dist/b3d-controller.js.map +1 -1
  27. package/dist/b3d-destroyable.d.ts.map +1 -1
  28. package/dist/b3d-destroyable.js +7 -9
  29. package/dist/b3d-destroyable.js.map +1 -1
  30. package/dist/b3d-exploder.d.ts.map +1 -1
  31. package/dist/b3d-exploder.js +5 -10
  32. package/dist/b3d-exploder.js.map +1 -1
  33. package/dist/b3d-fog.d.ts.map +1 -1
  34. package/dist/b3d-fog.js +29 -0
  35. package/dist/b3d-fog.js.map +1 -1
  36. package/dist/b3d-input-focus.js +3 -3
  37. package/dist/b3d-input-focus.js.map +1 -1
  38. package/dist/b3d-launcher.d.ts.map +1 -1
  39. package/dist/b3d-launcher.js +6 -8
  40. package/dist/b3d-launcher.js.map +1 -1
  41. package/dist/b3d-light.d.ts.map +1 -1
  42. package/dist/b3d-light.js +5 -10
  43. package/dist/b3d-light.js.map +1 -1
  44. package/dist/b3d-loader.d.ts.map +1 -1
  45. package/dist/b3d-loader.js +4 -6
  46. package/dist/b3d-loader.js.map +1 -1
  47. package/dist/b3d-particles.d.ts.map +1 -1
  48. package/dist/b3d-particles.js +5 -10
  49. package/dist/b3d-particles.js.map +1 -1
  50. package/dist/b3d-physics.d.ts.map +1 -1
  51. package/dist/b3d-physics.js +5 -10
  52. package/dist/b3d-physics.js.map +1 -1
  53. package/dist/b3d-radar-blip.js +3 -3
  54. package/dist/b3d-radar-blip.js.map +1 -1
  55. package/dist/b3d-reflections.d.ts.map +1 -1
  56. package/dist/b3d-reflections.js +7 -12
  57. package/dist/b3d-reflections.js.map +1 -1
  58. package/dist/b3d-shadows.d.ts.map +1 -1
  59. package/dist/b3d-shadows.js +7 -12
  60. package/dist/b3d-shadows.js.map +1 -1
  61. package/dist/b3d-skybox.d.ts.map +1 -1
  62. package/dist/b3d-skybox.js +2 -6
  63. package/dist/b3d-skybox.js.map +1 -1
  64. package/dist/b3d-sound.d.ts.map +1 -1
  65. package/dist/b3d-sound.js +5 -10
  66. package/dist/b3d-sound.js.map +1 -1
  67. package/dist/b3d-svg-plane.d.ts.map +1 -1
  68. package/dist/b3d-svg-plane.js +6 -18
  69. package/dist/b3d-svg-plane.js.map +1 -1
  70. package/dist/b3d-terrain.js +1 -1
  71. package/dist/b3d-terrain.js.map +1 -1
  72. package/dist/b3d-trigger.d.ts.map +1 -1
  73. package/dist/b3d-trigger.js +5 -10
  74. package/dist/b3d-trigger.js.map +1 -1
  75. package/dist/b3d-turret.d.ts.map +1 -1
  76. package/dist/b3d-turret.js +2 -3
  77. package/dist/b3d-turret.js.map +1 -1
  78. package/dist/b3d-utils.d.ts.map +1 -1
  79. package/dist/b3d-utils.js +15 -1
  80. package/dist/b3d-utils.js.map +1 -1
  81. package/dist/b3d-warhead.d.ts.map +1 -1
  82. package/dist/b3d-warhead.js +2 -3
  83. package/dist/b3d-warhead.js.map +1 -1
  84. package/dist/b3d-water.d.ts.map +1 -1
  85. package/dist/b3d-water.js +39 -2
  86. package/dist/b3d-water.js.map +1 -1
  87. package/dist/cloud-shadows.d.ts.map +1 -1
  88. package/dist/cloud-shadows.js +37 -1
  89. package/dist/cloud-shadows.js.map +1 -1
  90. package/dist/control-input.d.ts.map +1 -1
  91. package/dist/control-input.js +13 -0
  92. package/dist/control-input.js.map +1 -1
  93. package/dist/destroyable-behavior.d.ts.map +1 -1
  94. package/dist/destroyable-behavior.js +11 -0
  95. package/dist/destroyable-behavior.js.map +1 -1
  96. package/dist/flow-layout.d.ts +42 -0
  97. package/dist/flow-layout.d.ts.map +1 -0
  98. package/dist/flow-layout.js +100 -0
  99. package/dist/flow-layout.js.map +1 -0
  100. package/dist/formations.d.ts.map +1 -1
  101. package/dist/formations.js +33 -0
  102. package/dist/formations.js.map +1 -1
  103. package/dist/frame-panel.d.ts.map +1 -1
  104. package/dist/frame-panel.js +11 -0
  105. package/dist/frame-panel.js.map +1 -1
  106. package/dist/glass-gamepad.d.ts +1 -1
  107. package/dist/glass-gamepad.d.ts.map +1 -1
  108. package/dist/glass-gamepad.js +55 -25
  109. package/dist/glass-gamepad.js.map +1 -1
  110. package/dist/hardware-gamepad.d.ts.map +1 -1
  111. package/dist/hardware-gamepad.js +10 -0
  112. package/dist/hardware-gamepad.js.map +1 -1
  113. package/dist/hud-math.d.ts.map +1 -1
  114. package/dist/hud-math.js +15 -0
  115. package/dist/hud-math.js.map +1 -1
  116. package/dist/hud.d.ts.map +1 -1
  117. package/dist/hud.js +13 -0
  118. package/dist/hud.js.map +1 -1
  119. package/dist/icon-data.d.ts +6 -0
  120. package/dist/icon-data.d.ts.map +1 -0
  121. package/dist/icon-data.js +37 -0
  122. package/dist/icon-data.js.map +1 -0
  123. package/dist/icon-name.d.ts +27 -0
  124. package/dist/icon-name.d.ts.map +1 -0
  125. package/dist/icon-name.js +120 -0
  126. package/dist/icon-name.js.map +1 -0
  127. package/dist/index.d.ts +7 -1
  128. package/dist/index.d.ts.map +1 -1
  129. package/dist/index.js +7 -0
  130. package/dist/index.js.map +1 -1
  131. package/dist/keyboard-gamepad.d.ts.map +1 -1
  132. package/dist/keyboard-gamepad.js +11 -0
  133. package/dist/keyboard-gamepad.js.map +1 -1
  134. package/dist/min-sim-conformance.d.ts +21 -0
  135. package/dist/min-sim-conformance.d.ts.map +1 -0
  136. package/dist/min-sim-conformance.js +218 -0
  137. package/dist/min-sim-conformance.js.map +1 -0
  138. package/dist/perf-probe.d.ts.map +1 -1
  139. package/dist/perf-probe.js +12 -0
  140. package/dist/perf-probe.js.map +1 -1
  141. package/dist/radar.d.ts.map +1 -1
  142. package/dist/radar.js +11 -0
  143. package/dist/radar.js.map +1 -1
  144. package/dist/shadow-decal.d.ts.map +1 -1
  145. package/dist/shadow-decal.js +41 -0
  146. package/dist/shadow-decal.js.map +1 -1
  147. package/dist/spatial-transform.d.ts.map +1 -1
  148. package/dist/spatial-transform.js +16 -0
  149. package/dist/spatial-transform.js.map +1 -1
  150. package/dist/svg-icons.d.ts +45 -0
  151. package/dist/svg-icons.d.ts.map +1 -0
  152. package/dist/svg-icons.js +362 -0
  153. package/dist/svg-icons.js.map +1 -0
  154. package/dist/svg-texture.d.ts.map +1 -1
  155. package/dist/svg-texture.js +2 -6
  156. package/dist/svg-texture.js.map +1 -1
  157. package/dist/tosi-b3d.d.ts +36 -33
  158. package/dist/tosi-b3d.d.ts.map +1 -1
  159. package/dist/tosi-b3d.js +81 -56
  160. package/dist/tosi-b3d.js.map +1 -1
  161. package/dist/touch-gamepad.d.ts +2 -2
  162. package/dist/touch-gamepad.d.ts.map +1 -1
  163. package/dist/touch-gamepad.js +6 -6
  164. package/dist/touch-gamepad.js.map +1 -1
  165. package/dist/widgets3d-layout.d.ts.map +1 -1
  166. package/dist/widgets3d-layout.js +15 -0
  167. package/dist/widgets3d-layout.js.map +1 -1
  168. package/dist/world-contract.d.ts +147 -0
  169. package/dist/world-contract.d.ts.map +1 -1
  170. package/dist/world-contract.js +17 -0
  171. package/dist/world-contract.js.map +1 -1
  172. package/dist/world-store.d.ts +46 -2
  173. package/dist/world-store.d.ts.map +1 -1
  174. package/dist/world-store.js +277 -0
  175. package/dist/world-store.js.map +1 -1
  176. package/dist/world-topology.d.ts +36 -0
  177. package/dist/world-topology.d.ts.map +1 -0
  178. package/dist/world-topology.js +174 -0
  179. package/dist/world-topology.js.map +1 -0
  180. package/dist/xr-frames.d.ts.map +1 -1
  181. package/dist/xr-frames.js +11 -0
  182. package/dist/xr-frames.js.map +1 -1
  183. package/dist/xr-gamepad.d.ts.map +1 -1
  184. package/dist/xr-gamepad.js +11 -0
  185. package/dist/xr-gamepad.js.map +1 -1
  186. package/package.json +8 -4
@@ -156,6 +156,11 @@ export class B3dClouds extends B3dChild {
156
156
  // harder than a few wisps). 0 ⇒ invisible even with castShadows on.
157
157
  shadowStrength: 0.65,
158
158
  seed: 1,
159
+ // Drift (m/s): the layer slides across the sky so clouds aren't a static backdrop. Gentle by
160
+ // default so it reads as WEATHER, not a frozen image — recycled blobs wrap in from upwind and
161
+ // fade up. (A future global wind system will drive these; for now they're the local dial.)
162
+ windX: 4,
163
+ windZ: 1.5,
159
164
  };
160
165
  /**
161
166
  * How deep in a cloud you are, 0…1. **Gameplay reads this** — break a lock, hide a ship,
@@ -180,6 +185,8 @@ export class B3dClouds extends B3dChild {
180
185
  _baseColor = new BABYLON.Color3(1, 1, 1);
181
186
  /** Whiteout colour, recomputed each frame — white at the cloud top, murk deeper down. */
182
187
  _fogColor = new BABYLON.Color3(1, 1, 1);
188
+ /** The skybox, so the whiteout can blot the SKY too (scene fog alone can't — it opts out). */
189
+ _sky = null;
183
190
  _lastCoverage = -1;
184
191
  _tick = () => this._update();
185
192
  _onShift = (dx, dz) => {
@@ -204,14 +211,20 @@ export class B3dClouds extends B3dChild {
204
211
  const rng = new MersenneTwister(this.seed);
205
212
  this._baseColor = BABYLON.Color3.FromHexString(this.color);
206
213
  const mat = new BABYLON.StandardMaterial('cloud-mat', scene);
207
- // LIT now — the sun rakes the tops and the undersides fall dark, which is what reads as a
208
- // cloud rather than a flat decal. `selfIllum` keeps it from going to a grey rock (the old
209
- // reason for disableLighting); `coverage` modulates all of this live in _update.
214
+ // FLAT by default — deliberate, not lazy. A cloud is a CLUMP of overlapping opaque blobs; the
215
+ // moment they're LIT, adjacent blobs shade differently, so wherever two surfaces coincide in
216
+ // depth the z-fight becomes VISIBLE and flickers like crazy as you tilt (worse once they
217
+ // drift). Flat, every blob is the SAME colour, so the z-fight is invisible — no flicker, ever.
218
+ // Form comes from the projected shadow + the fog whiteout + the silhouette, not per-blob
219
+ // shading. (A lit-but-stable version needs a single merged mesh or a deterministic opaque
220
+ // sort so ties don't flip — tracked in TODO. `backFaceCulling` ON for the same reason: a
221
+ // blob's dark interior must not compete with a neighbour's exterior in the depth buffer.)
210
222
  mat.diffuseColor = this._baseColor;
211
- mat.emissiveColor = this._baseColor.scale(this.selfIllum);
223
+ mat.emissiveColor = this._baseColor.clone(); // fully self-lit → flat lit blob, not a grey rock
212
224
  mat.specularColor = BABYLON.Color3.Black();
225
+ mat.disableLighting = true;
213
226
  mat.alpha = this.opacity;
214
- mat.backFaceCulling = false;
227
+ mat.backFaceCulling = true;
215
228
  this._mat = mat;
216
229
  const sizeMul = 0.7 + this.coverage * 0.6; // denser sky → bigger, more-overlapping blobs
217
230
  for (let i = 0; i < this.count; i++) {
@@ -239,7 +252,7 @@ export class B3dClouds extends B3dChild {
239
252
  if (m.receiveShadows && m.material)
240
253
  this._shadowMap.attachTo(m.material);
241
254
  }
242
- owner.onSceneAddition(this._onAddition);
255
+ owner.addSceneListener(this._onAddition);
243
256
  // The Perf Stats panel is the one debug readout that exists everywhere (incl. VR).
244
257
  this._removeDebug = owner.addDebugSource({
245
258
  name: 'cloud-shadows',
@@ -257,7 +270,7 @@ export class B3dClouds extends B3dChild {
257
270
  // Floating origin: blob positions are WORLD coordinates held in JS, so on a terrain rebase
258
271
  // they must shift with everything else or the whole sky would jump. (The per-frame recycle
259
272
  // would eventually mask it, but not without a visible lurch.)
260
- owner.onOriginShift(this._onShift);
273
+ owner.addOriginListener(this._onShift);
261
274
  scene.onBeforeCameraRenderObservable.add(this._tick);
262
275
  // The whiteout is a fog LAYER — the scene composites and smooths it, so it can't fight
263
276
  // b3d-fog or the sea, and nothing ever switches fogMode (see atmosphere.ts). The colour is
@@ -286,13 +299,13 @@ export class B3dClouds extends B3dChild {
286
299
  }
287
300
  sceneDispose() {
288
301
  this.owner?.scene.onBeforeCameraRenderObservable.removeCallback(this._tick);
289
- this.owner?.offOriginShift(this._onShift);
302
+ this.owner?.removeOriginListener(this._onShift);
290
303
  this._removeFogLayer?.();
291
304
  this._removeFogLayer = null;
292
305
  for (const b of this._blobs)
293
306
  b.dispose();
294
307
  this._blobs = [];
295
- this.owner?.offSceneAddition(this._onAddition);
308
+ this.owner?.removeSceneListener(this._onAddition);
296
309
  this._removeDebug?.();
297
310
  this._removeDebug = null;
298
311
  this._shadowMap?.dispose();
@@ -315,12 +328,11 @@ export class B3dClouds extends B3dChild {
315
328
  if (cov !== this._lastCoverage && this._mat != null) {
316
329
  this._lastCoverage = cov;
317
330
  this._shadowDirty = true;
318
- // Thicker sky ⇒ darker (storm grey) and less self-lit (dark underbellies). Opacity is NOT
319
- // touched — the blobs are solid; coverage changes how MANY and how DARK, not how see-through.
320
- const dark = 1 - 0.45 * cov;
321
- const illum = Math.min(1, Math.max(0, this.selfIllum * (1.4 - cov)));
331
+ // Thicker sky ⇒ darker (storm grey). Opacity is NOT touched — the blobs are solid; coverage
332
+ // changes how MANY and how DARK, not how see-through. Flat model: emissive IS what shows.
333
+ const dark = 1 - 0.5 * cov;
322
334
  this._mat.diffuseColor = this._baseColor.scale(dark);
323
- this._mat.emissiveColor = this._baseColor.scale(dark * illum);
335
+ this._mat.emissiveColor = this._baseColor.scale(dark);
324
336
  }
325
337
  return active;
326
338
  }
@@ -336,7 +348,7 @@ export class B3dClouds extends B3dChild {
336
348
  return;
337
349
  this._shadowRepaintAge = 10; // frames between checks — shadows are slow-moving
338
350
  // Lazy attach sweep: receivers arrive on their own schedule (terrain builds its tile pool
339
- // whenever it's ready, GLBs load async) and registration order isn't guaranteed. onSceneAddition
351
+ // whenever it's ready, GLBs load async) and registration order isn't guaranteed. addSceneListener
340
352
  // catches registered arrivals; this is the backstop for anything else — but only when the mesh
341
353
  // COUNT changed, so the steady state costs one length compare, not an O(meshes) sweep forever.
342
354
  if (scene.meshes.length !== this._lastSweptMeshCount) {
@@ -392,6 +404,8 @@ export class B3dClouds extends B3dChild {
392
404
  return;
393
405
  const eye = cam.globalPosition;
394
406
  const active = this._applyCoverage();
407
+ const dt = Math.min(0.1, (scene.getEngine().getDeltaTime() || 16) / 1000);
408
+ const drifting = this.windX !== 0 || this.windZ !== 0;
395
409
  // Recycle: a blob that falls behind wraps to the far side, so an endless cloudscape
396
410
  // costs a FIXED number of meshes. No allocation, no growth.
397
411
  let nearest = Infinity;
@@ -404,14 +418,49 @@ export class B3dClouds extends B3dChild {
404
418
  blob.setEnabled(on);
405
419
  if (!on)
406
420
  continue;
407
- const dx = blob.position.x - eye.x;
408
- const dz = blob.position.z - eye.z;
409
- const flat = Math.hypot(dx, dz);
410
- if (flat > this.spread) {
411
- blob.position.x = eye.x - dx;
412
- blob.position.z = eye.z - dz;
421
+ // Drift with the wind so the sky is alive, not a still image. The recycle below wraps a blob
422
+ // once it drifts off-field, and the edge fade hides the wrap. Shadows follow (dirty flag).
423
+ if (drifting) {
424
+ blob.position.x += this.windX * dt;
425
+ blob.position.z += this.windZ * dt;
426
+ this._shadowDirty = true;
427
+ }
428
+ // Recycle with HYSTERESIS: only wrap a blob once it's well PAST the edge, and drop it back to
429
+ // just INSIDE the opposite edge — never right at the boundary.
430
+ //
431
+ // ⚠️ The old code reflected across the eye (`eye - dx`), which keeps the SAME distance from
432
+ // it — so a blob just past `spread` landed just past it on the far side and re-triggered EVERY
433
+ // frame: a per-frame ping-pong that teleported the handful of boundary blobs back and forth.
434
+ // Static it looked fine (no blob was past `spread`); the moment the camera moved, a few blobs
435
+ // crossed the ring and "flickered like crazy". The gap between the wrap threshold (`s + pad`)
436
+ // and the landing point (`s - inset`) is the hysteresis band that stops any boundary thrash —
437
+ // and landing at a fixed inset (not a same-distance reflection or a modulo) means even a
438
+ // camera that jumps far in one frame lands cleanly inside.
439
+ const s = this.spread;
440
+ const pad = s * 0.08; // must be this far PAST the edge before it recycles
441
+ const inset = s * 0.05; // and reappears this far INSIDE the opposite edge
442
+ const wrapAxis = (p, e) => {
443
+ const r = p - e;
444
+ if (r > s + pad)
445
+ return e - (s - inset); // off the far edge → reappear just inside the near
446
+ if (r < -(s + pad))
447
+ return e + (s - inset);
448
+ return p;
449
+ };
450
+ const nx = wrapAxis(blob.position.x, eye.x);
451
+ const nz = wrapAxis(blob.position.z, eye.z);
452
+ if (nx !== blob.position.x || nz !== blob.position.z) {
453
+ blob.position.x = nx;
454
+ blob.position.z = nz;
413
455
  this._shadowDirty = true;
414
456
  }
457
+ const dx = blob.position.x - eye.x;
458
+ const dz = blob.position.z - eye.z;
459
+ // Fade near the field edge so a recycled blob doesn't POP: it's already nearly invisible by
460
+ // the time it reaches the boundary, wraps while unseen, then fades back up as it drifts inward.
461
+ // (`visibility` is per-mesh, so it composes with the shared material's `opacity`.)
462
+ const edgeDist = s - Math.max(Math.abs(dx), Math.abs(dz));
463
+ blob.visibility = Math.min(1, Math.max(0, edgeDist / (s * 0.35)));
415
464
  const dy = blob.position.y - eye.y;
416
465
  // True WORLD distance to the squashed-ellipsoid surface along the view ray — so the whiteout
417
466
  // builds over the same real distance from any direction. The old `hypot(dx, dy/0.45, dz) -
@@ -436,7 +485,12 @@ export class B3dClouds extends B3dChild {
436
485
  // clamps to 1 for anything nearer, including negative = inside) you STAY white the whole
437
486
  // time you're in the cloud, until you come out the far side.
438
487
  const startDist = Math.max(1, this.size * this.approach);
439
- const fullDist = startDist * 0.3; // total whiteout this far out — well before the surface
488
+ // Reach FULL immersion well before the surface (0.6·startDist, was 0.3): the scene fog is
489
+ // temporally smoothed (~0.25s), so at 60 m/s the *visible* whiteout lags the immersion ramp by
490
+ // ~15 m. Ramping to full earlier means the density has time to build to opaque BEFORE you enter
491
+ // — otherwise the fog reads as "snapping on right at entry" and, on a fast pass, never fully
492
+ // settles (distant geometry/shadows show through). Total whiteout is still comfortably close.
493
+ const fullDist = startDist * 0.6;
440
494
  this._immersion = band(nearest, startDist, fullDist);
441
495
  // Whiteout COLOUR by vertical depth: white near the cloud top, darkening as you sink. The
442
496
  // top of the layer is `altitude + thickness/2`; how far below it you sit (0…thickness) sets
@@ -451,6 +505,18 @@ export class B3dClouds extends B3dChild {
451
505
  const shade = 1 - 0.8 * frac * (0.35 + 0.65 * cov);
452
506
  this._fogColor.copyFrom(this._baseColor).scaleInPlace(shade);
453
507
  }
508
+ // Blot the SKY too. The whiteout is scene fog, but the skybox is infinite-distance and opts
509
+ // OUT of fog (applyFog=false — obey it and the sky would be white ALWAYS), so without this the
510
+ // sky shows straight through the whiteout. Fade the skybox by immersion; the fading sky reveals
511
+ // the scene clear colour, which we tint to the fog colour so what's behind it is white, not
512
+ // black. (Geometry is already whited out by the scene fog itself.)
513
+ if (this._sky == null)
514
+ this._sky = scene.meshes.find((m) => /sky/i.test(m.name)) ?? null;
515
+ if (this._sky != null) {
516
+ this._sky.visibility = 1 - this._immersion;
517
+ if (this._immersion > 0)
518
+ scene.clearColor.set(this._fogColor.r, this._fogColor.g, this._fogColor.b, 1);
519
+ }
454
520
  }
455
521
  }
456
522
  export const b3dClouds = B3dClouds.elementCreator({
@@ -1 +1 @@
1
- {"version":3,"file":"b3d-clouds.js","sourceRoot":"","sources":["../src/b3d-clouds.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"b3d-clouds.js","sourceRoot":"","sources":["../src/b3d-clouds.ts"],"names":[],"mappings":"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"}
@@ -193,11 +193,11 @@ export class B3dCollisions extends B3dChild {
193
193
  sceneReady(owner, _scene) {
194
194
  this.owner = owner;
195
195
  this._callback = this.processAdditions.bind(this);
196
- owner.onSceneAddition(this._callback);
196
+ owner.addSceneListener(this._callback);
197
197
  }
198
198
  sceneDispose() {
199
199
  if (this.owner && this._callback) {
200
- this.owner.offSceneAddition(this._callback);
200
+ this.owner.removeSceneListener(this._callback);
201
201
  }
202
202
  for (const collider of this.colliders) {
203
203
  collider.dispose();
@@ -1 +1 @@
1
- {"version":3,"file":"b3d-collisions.js","sourceRoot":"","sources":["../src/b3d-collisions.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"b3d-collisions.js","sourceRoot":"","sources":["../src/b3d-collisions.ts"],"names":[],"mappings":"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"}
@@ -13,8 +13,8 @@ export declare class B3dControllable extends AbstractMesh {
13
13
  sceneDispose(): void;
14
14
  applyInput(input: ControlInput, dt: number): void;
15
15
  getCameraTarget(): BABYLON.Node | null;
16
- onGainFocus(): void;
17
- onLoseFocus(): void;
16
+ handleGainFocus(): void;
17
+ handleLoseFocus(): void;
18
18
  protected _update: () => void;
19
19
  }
20
20
  //# sourceMappingURL=b3d-controllable.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"b3d-controllable.d.ts","sourceRoot":"","sources":["../src/b3d-controllable.ts"],"names":[],"mappings":"AAiBA,OAAO,KAAK,OAAO,MAAM,iBAAiB,CAAA;AAC1C,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAC1C,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,YAAY,CAAA;AAErC,OAAO,KAAK,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAClE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAErD,qBAAa,eAAgB,SAAQ,YAAY;IAC/C,aAAa,EAAE,aAAa,GAAG,IAAI,CAAO;IAC1C,YAAY,CAAC,EAAE,YAAY,CAAA;IAC3B,0EAA0E;IAC1E,SAAS,EAAE,YAAY,GAAG,IAAI,CAAO;IACrC,SAAS,CAAC,UAAU,SAAI;IAExB,UAAU,CAAC,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK;IAqB3C,YAAY;IAMZ,UAAU,CAAC,KAAK,EAAE,YAAY,EAAE,EAAE,EAAE,MAAM;IAI1C,eAAe,IAAI,OAAO,CAAC,IAAI,GAAG,IAAI;IAItC,WAAW;IAIX,WAAW;IAIX,SAAS,CAAC,OAAO,aAahB;CACF"}
1
+ {"version":3,"file":"b3d-controllable.d.ts","sourceRoot":"","sources":["../src/b3d-controllable.ts"],"names":[],"mappings":"AAkCA,OAAO,KAAK,OAAO,MAAM,iBAAiB,CAAA;AAC1C,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAC1C,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,YAAY,CAAA;AAErC,OAAO,KAAK,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAClE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAErD,qBAAa,eAAgB,SAAQ,YAAY;IAC/C,aAAa,EAAE,aAAa,GAAG,IAAI,CAAO;IAC1C,YAAY,CAAC,EAAE,YAAY,CAAA;IAC3B,0EAA0E;IAC1E,SAAS,EAAE,YAAY,GAAG,IAAI,CAAO;IACrC,SAAS,CAAC,UAAU,SAAI;IAExB,UAAU,CAAC,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK;IAqB3C,YAAY;IAMZ,UAAU,CAAC,KAAK,EAAE,YAAY,EAAE,EAAE,EAAE,MAAM;IAI1C,eAAe,IAAI,OAAO,CAAC,IAAI,GAAG,IAAI;IAItC,eAAe;IAIf,eAAe;IAIf,SAAS,CAAC,OAAO,aAahB;CACF"}
@@ -7,11 +7,28 @@ helicopters, boats, etc.
7
7
  Subclasses override `applyInput(input, dt)` with their specific movement model.
8
8
  The base class handles the update loop: poll input → apply input.
9
9
 
10
+ ## Example
11
+
12
+ The base class is abstract — you subclass it. A minimal one that yaws to the throttle
13
+ (real subclasses — [b3d-biped](?b3d-biped.ts), [b3d-car](?b3d-car.ts),
14
+ [b3d-aircraft](?b3d-aircraft.ts) — put a full movement model here):
15
+
16
+ ```javascript
17
+ import { B3dControllable } from 'tosijs-3d'
18
+
19
+ class Spinner extends B3dControllable {
20
+ applyInput(input, dt) {
21
+ // input is a ControlInput; act on the fields this entity cares about
22
+ if (this.meshNode) this.meshNode.rotation.y += input.throttle * dt * 3
23
+ }
24
+ }
25
+ ```
26
+
10
27
  ## Key Methods
11
28
 
12
29
  - `applyInput(input, dt)` — override with movement/animation logic
13
30
  - `getCameraTarget()` — returns the node cameras should follow
14
- - `onGainFocus()` / `onLoseFocus()` — lifecycle hooks for input switching
31
+ - `handleGainFocus()` / `handleLoseFocus()` — lifecycle hooks for input switching
15
32
  */
16
33
  /*{ "parent": "Input" }*/
17
34
  import { AbstractMesh } from './b3d-utils';
@@ -51,10 +68,10 @@ export class B3dControllable extends AbstractMesh {
51
68
  getCameraTarget() {
52
69
  return this.mesh ?? null;
53
70
  }
54
- onGainFocus() {
71
+ handleGainFocus() {
55
72
  this.inputProvider?.activate?.();
56
73
  }
57
- onLoseFocus() {
74
+ handleLoseFocus() {
58
75
  this.inputProvider?.deactivate?.();
59
76
  }
60
77
  _update = () => {
@@ -1 +1 @@
1
- {"version":3,"file":"b3d-controllable.js","sourceRoot":"","sources":["../src/b3d-controllable.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;EAcE;AACF,yBAAyB;AAGzB,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAE1C,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAI5C,MAAM,OAAO,eAAgB,SAAQ,YAAY;IAC/C,aAAa,GAAyB,IAAI,CAAA;IAC1C,YAAY,CAAe;IAC3B,0EAA0E;IAC1E,SAAS,GAAwB,IAAI,CAAA;IAC3B,UAAU,GAAG,CAAC,CAAA;IAExB,UAAU,CAAC,KAAU,EAAE,KAAoB;QACzC,KAAK,CAAC,UAAU,CAAC,KAAK,EAAE,KAAK,CAAC,CAAA;QAC9B,mFAAmF;QACnF,uFAAuF;QACvF,oCAAoC;QACpC,EAAE;QACF,qFAAqF;QACrF,sFAAsF;QACtF,oFAAoF;QACpF,qFAAqF;QACrF,oFAAoF;QACpF,+EAA+E;QAC/E,EAAE;QACF,qFAAqF;QACrF,oFAAoF;QACpF,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,sBAAsB,CAEzC,CAAA;QACR,KAAK,EAAE,aAAa,EAAE,CAAC,IAAI,CAAC,CAAA;IAC9B,CAAC;IAED,YAAY;QACV,IAAI,CAAC,aAAa,GAAG,IAAI,CAAA;QACzB,KAAK,CAAC,YAAY,EAAE,CAAA;IACtB,CAAC;IAED,6DAA6D;IAC7D,UAAU,CAAC,KAAmB,EAAE,EAAU;QACxC,qDAAqD;IACvD,CAAC;IAED,eAAe;QACb,OAAO,IAAI,CAAC,IAAI,IAAI,IAAI,CAAA;IAC1B,CAAC;IAED,WAAW;QACT,IAAI,CAAC,aAAa,EAAE,QAAQ,EAAE,EAAE,CAAA;IAClC,CAAC;IAED,WAAW;QACT,IAAI,CAAC,aAAa,EAAE,UAAU,EAAE,EAAE,CAAA;IACpC,CAAC;IAES,OAAO,GAAG,GAAG,EAAE;QACvB,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;QACtB,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,KAAK,EAAE,GAAG,CAAC,CAAA;QACzD,IAAI,CAAC,UAAU,GAAG,GAAG,CAAA;QAErB,IAAI,IAAI,CAAC,aAAa,IAAI,IAAI;YAAE,OAAM;QACtC,6EAA6E;QAC7E,6EAA6E;QAC7E,kFAAkF;QAClF,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,EAAE,aAAa,IAAI,IAAI,CAAA;QACjD,MAAM,KAAK,GAAG,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,UAAU,EAAE,CAAA;QAClE,IAAI,CAAC,SAAS,GAAG,KAAK,CAAA;QACtB,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,EAAE,CAAC,CAAA;IAC5B,CAAC,CAAA;CACF"}
1
+ {"version":3,"file":"b3d-controllable.js","sourceRoot":"","sources":["../src/b3d-controllable.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA+BE;AACF,yBAAyB;AAGzB,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAE1C,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAI5C,MAAM,OAAO,eAAgB,SAAQ,YAAY;IAC/C,aAAa,GAAyB,IAAI,CAAA;IAC1C,YAAY,CAAe;IAC3B,0EAA0E;IAC1E,SAAS,GAAwB,IAAI,CAAA;IAC3B,UAAU,GAAG,CAAC,CAAA;IAExB,UAAU,CAAC,KAAU,EAAE,KAAoB;QACzC,KAAK,CAAC,UAAU,CAAC,KAAK,EAAE,KAAK,CAAC,CAAA;QAC9B,mFAAmF;QACnF,uFAAuF;QACvF,oCAAoC;QACpC,EAAE;QACF,qFAAqF;QACrF,sFAAsF;QACtF,oFAAoF;QACpF,qFAAqF;QACrF,oFAAoF;QACpF,+EAA+E;QAC/E,EAAE;QACF,qFAAqF;QACrF,oFAAoF;QACpF,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,sBAAsB,CAEzC,CAAA;QACR,KAAK,EAAE,aAAa,EAAE,CAAC,IAAI,CAAC,CAAA;IAC9B,CAAC;IAED,YAAY;QACV,IAAI,CAAC,aAAa,GAAG,IAAI,CAAA;QACzB,KAAK,CAAC,YAAY,EAAE,CAAA;IACtB,CAAC;IAED,6DAA6D;IAC7D,UAAU,CAAC,KAAmB,EAAE,EAAU;QACxC,qDAAqD;IACvD,CAAC;IAED,eAAe;QACb,OAAO,IAAI,CAAC,IAAI,IAAI,IAAI,CAAA;IAC1B,CAAC;IAED,eAAe;QACb,IAAI,CAAC,aAAa,EAAE,QAAQ,EAAE,EAAE,CAAA;IAClC,CAAC;IAED,eAAe;QACb,IAAI,CAAC,aAAa,EAAE,UAAU,EAAE,EAAE,CAAA;IACpC,CAAC;IAES,OAAO,GAAG,GAAG,EAAE;QACvB,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;QACtB,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,KAAK,EAAE,GAAG,CAAC,CAAA;QACzD,IAAI,CAAC,UAAU,GAAG,GAAG,CAAA;QAErB,IAAI,IAAI,CAAC,aAAa,IAAI,IAAI;YAAE,OAAM;QACtC,6EAA6E;QAC7E,6EAA6E;QAC7E,kFAAkF;QAClF,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,EAAE,aAAa,IAAI,IAAI,CAAA;QACjD,MAAM,KAAK,GAAG,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,UAAU,EAAE,CAAA;QAClE,IAAI,CAAC,SAAS,GAAG,KAAK,CAAA;QACtB,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,EAAE,CAAC,CAAA;IAC5B,CAAC,CAAA;CACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"b3d-controller.d.ts","sourceRoot":"","sources":["../src/b3d-controller.ts"],"names":[],"mappings":"AAoEA,OAAO,KAAK,OAAO,MAAM,iBAAiB,CAAA;AAC1C,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAA;AACpD,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,YAAY,CAAA;AACrC,OAAO,EAA0B,KAAK,YAAY,EAAE,MAAM,iBAAiB,CAAA;AAC3E,OAAO,EACL,mBAAmB,EAMpB,MAAM,mBAAmB,CAAA;AAS1B,qBAAa,aAAc,SAAQ,eAAe;IAChD,MAAM,CAAC,cAAc;;;;;;;;;;MAKpB;IAEO,OAAO,EAAE,MAAM,CAAA;IACf,MAAM,EAAE,OAAO,CAAA;IAEvB;;;;;;;;OAQG;IACH,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,YAAY,EAAE,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC,GAAG,IAAI,CAAO;IAEhE,uFAAuF;IACvF,mBAAmB,EAAE,mBAAmB,GAAG,IAAI,CAAO;IAEtD,OAAO,CAAC,GAAG,CAA8B;IAEzC,UAAU,CAAC,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,GAAG,IAAI;IAuBlD,UAAU,CAAC,KAAK,EAAE,YAAY,EAAE,EAAE,EAAE,MAAM,GAAG,IAAI;IAIjD,YAAY,IAAI,IAAI;CASrB;AAED,eAAO,MAAM,aAAa,EAEpB,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,aAAa,CAAA"}
1
+ {"version":3,"file":"b3d-controller.d.ts","sourceRoot":"","sources":["../src/b3d-controller.ts"],"names":[],"mappings":"AAyEA,OAAO,KAAK,OAAO,MAAM,iBAAiB,CAAA;AAC1C,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAA;AACpD,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,YAAY,CAAA;AACrC,OAAO,EAA0B,KAAK,YAAY,EAAE,MAAM,iBAAiB,CAAA;AAC3E,OAAO,EACL,mBAAmB,EAMpB,MAAM,mBAAmB,CAAA;AAS1B,qBAAa,aAAc,SAAQ,eAAe;IAChD,MAAM,CAAC,cAAc;;;;;;;;;;MASpB;IAEO,OAAO,EAAE,MAAM,CAAA;IACf,MAAM,EAAE,OAAO,CAAA;IAEvB;;;;;;;;OAQG;IACH,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,YAAY,EAAE,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC,GAAG,IAAI,CAAO;IAEhE,uFAAuF;IACvF,mBAAmB,EAAE,mBAAmB,GAAG,IAAI,CAAO;IAEtD,OAAO,CAAC,GAAG,CAA8B;IAEzC,UAAU,CAAC,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,GAAG,IAAI;IAuBlD,UAAU,CAAC,KAAK,EAAE,YAAY,EAAE,EAAE,EAAE,MAAM,GAAG,IAAI;IAIjD,YAAY,IAAI,IAAI;CASrB;AAED,eAAO,MAAM,aAAa,EAEpB,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,aAAa,CAAA"}
@@ -11,8 +11,12 @@ export class B3dController extends B3dControllable {
11
11
  static initAttributes = {
12
12
  ...B3dControllable.initAttributes,
13
13
  mapping: 'biped',
14
- // player so a wrapping <tosi-b3d-input-focus> (if any) would focus us.
15
- player: true,
14
+ // MUST default false: HTML boolean attributes can't default to true (an absent attribute
15
+ // is false), and tosijs now THROWS at construction on a true default — which silently broke
16
+ // this whole component (the ctor threw, so its sceneReady never wired any input). If you
17
+ // nest a b3dController inside <tosi-b3d-input-focus> and want that manager (not its own
18
+ // self-wiring) to drive it, set `player` explicitly — same as b3dBiped/b3dAircraft.
19
+ player: false,
16
20
  };
17
21
  /**
18
22
  * Called every frame with the merged `ControlInput` and `dt` — THE seam. Set in
@@ -1 +1 @@
1
- {"version":3,"file":"b3d-controller.js","sourceRoot":"","sources":["../src/b3d-controller.ts"],"names":[],"mappings":"AAqEA,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAA;AAEpD,OAAO,EAAE,sBAAsB,EAAqB,MAAM,iBAAiB,CAAA;AAC3E,OAAO,EAEL,YAAY,EACZ,UAAU,EACV,eAAe,GAGhB,MAAM,mBAAmB,CAAA;AAC1B,OAAO,EAAE,cAAc,EAAuB,MAAM,mBAAmB,CAAA;AAEvE,MAAM,QAAQ,GAAuC;IACnD,KAAK,EAAE,GAAG,EAAE,CAAC,YAAY;IACzB,GAAG,EAAE,GAAG,EAAE,CAAC,UAAU;IACrB,QAAQ,EAAE,GAAG,EAAE,CAAC,eAAe,EAAE;CAClC,CAAA;AAED,MAAM,OAAO,aAAc,SAAQ,eAAe;IAChD,MAAM,CAAC,cAAc,GAAG;QACtB,GAAG,eAAe,CAAC,cAAc;QACjC,OAAO,EAAE,OAAO;QAChB,uEAAuE;QACvE,MAAM,EAAE,IAAI;KACb,CAAA;IAKD;;;;;;;;OAQG;IACH,KAAK,GAAuD,IAAI,CAAA;IAEhE,uFAAuF;IACvF,mBAAmB,GAA+B,IAAI,CAAA;IAE9C,GAAG,GAA0B,IAAI,CAAA;IAEzC,UAAU,CAAC,KAAU,EAAE,KAAoB;QACzC,KAAK,CAAC,UAAU,CAAC,KAAK,EAAE,KAAK,CAAC,CAAA;QAC9B,IAAI,CAAC,YAAY,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAA;QAChE,gFAAgF;QAChF,gFAAgF;QAChF,IAAI,IAAI,CAAC,OAAO,CAAC,sBAAsB,CAAC,IAAI,IAAI,EAAE,CAAC;YACjD,MAAM,EAAE,GAAG,cAAc,EAA+B,CAAA;YACxD,IAAI,CAAC,GAAG,GAAG,EAAE,CAIZ;YAAC,KAAgC,CAAC,WAAW,CAAC,EAAqB,CAAC,CAAA;YACrE,MAAM,QAAQ,GAAG,EAAE,CAAC,gBAAgB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAA;YACvD,MAAM,KAAK,GAAG,KAAK,CAAC,aAAa,CAC/B,kBAAkB,CACgB,CAAA;YACpC,IAAI,KAAK,IAAI,IAAI;gBAAE,QAAQ,CAAC,SAAS,CAAC,KAAK,CAAC,CAAA;YAC5C,IAAI,CAAC,mBAAmB,GAAG,QAAQ,CAAA;YACnC,IAAI,CAAC,aAAa,GAAG,IAAI,sBAAsB,CAAC,QAAQ,CAAC,CAAA;QAC3D,CAAC;QACD,KAAK,CAAC,KAAK,CAAC,oBAAoB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;IAChD,CAAC;IAED,UAAU,CAAC,KAAmB,EAAE,EAAU;QACxC,IAAI,CAAC,KAAK,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,CAAA;IACzB,CAAC;IAED,YAAY;QACV,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,sBAAsB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;QACtD,IAAI,IAAI,CAAC,GAAG,IAAI,IAAI,EAAE,CAAC;YACrB,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,CAAA;YACjB,IAAI,CAAC,GAAG,GAAG,IAAI,CAAA;QACjB,CAAC;QACD,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAA;QAC/B,KAAK,CAAC,YAAY,EAAE,CAAA;IACtB,CAAC;;AAGH,MAAM,CAAC,MAAM,aAAa,GAAG,aAAa,CAAC,cAAc,CAAC;IACxD,GAAG,EAAE,qBAAqB;CAC3B,CAA0C,CAAA"}
1
+ {"version":3,"file":"b3d-controller.js","sourceRoot":"","sources":["../src/b3d-controller.ts"],"names":[],"mappings":"AA0EA,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAA;AAEpD,OAAO,EAAE,sBAAsB,EAAqB,MAAM,iBAAiB,CAAA;AAC3E,OAAO,EAEL,YAAY,EACZ,UAAU,EACV,eAAe,GAGhB,MAAM,mBAAmB,CAAA;AAC1B,OAAO,EAAE,cAAc,EAAuB,MAAM,mBAAmB,CAAA;AAEvE,MAAM,QAAQ,GAAuC;IACnD,KAAK,EAAE,GAAG,EAAE,CAAC,YAAY;IACzB,GAAG,EAAE,GAAG,EAAE,CAAC,UAAU;IACrB,QAAQ,EAAE,GAAG,EAAE,CAAC,eAAe,EAAE;CAClC,CAAA;AAED,MAAM,OAAO,aAAc,SAAQ,eAAe;IAChD,MAAM,CAAC,cAAc,GAAG;QACtB,GAAG,eAAe,CAAC,cAAc;QACjC,OAAO,EAAE,OAAO;QAChB,yFAAyF;QACzF,4FAA4F;QAC5F,yFAAyF;QACzF,wFAAwF;QACxF,oFAAoF;QACpF,MAAM,EAAE,KAAK;KACd,CAAA;IAKD;;;;;;;;OAQG;IACH,KAAK,GAAuD,IAAI,CAAA;IAEhE,uFAAuF;IACvF,mBAAmB,GAA+B,IAAI,CAAA;IAE9C,GAAG,GAA0B,IAAI,CAAA;IAEzC,UAAU,CAAC,KAAU,EAAE,KAAoB;QACzC,KAAK,CAAC,UAAU,CAAC,KAAK,EAAE,KAAK,CAAC,CAAA;QAC9B,IAAI,CAAC,YAAY,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAA;QAChE,gFAAgF;QAChF,gFAAgF;QAChF,IAAI,IAAI,CAAC,OAAO,CAAC,sBAAsB,CAAC,IAAI,IAAI,EAAE,CAAC;YACjD,MAAM,EAAE,GAAG,cAAc,EAA+B,CAAA;YACxD,IAAI,CAAC,GAAG,GAAG,EAAE,CAIZ;YAAC,KAAgC,CAAC,WAAW,CAAC,EAAqB,CAAC,CAAA;YACrE,MAAM,QAAQ,GAAG,EAAE,CAAC,gBAAgB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAA;YACvD,MAAM,KAAK,GAAG,KAAK,CAAC,aAAa,CAC/B,kBAAkB,CACgB,CAAA;YACpC,IAAI,KAAK,IAAI,IAAI;gBAAE,QAAQ,CAAC,SAAS,CAAC,KAAK,CAAC,CAAA;YAC5C,IAAI,CAAC,mBAAmB,GAAG,QAAQ,CAAA;YACnC,IAAI,CAAC,aAAa,GAAG,IAAI,sBAAsB,CAAC,QAAQ,CAAC,CAAA;QAC3D,CAAC;QACD,KAAK,CAAC,KAAK,CAAC,oBAAoB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;IAChD,CAAC;IAED,UAAU,CAAC,KAAmB,EAAE,EAAU;QACxC,IAAI,CAAC,KAAK,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,CAAA;IACzB,CAAC;IAED,YAAY;QACV,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,sBAAsB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;QACtD,IAAI,IAAI,CAAC,GAAG,IAAI,IAAI,EAAE,CAAC;YACrB,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,CAAA;YACjB,IAAI,CAAC,GAAG,GAAG,IAAI,CAAA;QACjB,CAAC;QACD,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAA;QAC/B,KAAK,CAAC,YAAY,EAAE,CAAA;IACtB,CAAC;;AAGH,MAAM,CAAC,MAAM,aAAa,GAAG,aAAa,CAAC,cAAc,CAAC;IACxD,GAAG,EAAE,qBAAqB;CAC3B,CAA0C,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"b3d-destroyable.d.ts","sourceRoot":"","sources":["../src/b3d-destroyable.ts"],"names":[],"mappings":"AA+IA,OAAO,KAAK,OAAO,MAAM,iBAAiB,CAAA;AAC1C,OAAO,EAAE,YAAY,EAAS,MAAM,aAAa,CAAA;AACjD,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,YAAY,CAAA;AACrC,OAAO,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,eAAe,CAAA;AAE3D,OAAO,EAAe,KAAK,MAAM,EAAE,MAAM,UAAU,CAAA;AAGnD,qBAAa,cAAe,SAAQ,YAAY;IAC9C,MAAM,CAAC,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;MA2BpB;IAEO,QAAQ,EAAE,MAAM,CAAA;IAChB,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,EAAE,MAAM,CAAA;IACb,QAAQ,EAAE,MAAM,CAAA;IAChB,KAAK,EAAE,MAAM,CAAA;IACb,SAAS,EAAE,MAAM,CAAA;IACjB,UAAU,EAAE,MAAM,CAAA;IAClB,WAAW,EAAE,MAAM,CAAA;IACnB,UAAU,EAAE,MAAM,CAAA;IAClB,OAAO,EAAE,MAAM,CAAA;IACf,YAAY,EAAE,MAAM,CAAA;IACpB,UAAU,EAAE,MAAM,CAAA;IAClB,WAAW,EAAE,MAAM,CAAA;IACnB,eAAe,EAAE,MAAM,CAAA;IACvB,WAAW,EAAE,MAAM,CAAA;IACnB,UAAU,EAAE,MAAM,CAAA;IAE1B;;;OAGG;IACH,KAAK,EAAE,SAAS,EAAE,CAAK;IACvB,OAAO,CAAC,SAAS,CAAC,CAAqB;IACvC,OAAO,CAAC,QAAQ,CAAC,CAAkC;IACnD;;;;;OAKG;IACH,aAAa,CAAC,EAAE,CAAC,IAAI,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,OAAO,CAAC,OAAO,CAAA;KAAE,KAAK,IAAI,CAAA;IAEzE;;wDAEoD;IACpD,aAAa,EAAE,MAAM,GAAG,IAAI,CAAO;IAEnC;gDAC4C;IAC5C,OAAO,CAAC,aAAa;IAuCrB,uEAAuE;IACvE,IAAI,QAAQ,IAAI,MAAM,CAErB;IAED,kFAAkF;IAClF,IAAI,IAAI,IAAI,OAAO,CAElB;IAED,UAAU,CAAC,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,GAAG,IAAI;IAmElD,oFAAoF;IACpF,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,WAAW,EAAE;IAIrC;;;OAGG;IACH,QAAQ,CAAC,KAAK,EAAE,SAAS,EAAE,GAAG,IAAI;IAKlC,YAAY,IAAI,IAAI;CASrB;AAED,eAAO,MAAM,cAAc,iDAEzB,CAAA"}
1
+ {"version":3,"file":"b3d-destroyable.d.ts","sourceRoot":"","sources":["../src/b3d-destroyable.ts"],"names":[],"mappings":"AA6IA,OAAO,KAAK,OAAO,MAAM,iBAAiB,CAAA;AAC1C,OAAO,EAAE,YAAY,EAAS,MAAM,aAAa,CAAA;AACjD,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,YAAY,CAAA;AACrC,OAAO,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,eAAe,CAAA;AAE3D,OAAO,EAAe,KAAK,MAAM,EAAE,MAAM,UAAU,CAAA;AAGnD,qBAAa,cAAe,SAAQ,YAAY;IAC9C,MAAM,CAAC,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;MA2BpB;IAEO,QAAQ,EAAE,MAAM,CAAA;IAChB,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,EAAE,MAAM,CAAA;IACb,QAAQ,EAAE,MAAM,CAAA;IAChB,KAAK,EAAE,MAAM,CAAA;IACb,SAAS,EAAE,MAAM,CAAA;IACjB,UAAU,EAAE,MAAM,CAAA;IAClB,WAAW,EAAE,MAAM,CAAA;IACnB,UAAU,EAAE,MAAM,CAAA;IAClB,OAAO,EAAE,MAAM,CAAA;IACf,YAAY,EAAE,MAAM,CAAA;IACpB,UAAU,EAAE,MAAM,CAAA;IAClB,WAAW,EAAE,MAAM,CAAA;IACnB,eAAe,EAAE,MAAM,CAAA;IACvB,WAAW,EAAE,MAAM,CAAA;IACnB,UAAU,EAAE,MAAM,CAAA;IAE1B;;;OAGG;IACH,KAAK,EAAE,SAAS,EAAE,CAAK;IACvB,OAAO,CAAC,SAAS,CAAC,CAAqB;IACvC,OAAO,CAAC,QAAQ,CAAC,CAAkC;IACnD;;;;;OAKG;IACH,aAAa,CAAC,EAAE,CAAC,IAAI,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,OAAO,CAAC,OAAO,CAAA;KAAE,KAAK,IAAI,CAAA;IAEzE;;wDAEoD;IACpD,aAAa,EAAE,MAAM,GAAG,IAAI,CAAO;IAEnC;gDAC4C;IAC5C,OAAO,CAAC,aAAa;IAuCrB,uEAAuE;IACvE,IAAI,QAAQ,IAAI,MAAM,CAErB;IAED,kFAAkF;IAClF,IAAI,IAAI,IAAI,OAAO,CAElB;IAED,UAAU,CAAC,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,GAAG,IAAI;IAmElD,oFAAoF;IACpF,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,WAAW,EAAE;IAIrC;;;OAGG;IACH,QAAQ,CAAC,KAAK,EAAE,SAAS,EAAE,GAAG,IAAI;IAKlC,YAAY,IAAI,IAAI;CASrB;AAED,eAAO,MAAM,cAAc,iDAEzB,CAAA"}
@@ -16,6 +16,7 @@ reference combat ids that only exist once the targets have mounted).
16
16
 
17
17
  ```js
18
18
  import { b3d, b3dDestroyable, b3dLight, b3dSkybox, b3dGround } from 'tosijs-3d'
19
+ import { orbitCam } from 'demo-utils'
19
20
 
20
21
  const grid = []
21
22
  for (let i = 0; i < 12; i++) {
@@ -29,9 +30,7 @@ for (let i = 0; i < 6; i++) {
29
30
  const scene = b3d(
30
31
  {
31
32
  sceneCreated(el, BABYLON) {
32
- const cam = new BABYLON.ArcRotateCamera('cam', -Math.PI / 2, Math.PI / 3.2, 15, new BABYLON.Vector3(0, 0.5, -0.5), el.scene)
33
- cam.attachControl(el.querySelector('canvas'), true)
34
- el.setActiveCamera(cam)
33
+ orbitCam(el, { alpha: -Math.PI / 2, beta: Math.PI / 3.2, radius: 15, target: [0, 0.5, -0.5] })
35
34
  // click a cube → damage it
36
35
  el.scene.onPointerDown = (_evt, pick) => {
37
36
  if (!pick.hit || !pick.pickedMesh) return
@@ -92,6 +91,7 @@ chain reaction (each drum both `explode`s and fires a `deathBlast`).
92
91
 
93
92
  ```js
94
93
  import { b3d, b3dDestroyable, b3dLight, b3dSkybox, b3dGround } from 'tosijs-3d'
94
+ import { orbitCam } from 'demo-utils'
95
95
 
96
96
  const drums = []
97
97
  for (let i = 0; i < 48; i++) {
@@ -106,9 +106,7 @@ for (let i = 0; i < 48; i++) {
106
106
  const scene = b3d(
107
107
  {
108
108
  sceneCreated(el, BABYLON) {
109
- const cam = new BABYLON.ArcRotateCamera('cam', -Math.PI / 2, Math.PI / 3, 18, new BABYLON.Vector3(0, 0.5, 0), el.scene)
110
- cam.attachControl(el.querySelector('canvas'), true)
111
- el.setActiveCamera(cam)
109
+ orbitCam(el, { alpha: -Math.PI / 2, beta: Math.PI / 3, radius: 18, target: [0, 0.5, 0] })
112
110
  el.scene.onPointerDown = (_evt, pick) => {
113
111
  if (!pick.hit || !pick.pickedMesh) return
114
112
  const t = drums.find((d) => d.mesh === pick.pickedMesh)
@@ -129,7 +127,7 @@ tosi-b3d { width: 100%; height: 100%; }
129
127
 
130
128
  It participates in the **floating origin**: because `AbstractMesh` treats the
131
129
  `x/y/z` attributes as the source of truth for the mesh position, this uses
132
- `onOriginShift` to shift BOTH the mesh node and its `x/z` attributes on a rebase
130
+ `addOriginListener` to shift BOTH the mesh node and its `x/z` attributes on a rebase
133
131
  (NOT `registerWorldRoot`, which would leave the attributes stale so a later render
134
132
  would un-shift the mesh).
135
133
 
@@ -291,7 +289,7 @@ export class B3dDestroyable extends AbstractMesh {
291
289
  attrs.x -= dx;
292
290
  attrs.z -= dz;
293
291
  };
294
- owner.onOriginShift(this._onShift);
292
+ owner.addOriginListener(this._onShift);
295
293
  }
296
294
  /** Hurt this target; returns the combat events from this hit (flashes on a hit). */
297
295
  damage(amount) {
@@ -309,7 +307,7 @@ export class B3dDestroyable extends AbstractMesh {
309
307
  this._behavior?.dispose();
310
308
  this._behavior = undefined;
311
309
  if (this._onShift != null) {
312
- this.owner?.offOriginShift(this._onShift);
310
+ this.owner?.removeOriginListener(this._onShift);
313
311
  this._onShift = undefined;
314
312
  }
315
313
  super.sceneDispose();
@@ -1 +1 @@
1
- {"version":3,"file":"b3d-destroyable.js","sourceRoot":"","sources":["../src/b3d-destroyable.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"b3d-destroyable.js","sourceRoot":"","sources":["../src/b3d-destroyable.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"b3d-exploder.d.ts","sourceRoot":"","sources":["../src/b3d-exploder.ts"],"names":[],"mappings":"AAiGA,OAAO,KAAK,OAAO,MAAM,iBAAiB,CAAA;AAE1C,MAAM,WAAW,cAAc;IAC7B,kDAAkD;IAClD,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,sDAAsD;IACtD,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,qFAAqF;IACrF,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,gDAAgD;IAChD,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,8FAA8F;IAC9F,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IAC7B,qEAAqE;IACrE,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,yEAAyE;IACzE,eAAe,CAAC,EAAE,OAAO,CAAA;IACzB,gEAAgE;IAChE,MAAM,CAAC,EAAE,OAAO,CAAC,OAAO,CAAA;IACxB,oEAAoE;IACpE,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,oDAAoD;IACpD,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB;AASD;;;;;;;GAOG;AACH,wBAAgB,WAAW,CACzB,IAAI,EAAE,OAAO,CAAC,IAAI,EAClB,KAAK,EAAE,OAAO,CAAC,KAAK,EACpB,OAAO,GAAE,cAAmB,GAC3B,IAAI,CA4SN"}
1
+ {"version":3,"file":"b3d-exploder.d.ts","sourceRoot":"","sources":["../src/b3d-exploder.ts"],"names":[],"mappings":"AA4FA,OAAO,KAAK,OAAO,MAAM,iBAAiB,CAAA;AAE1C,MAAM,WAAW,cAAc;IAC7B,kDAAkD;IAClD,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,sDAAsD;IACtD,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,qFAAqF;IACrF,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,gDAAgD;IAChD,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,8FAA8F;IAC9F,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IAC7B,qEAAqE;IACrE,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,yEAAyE;IACzE,eAAe,CAAC,EAAE,OAAO,CAAA;IACzB,gEAAgE;IAChE,MAAM,CAAC,EAAE,OAAO,CAAC,OAAO,CAAA;IACxB,oEAAoE;IACpE,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,oDAAoD;IACpD,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB;AASD;;;;;;;GAOG;AACH,wBAAgB,WAAW,CACzB,IAAI,EAAE,OAAO,CAAC,IAAI,EAClB,KAAK,EAAE,OAAO,CAAC,KAAK,EACpB,OAAO,GAAE,cAAmB,GAC3B,IAAI,CA4SN"}
@@ -20,6 +20,7 @@ until they all leave the camera view.
20
20
 
21
21
  ```js
22
22
  import { b3d, b3dLight, b3dSkybox, b3dGround, explodeMesh, label3d, button3d } from 'tosijs-3d'
23
+ import { orbitCam } from 'demo-utils'
23
24
  import { elements } from 'tosijs'
24
25
  const { div, p } = elements
25
26
 
@@ -49,18 +50,12 @@ const scene = b3d(
49
50
  ],
50
51
  sceneCreated(el, BABYLON) {
51
52
  babylon = BABYLON
52
- const camera = new BABYLON.ArcRotateCamera(
53
- 'cam', -Math.PI / 2, Math.PI / 3, 12,
54
- new BABYLON.Vector3(0, 1, 0), el.scene
55
- )
56
- // Keep the camera >=5deg above the horizon and out of the scene: a bare
57
- // ArcRotateCamera tilts under the ground and zooms through everything.
58
- camera.lowerBetaLimit = (20 * Math.PI) / 180
59
- camera.upperBetaLimit = (85 * Math.PI) / 180
53
+ const camera = orbitCam(el, {
54
+ alpha: -Math.PI / 2, beta: Math.PI / 3, radius: 12,
55
+ target: [0, 1, 0], maxElevationDeg: 70,
56
+ })
60
57
  camera.lowerRadiusLimit = 4
61
58
  camera.upperRadiusLimit = 30
62
- camera.attachControl(el.querySelector('canvas'), true)
63
- el.setActiveCamera(camera)
64
59
  createSphere(BABYLON)
65
60
  },
66
61
  },