tosijs-3d 0.6.2 → 0.7.0-beta.6

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 (155) hide show
  1. package/dist/ambient-budget.d.ts +45 -0
  2. package/dist/ambient-budget.d.ts.map +1 -1
  3. package/dist/ambient-budget.js +43 -0
  4. package/dist/ambient-budget.js.map +1 -1
  5. package/dist/b3d-aircraft.d.ts +83 -2
  6. package/dist/b3d-aircraft.d.ts.map +1 -1
  7. package/dist/b3d-aircraft.js +410 -30
  8. package/dist/b3d-aircraft.js.map +1 -1
  9. package/dist/b3d-ambient.d.ts +5 -0
  10. package/dist/b3d-ambient.d.ts.map +1 -1
  11. package/dist/b3d-ambient.js +36 -1
  12. package/dist/b3d-ambient.js.map +1 -1
  13. package/dist/b3d-controllable.d.ts.map +1 -1
  14. package/dist/b3d-controllable.js +6 -2
  15. package/dist/b3d-controllable.js.map +1 -1
  16. package/dist/b3d-death.d.ts +1 -0
  17. package/dist/b3d-death.d.ts.map +1 -1
  18. package/dist/b3d-death.js +63 -7
  19. package/dist/b3d-death.js.map +1 -1
  20. package/dist/b3d-destroyable.d.ts +23 -0
  21. package/dist/b3d-destroyable.d.ts.map +1 -1
  22. package/dist/b3d-destroyable.js +104 -12
  23. package/dist/b3d-destroyable.js.map +1 -1
  24. package/dist/b3d-exploder.d.ts +18 -1
  25. package/dist/b3d-exploder.d.ts.map +1 -1
  26. package/dist/b3d-exploder.js +43 -1
  27. package/dist/b3d-exploder.js.map +1 -1
  28. package/dist/b3d-hud.d.ts +25 -0
  29. package/dist/b3d-hud.d.ts.map +1 -1
  30. package/dist/b3d-hud.js +38 -6
  31. package/dist/b3d-hud.js.map +1 -1
  32. package/dist/b3d-launcher.d.ts +41 -0
  33. package/dist/b3d-launcher.d.ts.map +1 -1
  34. package/dist/b3d-launcher.js +128 -50
  35. package/dist/b3d-launcher.js.map +1 -1
  36. package/dist/b3d-library.d.ts.map +1 -1
  37. package/dist/b3d-library.js +22 -10
  38. package/dist/b3d-library.js.map +1 -1
  39. package/dist/b3d-loader.d.ts.map +1 -1
  40. package/dist/b3d-loader.js +4 -4
  41. package/dist/b3d-loader.js.map +1 -1
  42. package/dist/b3d-probe.d.ts +7 -0
  43. package/dist/b3d-probe.d.ts.map +1 -1
  44. package/dist/b3d-probe.js +5 -1
  45. package/dist/b3d-probe.js.map +1 -1
  46. package/dist/b3d-terrain.d.ts +78 -3
  47. package/dist/b3d-terrain.d.ts.map +1 -1
  48. package/dist/b3d-terrain.js +233 -17
  49. package/dist/b3d-terrain.js.map +1 -1
  50. package/dist/b3d-turret.js +2 -2
  51. package/dist/b3d-utils.d.ts +24 -0
  52. package/dist/b3d-utils.d.ts.map +1 -1
  53. package/dist/b3d-utils.js +59 -0
  54. package/dist/b3d-utils.js.map +1 -1
  55. package/dist/b3d-warhead.d.ts.map +1 -1
  56. package/dist/b3d-warhead.js +16 -2
  57. package/dist/b3d-warhead.js.map +1 -1
  58. package/dist/b3d-water.d.ts +37 -0
  59. package/dist/b3d-water.d.ts.map +1 -1
  60. package/dist/b3d-water.js +123 -2
  61. package/dist/b3d-water.js.map +1 -1
  62. package/dist/biome-chart.d.ts.map +1 -1
  63. package/dist/biome-chart.js +2 -0
  64. package/dist/biome-chart.js.map +1 -1
  65. package/dist/biome-plugin.d.ts +41 -0
  66. package/dist/biome-plugin.d.ts.map +1 -1
  67. package/dist/biome-plugin.js +150 -19
  68. package/dist/biome-plugin.js.map +1 -1
  69. package/dist/carve.d.ts +89 -0
  70. package/dist/carve.d.ts.map +1 -0
  71. package/dist/carve.js +229 -0
  72. package/dist/carve.js.map +1 -0
  73. package/dist/control-input.d.ts +5 -0
  74. package/dist/control-input.d.ts.map +1 -1
  75. package/dist/control-input.js +5 -0
  76. package/dist/control-input.js.map +1 -1
  77. package/dist/destroyable-behavior.d.ts +1 -1
  78. package/dist/destroyable-behavior.d.ts.map +1 -1
  79. package/dist/destroyable-behavior.js +21 -6
  80. package/dist/destroyable-behavior.js.map +1 -1
  81. package/dist/fly-by-wire.d.ts +58 -0
  82. package/dist/fly-by-wire.d.ts.map +1 -1
  83. package/dist/fly-by-wire.js +117 -9
  84. package/dist/fly-by-wire.js.map +1 -1
  85. package/dist/glass-gamepad.d.ts +42 -0
  86. package/dist/glass-gamepad.d.ts.map +1 -1
  87. package/dist/glass-gamepad.js +111 -1
  88. package/dist/glass-gamepad.js.map +1 -1
  89. package/dist/hardware-gamepad.d.ts +1 -0
  90. package/dist/hardware-gamepad.d.ts.map +1 -1
  91. package/dist/hardware-gamepad.js +1 -0
  92. package/dist/hardware-gamepad.js.map +1 -1
  93. package/dist/hud-math.d.ts +27 -0
  94. package/dist/hud-math.d.ts.map +1 -1
  95. package/dist/hud-math.js +60 -0
  96. package/dist/hud-math.js.map +1 -1
  97. package/dist/hud.d.ts +24 -0
  98. package/dist/hud.d.ts.map +1 -1
  99. package/dist/hud.js +62 -2
  100. package/dist/hud.js.map +1 -1
  101. package/dist/index.d.ts +33 -4
  102. package/dist/index.d.ts.map +1 -1
  103. package/dist/index.js +48 -3
  104. package/dist/index.js.map +1 -1
  105. package/dist/keyboard-gamepad.d.ts +1 -0
  106. package/dist/keyboard-gamepad.d.ts.map +1 -1
  107. package/dist/keyboard-gamepad.js +1 -0
  108. package/dist/keyboard-gamepad.js.map +1 -1
  109. package/dist/landform.d.ts +92 -0
  110. package/dist/landform.d.ts.map +1 -1
  111. package/dist/landform.js +118 -1
  112. package/dist/landform.js.map +1 -1
  113. package/dist/medium.d.ts +131 -0
  114. package/dist/medium.d.ts.map +1 -0
  115. package/dist/medium.js +185 -0
  116. package/dist/medium.js.map +1 -0
  117. package/dist/patch-field.d.ts +38 -0
  118. package/dist/patch-field.d.ts.map +1 -0
  119. package/dist/patch-field.js +106 -0
  120. package/dist/patch-field.js.map +1 -0
  121. package/dist/portal-transform.d.ts +78 -0
  122. package/dist/portal-transform.d.ts.map +1 -0
  123. package/dist/portal-transform.js +221 -0
  124. package/dist/portal-transform.js.map +1 -0
  125. package/dist/sdf-lattice.d.ts +69 -0
  126. package/dist/sdf-lattice.d.ts.map +1 -0
  127. package/dist/sdf-lattice.js +485 -0
  128. package/dist/sdf-lattice.js.map +1 -0
  129. package/dist/terrain-grid.d.ts +73 -0
  130. package/dist/terrain-grid.d.ts.map +1 -1
  131. package/dist/terrain-grid.js +151 -1
  132. package/dist/terrain-grid.js.map +1 -1
  133. package/dist/tosi-b3d.d.ts +165 -1
  134. package/dist/tosi-b3d.d.ts.map +1 -1
  135. package/dist/tosi-b3d.js +566 -22
  136. package/dist/tosi-b3d.js.map +1 -1
  137. package/dist/touch-gamepad.d.ts +1 -0
  138. package/dist/touch-gamepad.d.ts.map +1 -1
  139. package/dist/touch-gamepad.js +1 -0
  140. package/dist/touch-gamepad.js.map +1 -1
  141. package/dist/virtual-gamepad.d.ts +46 -2
  142. package/dist/virtual-gamepad.d.ts.map +1 -1
  143. package/dist/virtual-gamepad.js +30 -8
  144. package/dist/virtual-gamepad.js.map +1 -1
  145. package/dist/widgets3d-layout.d.ts +19 -0
  146. package/dist/widgets3d-layout.d.ts.map +1 -1
  147. package/dist/widgets3d-layout.js +22 -0
  148. package/dist/widgets3d-layout.js.map +1 -1
  149. package/dist/world-store.js +2 -2
  150. package/dist/world-view.js +2 -2
  151. package/dist/xr-gamepad.d.ts +1 -0
  152. package/dist/xr-gamepad.d.ts.map +1 -1
  153. package/dist/xr-gamepad.js +1 -0
  154. package/dist/xr-gamepad.js.map +1 -1
  155. package/package.json +4 -3
@@ -59,4 +59,49 @@ export declare function allocateAmbient(requests: AmbientRequest[], opts: {
59
59
  * side effect of this ratchet.)
60
60
  */
61
61
  export declare function ratchetPool(scale: number): number;
62
+ export interface SpawnBiasOptions {
63
+ /** Emitter box half-size (the `radius` attribute). */
64
+ radius: number;
65
+ /** Fraction of `radius` to push the box along the VIEW direction (0 = centred). */
66
+ lookAhead?: number;
67
+ /** Seconds of travel to push the box along the direction of MOTION. */
68
+ lead?: number;
69
+ /** Speed beyond which the motion lead stops growing (m/s). */
70
+ speedCap?: number;
71
+ }
72
+ /**
73
+ * Where to centre the ambient emitter box, given where you're looking and how
74
+ * fast you're going.
75
+ *
76
+ * Centring it on the camera is right for a walker and wrong for anything quick,
77
+ * for two compounding reasons (tosijs-3d#17/#18, from manta-recon):
78
+ *
79
+ * 1. **A camera sees a frustum, not a sphere.** Most of a box centred on the eye
80
+ * is behind, beside and below it, so most particles are born unseen, live
81
+ * unseen and are culled unseen — full cost, a fraction of the result. The
82
+ * owner's report: *"most of the bubbles are spawning out of sight and then
83
+ * stay out of sight until they're culled."*
84
+ * 2. **You outrun it.** At 30 m/s a 12 m box is behind you in under a second, so
85
+ * the faster you go the emptier the view ahead — exactly backwards, since
86
+ * speed is when you most want a medium rushing past.
87
+ *
88
+ * In a chase view both bite at once: the camera trails the vehicle, so the box
89
+ * is already behind the thing the player is watching.
90
+ *
91
+ * Returns the OFFSET from the eye, so the caller adds it to whatever else it
92
+ * does (the existing wind bias, for instance).
93
+ */
94
+ export declare function spawnBias(forward: {
95
+ x: number;
96
+ y: number;
97
+ z: number;
98
+ }, velocity: {
99
+ x: number;
100
+ y: number;
101
+ z: number;
102
+ }, opts: SpawnBiasOptions): {
103
+ x: number;
104
+ y: number;
105
+ z: number;
106
+ };
62
107
  //# sourceMappingURL=ambient-budget.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ambient-budget.d.ts","sourceRoot":"","sources":["../src/ambient-budget.ts"],"names":[],"mappings":"AAuDA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAA;AAE5C,uDAAuD;AACvD,MAAM,MAAM,cAAc,GAAG;IAC3B,EAAE,EAAE,MAAM,CAAA;IACV;8DAC0D;IAC1D,OAAO,EAAE,MAAM,CAAA;IACf,yFAAyF;IACzF,GAAG,EAAE,MAAM,CAAA;IACX,uDAAuD;IACvD,OAAO,EAAE,QAAQ,CAAA;IACjB,mFAAmF;IACnF,QAAQ,EAAE,MAAM,CAAA;IAChB,gFAAgF;IAChF,MAAM,EAAE,MAAM,CAAA;CACf,CAAA;AAED,0EAA0E;AAC1E,MAAM,MAAM,iBAAiB,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;AAEtD;;;GAGG;AACH,MAAM,WAAW,aAAa;IAC5B,aAAa,IAAI,cAAc,CAAA;IAC/B,kFAAkF;IAClF,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAA;CACxC;AAOD;;;;;;;;GAQG;AACH,wBAAgB,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,GAAG,MAAM,CAIrE;AAED;;;;;;;;GAQG;AACH,wBAAgB,eAAe,CAC7B,QAAQ,EAAE,cAAc,EAAE,EAC1B,IAAI,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,QAAQ,CAAA;CAAE,GACrC,iBAAiB,CAwBnB;AAED;;;;;;;;;GASG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAGjD"}
1
+ {"version":3,"file":"ambient-budget.d.ts","sourceRoot":"","sources":["../src/ambient-budget.ts"],"names":[],"mappings":"AAuDA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAA;AAE5C,uDAAuD;AACvD,MAAM,MAAM,cAAc,GAAG;IAC3B,EAAE,EAAE,MAAM,CAAA;IACV;8DAC0D;IAC1D,OAAO,EAAE,MAAM,CAAA;IACf,yFAAyF;IACzF,GAAG,EAAE,MAAM,CAAA;IACX,uDAAuD;IACvD,OAAO,EAAE,QAAQ,CAAA;IACjB,mFAAmF;IACnF,QAAQ,EAAE,MAAM,CAAA;IAChB,gFAAgF;IAChF,MAAM,EAAE,MAAM,CAAA;CACf,CAAA;AAED,0EAA0E;AAC1E,MAAM,MAAM,iBAAiB,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;AAEtD;;;GAGG;AACH,MAAM,WAAW,aAAa;IAC5B,aAAa,IAAI,cAAc,CAAA;IAC/B,kFAAkF;IAClF,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAA;CACxC;AAOD;;;;;;;;GAQG;AACH,wBAAgB,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,GAAG,MAAM,CAIrE;AAED;;;;;;;;GAQG;AACH,wBAAgB,eAAe,CAC7B,QAAQ,EAAE,cAAc,EAAE,EAC1B,IAAI,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,QAAQ,CAAA;CAAE,GACrC,iBAAiB,CAwBnB;AAED;;;;;;;;;GASG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAGjD;AAED,MAAM,WAAW,gBAAgB;IAC/B,sDAAsD;IACtD,MAAM,EAAE,MAAM,CAAA;IACd,mFAAmF;IACnF,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,uEAAuE;IACvE,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,8DAA8D;IAC9D,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,SAAS,CACvB,OAAO,EAAE;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAA;CAAE,EAC5C,QAAQ,EAAE;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAA;CAAE,EAC7C,IAAI,EAAE,gBAAgB,GACrB;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAA;CAAE,CAsBrC"}
@@ -116,4 +116,47 @@ export function ratchetPool(scale) {
116
116
  const next = scale * 0.6;
117
117
  return next < 0.25 ? 0 : next; // below a quarter there's no honest effect left — all off
118
118
  }
119
+ /**
120
+ * Where to centre the ambient emitter box, given where you're looking and how
121
+ * fast you're going.
122
+ *
123
+ * Centring it on the camera is right for a walker and wrong for anything quick,
124
+ * for two compounding reasons (tosijs-3d#17/#18, from manta-recon):
125
+ *
126
+ * 1. **A camera sees a frustum, not a sphere.** Most of a box centred on the eye
127
+ * is behind, beside and below it, so most particles are born unseen, live
128
+ * unseen and are culled unseen — full cost, a fraction of the result. The
129
+ * owner's report: *"most of the bubbles are spawning out of sight and then
130
+ * stay out of sight until they're culled."*
131
+ * 2. **You outrun it.** At 30 m/s a 12 m box is behind you in under a second, so
132
+ * the faster you go the emptier the view ahead — exactly backwards, since
133
+ * speed is when you most want a medium rushing past.
134
+ *
135
+ * In a chase view both bite at once: the camera trails the vehicle, so the box
136
+ * is already behind the thing the player is watching.
137
+ *
138
+ * Returns the OFFSET from the eye, so the caller adds it to whatever else it
139
+ * does (the existing wind bias, for instance).
140
+ */
141
+ export function spawnBias(forward, velocity, opts) {
142
+ const { radius, lookAhead = 0, lead = 0, speedCap = 40 } = opts;
143
+ const out = { x: 0, y: 0, z: 0 };
144
+ const fLen = Math.hypot(forward.x, forward.y, forward.z);
145
+ if (fLen > 1e-6 && lookAhead !== 0) {
146
+ const k = (radius * lookAhead) / fLen;
147
+ out.x += forward.x * k;
148
+ out.y += forward.y * k;
149
+ out.z += forward.z * k;
150
+ }
151
+ const speed = Math.hypot(velocity.x, velocity.y, velocity.z);
152
+ if (speed > 1e-6 && lead !== 0) {
153
+ // Capped, not proportional: past a point, leading further just spawns
154
+ // particles beyond the far plane, which is the same waste from the other end.
155
+ const k = (lead * Math.min(speed, speedCap)) / speed;
156
+ out.x += velocity.x * k;
157
+ out.y += velocity.y * k;
158
+ out.z += velocity.z * k;
159
+ }
160
+ return out;
161
+ }
119
162
  //# sourceMappingURL=ambient-budget.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ambient-budget.js","sourceRoot":"","sources":["../src/ambient-budget.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ambient-budget.js","sourceRoot":"","sources":["../src/ambient-budget.ts"],"names":[],"mappings":"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"}
@@ -12,13 +12,44 @@ export declare class B3dAircraft extends B3dControllable {
12
12
  player: boolean;
13
13
  enterable: boolean;
14
14
  ceiling: number;
15
- hudChase: boolean;
15
+ hudChaseOff: boolean;
16
16
  hudSize: number;
17
17
  hudForward: number;
18
18
  maxSpeed: number;
19
19
  afterburnerSpeed: number;
20
20
  acceleration: number;
21
21
  vtolSpeed: number;
22
+ /** How fast the craft may back up in hover (units/s). */
23
+ reverseSpeed: number;
24
+ /** How fast the trigger moves the throttle lever (setting/sec). */
25
+ throttleRate: number;
26
+ /**
27
+ * AUTO LANDING GEAR. `'on'` finds the model's gear-retract AnimationGroups
28
+ * by name and runs them with height above ground: up on climb-out, down on
29
+ * approach. `'off'` leaves the gear to you (call `setGear`).
30
+ */
31
+ autoGear: "on" | "off";
32
+ /** Height above ground (m) at which the gear retracts. It extends again at
33
+ * 60% of this — hysteresis, so a bumpy approach doesn't cycle it. */
34
+ gearAltitude: number;
35
+ /** Optional sound for the gear cycle (URL). Played spatially at the
36
+ * airframe, once per transition. */
37
+ gearSound: string;
38
+ /** Volume for `gearSound`. */
39
+ gearVolume: number;
40
+ /** Seconds for a full gear cycle. */
41
+ gearTime: number;
42
+ /** How far the LOOK stick can swing the view (degrees each way). */
43
+ lookRange: number;
44
+ /** Max nose-UP attitude the stick can command, degrees. */
45
+ maxPitch: number;
46
+ /** Max nose-DOWN attitude, degrees. 0 = same as `maxPitch`. */
47
+ maxDive: number;
48
+ /** Look slew rate (degrees/sec at full deflection). */
49
+ lookRate: number;
50
+ /** How fast the view springs back to centre when the stick is released
51
+ * (fraction of the remaining offset per second). */
52
+ lookReturn: number;
22
53
  hoverCeiling: number;
23
54
  groundY: number;
24
55
  crashSpeed: number;
@@ -77,7 +108,7 @@ export declare class B3dAircraft extends B3dControllable {
77
108
  private fbw;
78
109
  private fbwSeeded;
79
110
  ceiling: number;
80
- hudChase: boolean;
111
+ hudChaseOff: boolean;
81
112
  reticle: string;
82
113
  reticleRange: number;
83
114
  private _hud;
@@ -87,9 +118,16 @@ export declare class B3dAircraft extends B3dControllable {
87
118
  private meshNode;
88
119
  private _chasePivot;
89
120
  private _chaseLookPitch;
121
+ /** Where the LOOK stick has swung the view (radians), and how fast it
122
+ * springs back when released. */
123
+ private _lookYaw;
124
+ private _lookPitch;
90
125
  private meshesToDispose;
91
126
  private _lastGroundDist;
92
127
  private _groundNormal;
128
+ /** True while the airframe is in open air INSIDE the ground (a bore/cavern):
129
+ * heightfield assumptions are suspended for the frame. */
130
+ private _inCavity;
93
131
  private _worldVel;
94
132
  private _prevPos;
95
133
  private _prevPosValid;
@@ -130,6 +168,49 @@ export declare class B3dAircraft extends B3dControllable {
130
168
  private get gunWarhead();
131
169
  /** Nearest destroyable within `range` and inside the forward cone (or null). */
132
170
  private acquireTarget;
171
+ /** The model's gear-retract animations, found by name (see `_findGear`). */
172
+ private _gearGroups;
173
+ /** true = retracted (or retracting). Starts DOWN: you spawn on the ground. */
174
+ private _gearUp;
175
+ private _gearSound;
176
+ /** 0 = down, 1 = up — scrubbed toward `_gearTarget`. */
177
+ private _gearPos;
178
+ private _gearTarget;
179
+ /**
180
+ * Find the gear animations on a freshly-loaded model, by NAME.
181
+ *
182
+ * Convention over configuration: a group whose name mentions "gear" and
183
+ * "retract" (or "up") is a landing-gear animation, so the scout's
184
+ * "Main Gear (L) Retract" / "Nose Gear Retract" are picked up with no
185
+ * authoring beyond what's already in the GLB. Library instances carry their
186
+ * groups on `metadata.animationGroups` (renamed per instance), so several
187
+ * aircraft each animate their own gear.
188
+ */
189
+ private _findGear;
190
+ /**
191
+ * Raise or lower the gear. Public so an AI pilot, a cutscene or a key bind
192
+ * can call it; `autoGear` drives it from altitude otherwise.
193
+ */
194
+ setGear(up: boolean): void;
195
+ /**
196
+ * The gear is SCRUBBED, not played.
197
+ *
198
+ * Letting the AnimationGroup play itself looked obvious and doesn't work:
199
+ * glTF animations arrive with a cyclic loop mode, so a group told to stop at
200
+ * the end can snap back to frame 0 — the gear cycles and then vanishes
201
+ * (exactly what Tonio saw) — and reverse playback via `start(from > to)` is
202
+ * unreliable across Babylon versions. Advancing a normalised position and
203
+ * calling `goToFrame` sidesteps all of it: no loop mode, no end-of-group
204
+ * behaviour, no second animation to author for the reverse, and an
205
+ * interrupted cycle simply turns around from wherever it had got to.
206
+ */
207
+ private _scrubGear;
208
+ /** True while the gear is up (or on its way). */
209
+ get gearUp(): boolean;
210
+ private _playGearSound;
211
+ /** Drive the gear from height above ground, with hysteresis so a bumpy
212
+ * approach or a hill passing underneath doesn't cycle it. */
213
+ private _updateGear;
133
214
  /** Distance from the aircraft origin down to the nearest ground: the lower of
134
215
  * any terrain collider the raycast hits and the configured ground plane. */
135
216
  private groundDistance;
@@ -1 +1 @@
1
- {"version":3,"file":"b3d-aircraft.d.ts","sourceRoot":"","sources":["../src/b3d-aircraft.ts"],"names":[],"mappings":"AAiOA,OAAO,KAAK,OAAO,MAAM,iBAAiB,CAAA;AAC1C,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,YAAY,CAAA;AAErC,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAA;AACpD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAA;AAYnD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAA;AA+D3C,qBAAa,WAAY,SAAQ,eAAe;IAC9C,YAAY,2CAAoB;IAEhC,MAAM,CAAC,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MAsDpB;IAGD,QAAQ,SAAI;IACZ,QAAQ,SAAI;IACZ,aAAa,SAAI;IACjB,UAAU,UAAQ;IAClB,QAAQ,UAAQ;IAChB,MAAM,UAAQ;IACd,QAAQ,UAAQ;IAChB,OAAO,UAAQ;IACf,8FAA8F;IAC9F,OAAO,CAAC,SAAS,CAAQ;IACzB;kEAC8D;IAC9D,UAAU,EAAE,OAAO,GAAG,SAAS,CAAU;IACzC,OAAO,CAAC,cAAc,CAAQ;IAE9B;;;wEAGoE;IACpE,SAAS,SAAM;IACf,cAAc,SAAM;IACpB,cAAc,SAAM;IACpB,WAAW,SAAM;IACjB,aAAa,SAAM;IAEnB,OAAO,CAAC,QAAQ,CAA+B;IAC/C,OAAO,CAAC,IAAI,CAAwB;IAEpC,OAAO,CAAC,MAAM,CAAI;IAClB,OAAO,CAAC,OAAO,CAAI;IACnB,OAAO,CAAC,UAAU,CAAI;IACtB,OAAO,CAAC,QAAQ,CAAQ;IACxB,OAAO,CAAC,WAAW,CAAQ;IAG3B,OAAO,CAAC,GAAG,CAA8D;IACzE,OAAO,CAAC,SAAS,CAAQ;IACjB,OAAO,EAAE,MAAM,CAAA;IACf,QAAQ,EAAE,OAAO,CAAA;IACjB,OAAO,EAAE,MAAM,CAAA;IACf,YAAY,EAAE,MAAM,CAAA;IAE5B,OAAO,CAAC,IAAI,CAAwC;IACpD,OAAO,CAAC,WAAW,CAAQ;IAG3B,OAAO,CAAC,MAAM,CAAyC;IACvD,OAAO,CAAC,YAAY,CAA4B;IAChD,OAAO,CAAC,QAAQ,CAAqC;IAKrD,OAAO,CAAC,WAAW,CAAqC;IACxD,OAAO,CAAC,eAAe,CAAI;IAC3B,OAAO,CAAC,eAAe,CAAqB;IAM5C,OAAO,CAAC,eAAe,CAAW;IAClC,OAAO,CAAC,aAAa,CAA+B;IAMpD,OAAO,CAAC,SAAS,CAAwB;IACzC,OAAO,CAAC,QAAQ,CAAwB;IACxC,OAAO,CAAC,aAAa,CAAQ;IAC7B,OAAO,CAAC,IAAI,CAIX;IACD,OAAO,CAAC,UAAU,CAAyC;IAG3D,OAAO,CAAC,eAAe,CAAM;IAC7B,OAAO,CAAC,WAAW,CAA4B;IAE/C,eAAe,IAAI,OAAO,CAAC,IAAI,GAAG,IAAI;IAItC,UAAU,CAAC,KAAK,EAAE,YAAY,EAAE,EAAE,EAAE,MAAM;IA6T1C,OAAO,CAAC,aAAa;IAmBrB,OAAO,CAAC,QAAQ,CAA2B;IAE3C,gFAAgF;IAChF,OAAO,CAAC,eAAe;IA8BvB,mEAAmE;IACnE,IAAI,KAAK,IAAI,QAAQ,GAAG,IAAI,CAM3B;IAED;8EAC0E;IAC1E,OAAO,CAAC,SAAS;IAUjB;;;;0DAIsD;IACtD,OAAO,CAAC,MAAM;IAUd,yEAAyE;IACzE,QAAQ,IAAI,IAAI;IAmBhB;;0CAEsC;IACtC,QAAQ,IAAI,IAAI;IAgBhB;;;;;OAKG;IACH,WAAW,IAAI,IAAI;IAuDnB,OAAO,KAAK,UAAU,GAMrB;IAED,gFAAgF;IAChF,OAAO,CAAC,aAAa;IAyBrB;gFAC4E;IAC5E,OAAO,CAAC,cAAc;IAMtB,+EAA+E;IAC/E,OAAO,CAAC,KAAK;IAQb;;qDAEiD;IACjD,OAAO,CAAC,aAAa;IAqCrB,OAAO,CAAC,YAAY;IASpB,UAAU,CAAC,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK;IAW3C,OAAO,CAAC,WAAW;IAyBnB,OAAO,CAAC,eAAe;IAwCvB,OAAO,CAAC,SAAS;IAsCjB;;;;;;OAMG;IACH,OAAO,CAAC,cAAc;IA8BtB,OAAO,CAAC,WAAW,CAAkC;IACrD,OAAO,CAAC,aAAa,CAAkC;IAEvD,iBAAiB;IA6EjB;;qCAEiC;IACjC,aAAa,CAAC,IAAI,EAAE,OAAO,GAAG,SAAS;IAQvC,YAAY;CAuCb;AAED,eAAO,MAAM,WAAW,8CAEtB,CAAA"}
1
+ {"version":3,"file":"b3d-aircraft.d.ts","sourceRoot":"","sources":["../src/b3d-aircraft.ts"],"names":[],"mappings":"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"}