tosijs-3d 0.4.0 → 0.4.1
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/dist/b3d-aircraft.d.ts +28 -1
- package/dist/b3d-aircraft.d.ts.map +1 -1
- package/dist/b3d-aircraft.js +166 -36
- package/dist/b3d-aircraft.js.map +1 -1
- package/dist/b3d-hud.d.ts +40 -5
- package/dist/b3d-hud.d.ts.map +1 -1
- package/dist/b3d-hud.js +90 -4
- package/dist/b3d-hud.js.map +1 -1
- package/dist/b3d-launcher.d.ts +38 -2
- package/dist/b3d-launcher.d.ts.map +1 -1
- package/dist/b3d-launcher.js +72 -5
- package/dist/b3d-launcher.js.map +1 -1
- package/dist/b3d-radar-blip.d.ts +37 -0
- package/dist/b3d-radar-blip.d.ts.map +1 -0
- package/dist/b3d-radar-blip.js +120 -0
- package/dist/b3d-radar-blip.js.map +1 -0
- package/dist/b3d-radar.d.ts +42 -0
- package/dist/b3d-radar.d.ts.map +1 -0
- package/dist/b3d-radar.js +133 -0
- package/dist/b3d-radar.js.map +1 -0
- package/dist/b3d-utils.d.ts +8 -0
- package/dist/b3d-utils.d.ts.map +1 -1
- package/dist/b3d-utils.js +14 -0
- package/dist/b3d-utils.js.map +1 -1
- package/dist/game-controller.d.ts +3 -0
- package/dist/game-controller.d.ts.map +1 -1
- package/dist/game-controller.js +36 -2
- package/dist/game-controller.js.map +1 -1
- package/dist/guidance.d.ts +16 -0
- package/dist/guidance.d.ts.map +1 -1
- package/dist/guidance.js +22 -0
- package/dist/guidance.js.map +1 -1
- package/dist/hud-math.d.ts +32 -0
- package/dist/hud-math.d.ts.map +1 -1
- package/dist/hud-math.js +46 -0
- package/dist/hud-math.js.map +1 -1
- package/dist/hud.d.ts +29 -4
- package/dist/hud.d.ts.map +1 -1
- package/dist/hud.js +31 -7
- package/dist/hud.js.map +1 -1
- package/dist/iife.js +1743 -1771
- package/dist/iife.js.map +22 -42
- package/dist/index.d.ts +7 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +7 -4
- package/dist/index.js.map +1 -1
- package/dist/radar.d.ts +75 -0
- package/dist/radar.d.ts.map +1 -0
- package/dist/radar.js +129 -0
- package/dist/radar.js.map +1 -0
- package/dist/tosi-b3d.d.ts +48 -0
- package/dist/tosi-b3d.d.ts.map +1 -1
- package/dist/tosi-b3d.js +160 -8
- package/dist/tosi-b3d.js.map +1 -1
- package/dist/virtual-gamepad.d.ts.map +1 -1
- package/dist/virtual-gamepad.js +7 -4
- package/dist/virtual-gamepad.js.map +1 -1
- package/package.json +3 -3
package/dist/b3d-aircraft.d.ts
CHANGED
|
@@ -2,6 +2,7 @@ import * as BABYLON from '@babylonjs/core';
|
|
|
2
2
|
import type { B3d } from './tosi-b3d';
|
|
3
3
|
import { B3dControllable } from './b3d-controllable';
|
|
4
4
|
import type { ControlInput } from './control-input';
|
|
5
|
+
import type { B3dRadar } from './b3d-radar';
|
|
5
6
|
export declare class B3dAircraft extends B3dControllable {
|
|
6
7
|
inputMapping: import("./virtual-gamepad").InputMapping;
|
|
7
8
|
static initAttributes: {
|
|
@@ -26,11 +27,15 @@ export declare class B3dAircraft extends B3dControllable {
|
|
|
26
27
|
gunSpeed: number;
|
|
27
28
|
gunDamage: number;
|
|
28
29
|
missileSpeed: number;
|
|
30
|
+
missileAccel: number;
|
|
31
|
+
missileBoost: number;
|
|
29
32
|
missileTurnRate: number;
|
|
30
33
|
missileDamage: number;
|
|
31
34
|
bombDamage: number;
|
|
32
35
|
lockRange: number;
|
|
33
36
|
lockConeDeg: number;
|
|
37
|
+
reticle: string;
|
|
38
|
+
reticleRange: number;
|
|
34
39
|
x: number;
|
|
35
40
|
y: number;
|
|
36
41
|
z: number;
|
|
@@ -71,8 +76,12 @@ export declare class B3dAircraft extends B3dControllable {
|
|
|
71
76
|
private fbwSeeded;
|
|
72
77
|
ceiling: number;
|
|
73
78
|
hudChase: boolean;
|
|
79
|
+
reticle: string;
|
|
80
|
+
reticleRange: number;
|
|
74
81
|
private _hud;
|
|
75
82
|
private _hudMounted;
|
|
83
|
+
private _radar;
|
|
84
|
+
private _reticleMesh;
|
|
76
85
|
private meshNode;
|
|
77
86
|
private meshesToDispose;
|
|
78
87
|
private _lastGroundDist;
|
|
@@ -83,6 +92,11 @@ export declare class B3dAircraft extends B3dControllable {
|
|
|
83
92
|
getCameraTarget(): BABYLON.Node | null;
|
|
84
93
|
applyInput(input: ControlInput, dt: number): void;
|
|
85
94
|
private updateWeapons;
|
|
95
|
+
private _camQuat;
|
|
96
|
+
/** Push the attached radar's detected contacts onto the HUD as radar traces. */
|
|
97
|
+
private _pushRadarToHud;
|
|
98
|
+
/** The attached `<tosi-b3d-radar>` child (found once), or null. */
|
|
99
|
+
get radar(): B3dRadar | null;
|
|
86
100
|
/** The airframe's own meshes — the collision ray must skip these so a shell/bomb
|
|
87
101
|
* spawned at the belly (or the nose in a climb) never detonates on us. */
|
|
88
102
|
private ownMeshes;
|
|
@@ -94,7 +108,12 @@ export declare class B3dAircraft extends B3dControllable {
|
|
|
94
108
|
* Released a little below the belly and set to ignore our own geometry, so a bank
|
|
95
109
|
* doesn't detonate it on the wing. */
|
|
96
110
|
dropBomb(): void;
|
|
97
|
-
/**
|
|
111
|
+
/**
|
|
112
|
+
* Fire a guided missile at your **nearest radar lock** (no lock ⇒ it goes ballistic
|
|
113
|
+
* straight ahead). With a `<tosi-b3d-radar>` attached the lock comes from the radar;
|
|
114
|
+
* without one it falls back to the legacy forward-cone acquire. The missile carries a
|
|
115
|
+
* small radar signature (profile 0.25, friendly) so it shows on the HUD.
|
|
116
|
+
*/
|
|
98
117
|
fireMissile(): void;
|
|
99
118
|
private get gunWarhead();
|
|
100
119
|
/** Nearest destroyable within `range` and inside the forward cone (or null). */
|
|
@@ -113,6 +132,14 @@ export declare class B3dAircraft extends B3dControllable {
|
|
|
113
132
|
private loadFromUrl;
|
|
114
133
|
private loadFromLibrary;
|
|
115
134
|
private setupMesh;
|
|
135
|
+
/**
|
|
136
|
+
* Build the gun-aiming reticle: a ring parented to the airframe, sitting
|
|
137
|
+
* `reticleRange` metres ahead on the cannon's bore line with its hole facing
|
|
138
|
+
* forward — you fly the target INTO the ring to aim the straight-ahead guns. It
|
|
139
|
+
* rides the airframe (and so the XR rig) automatically. Player + `reticle:'on'`
|
|
140
|
+
* + armed only.
|
|
141
|
+
*/
|
|
142
|
+
private _createReticle;
|
|
116
143
|
private chaseCamera;
|
|
117
144
|
private cockpitCamera;
|
|
118
145
|
setupFollowCamera(): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"b3d-aircraft.d.ts","sourceRoot":"","sources":["../src/b3d-aircraft.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"b3d-aircraft.d.ts","sourceRoot":"","sources":["../src/b3d-aircraft.ts"],"names":[],"mappings":"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"}
|
package/dist/b3d-aircraft.js
CHANGED
|
@@ -143,57 +143,84 @@ tosi-b3d { width: 100%; height: 100%; }
|
|
|
143
143
|
}
|
|
144
144
|
```
|
|
145
145
|
|
|
146
|
-
## Combat —
|
|
146
|
+
## Combat — radar, locks, guns & missiles
|
|
147
147
|
|
|
148
|
-
The aircraft
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
and
|
|
148
|
+
The aircraft carries a [radar](?b3d-radar.ts) (a `<tosi-b3d-radar>` child) that paints
|
|
149
|
+
every [radar-blip](?b3d-radar-blip.ts) in range on the HUD — **red = hostile, tan =
|
|
150
|
+
neutral**, a diamond ahead is a **waypoint** — and builds a **lock** on the nearest
|
|
151
|
+
*hostile* in front of you (up to two). Fly a target into the **gun reticle** (the ring
|
|
152
|
+
ahead of the nose) and hold fire for the straight-ahead cannon; tap **missile** to send a
|
|
153
|
+
guided round at your nearest lock (no lock ⇒ it flies ballistic). Neutrals show on radar
|
|
154
|
+
but never lock. Your own missile shows as a faint friendly blip. Targets glow redder as
|
|
155
|
+
they take damage, then explode.
|
|
153
156
|
|
|
154
|
-
**
|
|
155
|
-
|
|
157
|
+
**Controls:** on the glass pad, **A = guns** (hold), **B = missile**, **right bumper =
|
|
158
|
+
bomb**. On the keyboard: `Space` = guns, `F` = missile, `RShift` = bomb. (Fly with W/S
|
|
159
|
+
pitch, A/D bank, R/Q throttle.)
|
|
156
160
|
|
|
157
161
|
```js
|
|
158
|
-
import { b3d, b3dAircraft, b3dHud, b3dLibrary, b3dDestroyable, b3dLight, b3dSun, b3dSkybox, b3dGround, gameController, inputFocus } from 'tosijs-3d'
|
|
162
|
+
import { b3d, b3dAircraft, b3dRadar, b3dRadarBlip, b3dHud, b3dLibrary, b3dDestroyable, b3dLight, b3dSun, b3dSkybox, b3dGround, gameController, inputFocus } from 'tosijs-3d'
|
|
159
163
|
import { elements } from 'tosijs'
|
|
160
164
|
const { div } = elements
|
|
161
165
|
|
|
166
|
+
// The aircraft with an attached radar: 250m nominal range, front hemisphere, ~1.2s to
|
|
167
|
+
// lock, up to 2 locks. Its state is surfaced on the HUD (the radar itself has no UI).
|
|
168
|
+
const RADAR_RANGE = 250 // nominal radar range (m); a profile-1 blip detects within it
|
|
169
|
+
const MAX_ALT = 300 // the aircraft's max altitude (its `ceiling`, default 300)
|
|
170
|
+
|
|
162
171
|
const aircraft = b3dAircraft({
|
|
163
172
|
library: 'vehicles', meshName: 'scout',
|
|
164
173
|
player: true, y: 0, vtolSpeed: 6, maxSpeed: 55,
|
|
165
|
-
|
|
174
|
+
hudChase: true, // show the HUD (and its radar) in the chase view, not just cockpit
|
|
175
|
+
}, b3dRadar({ range: RADAR_RANGE, coneDeg: 90, lockTime: 1.2, maxLocks: 2 }))
|
|
166
176
|
|
|
167
|
-
//
|
|
168
|
-
//
|
|
169
|
-
//
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
meshName: 'drone', size: 2.4, color
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
177
|
+
// A target = a destroyable cube that's ALSO a radar-blip (nested, so the blip follows
|
|
178
|
+
// the cube). Faction picks the colour + whether the radar will lock it: HOSTILE locks,
|
|
179
|
+
// NEUTRAL only shows. capacity 6 ≈ one cannon burst or one missile.
|
|
180
|
+
function target({ faction, ...pos }) {
|
|
181
|
+
const color = faction === 'hostile' ? '#d05050' : '#c7ad55'
|
|
182
|
+
return b3dDestroyable(
|
|
183
|
+
{ meshName: 'drone', size: 2.4, color, capacity: 6, ...pos,
|
|
184
|
+
explode: 'on', explodeForce: 8,
|
|
185
|
+
deathBlast: 'on', blastDamage: 10, blastFullRadius: 2, blastRadius: 6 },
|
|
186
|
+
b3dRadarBlip({ faction, profile: 1 }),
|
|
187
|
+
)
|
|
178
188
|
}
|
|
179
189
|
|
|
180
|
-
|
|
190
|
+
// Scatter targets across a wide forward arc, 0.5×–1.5× radar range out — so some sit
|
|
191
|
+
// BEYOND radar range and only appear as you close on them. AERIAL targets span 0.1×–
|
|
192
|
+
// 1.25× the aircraft's max altitude (a few above its ceiling → radar contacts you can
|
|
193
|
+
// only reach with a missile); GROUND targets sit on the deck.
|
|
194
|
+
function scatter(aerial) {
|
|
195
|
+
const d = RADAR_RANGE * (0.5 + Math.random()) // 0.5×..1.5× range
|
|
196
|
+
const az = (Math.random() - 0.5) * (170 * Math.PI / 180) // ±85° around the nose (+Z)
|
|
197
|
+
return target({
|
|
198
|
+
faction: Math.random() < 0.65 ? 'hostile' : 'neutral',
|
|
199
|
+
x: Math.sin(az) * d,
|
|
200
|
+
z: Math.cos(az) * d,
|
|
201
|
+
y: aerial ? MAX_ALT * (0.1 + Math.random() * 1.15) : 1.0 + Math.random() * 1.2,
|
|
202
|
+
})
|
|
203
|
+
}
|
|
204
|
+
const air = Array.from({ length: 12 }, () => scatter(true))
|
|
205
|
+
const ground = Array.from({ length: 8 }, () => scatter(false))
|
|
206
|
+
const targets = [...air, ...ground]
|
|
207
|
+
|
|
208
|
+
const kills = div({ class: 'kills' }, `Targets down: 0 / ${targets.length}`)
|
|
181
209
|
let down = 0
|
|
182
210
|
|
|
183
211
|
const scene = b3d(
|
|
184
212
|
{
|
|
185
213
|
gamepad: true,
|
|
186
214
|
sceneCreated(el) {
|
|
187
|
-
// Prove damage→death: count the bubbling `destroyed` events.
|
|
188
215
|
el.addEventListener('destroyed', () => {
|
|
189
216
|
down += 1
|
|
190
|
-
kills.textContent = `
|
|
217
|
+
kills.textContent = `Targets down: ${down} / ${targets.length}`
|
|
191
218
|
})
|
|
192
|
-
// Gently drift the
|
|
219
|
+
// Gently drift the AIR targets so they move on radar but stay hittable.
|
|
193
220
|
let t = 0
|
|
194
221
|
el.scene.onBeforeRenderObservable.add(() => {
|
|
195
222
|
t += el.scene.getEngine().getDeltaTime() / 1000
|
|
196
|
-
|
|
223
|
+
air.forEach((d, i) => {
|
|
197
224
|
if (d.dead) return
|
|
198
225
|
d.x += Math.sin(t * 0.3 + i) * 0.02
|
|
199
226
|
d.y += Math.sin(t * 0.6 + i * 2) * 0.01
|
|
@@ -204,10 +231,13 @@ const scene = b3d(
|
|
|
204
231
|
b3dLight({ y: 1, intensity: 0.5 }),
|
|
205
232
|
b3dSun({ x: -0.6, y: -1, z: -0.4, intensity: 0.9, shadowTextureSize: 2048, shadowMaxZ: 300 }),
|
|
206
233
|
b3dSkybox({ timeOfDay: 10 }),
|
|
207
|
-
b3dGround({ meshName: 'ground_nocast', width:
|
|
234
|
+
b3dGround({ meshName: 'ground_nocast', width: 900, height: 900, color: '#7d9b6e' }),
|
|
208
235
|
b3dLibrary({ url: '/test-2.glb', type: 'vehicles' }),
|
|
209
236
|
b3dHud({}),
|
|
210
|
-
|
|
237
|
+
// A NAV WAYPOINT: a positional blip (no mesh), always detectable (profile -1),
|
|
238
|
+
// shown far ahead on the HUD as a waypoint diamond.
|
|
239
|
+
b3dRadarBlip({ faction: 'waypoint', profile: -1, x: 0, y: 25, z: 300 }),
|
|
240
|
+
...targets,
|
|
211
241
|
inputFocus(gameController(), aircraft),
|
|
212
242
|
)
|
|
213
243
|
preview.append(scene, kills)
|
|
@@ -282,9 +312,9 @@ Shells inherit the airframe's velocity, so your own motion leads the shot. Any
|
|
|
282
312
|
|
|
283
313
|
| Control (default map) | Weapon |
|
|
284
314
|
| --- | --- |
|
|
285
|
-
| **Guns** —
|
|
286
|
-
| **
|
|
287
|
-
| **
|
|
315
|
+
| **Guns** — A (held) | Cannon: fast ballistic shells, small blast |
|
|
316
|
+
| **Missile** — B (tap) | Homes on your nearest radar lock (else fires straight as a dumb rocket) |
|
|
317
|
+
| **Bomb** — right bumper (tap) | Falls under gravity with your forward momentum; big blast |
|
|
288
318
|
|
|
289
319
|
`fireGuns()`, `dropBomb()`, and `fireMissile()` are also callable directly (e.g. for
|
|
290
320
|
an AI pilot). Set `weapons="off"` to disarm.
|
|
@@ -381,12 +411,18 @@ export class B3dAircraft extends B3dControllable {
|
|
|
381
411
|
gunRate: 9, // cannon shots per second (held `shoot`)
|
|
382
412
|
gunSpeed: 130, // muzzle speed of cannon shells (added to airspeed)
|
|
383
413
|
gunDamage: 8, // per-shell warhead full damage
|
|
384
|
-
missileSpeed:
|
|
414
|
+
missileSpeed: 90, // guided-missile cruise speed (faster than the airframe so it pulls ahead)
|
|
415
|
+
missileAccel: 120, // thrust accel (units/s²) ramping launch → cruise (inherits your velocity)
|
|
416
|
+
missileBoost: 0.45, // boost: forced forward accel; seeker authority ramps in across it
|
|
385
417
|
missileTurnRate: 3, // guided-missile agility (rad/sec)
|
|
386
418
|
missileDamage: 30,
|
|
387
419
|
bombDamage: 45,
|
|
388
|
-
lockRange: 140, // max range to acquire a missile target
|
|
420
|
+
lockRange: 140, // max range to acquire a missile target (fallback when no radar)
|
|
389
421
|
lockConeDeg: 35, // half-angle of the forward cone missiles can lock within
|
|
422
|
+
// Gun-aiming reticle: a bore-line ring parented to the airframe you look THROUGH
|
|
423
|
+
// to aim the (straight-ahead, ballistic) cannon. 'on' (default) / 'off'.
|
|
424
|
+
reticle: 'on',
|
|
425
|
+
reticleRange: 120, // metres ahead the reticle ring sits on the gun bore line
|
|
390
426
|
};
|
|
391
427
|
// Read-only flight state
|
|
392
428
|
airspeed = 0;
|
|
@@ -425,6 +461,10 @@ export class B3dAircraft extends B3dControllable {
|
|
|
425
461
|
// undefined = not yet resolved; null = no HUD / not the player.
|
|
426
462
|
_hud = undefined;
|
|
427
463
|
_hudMounted = false;
|
|
464
|
+
// The attached <tosi-b3d-radar> child (found once). undefined = unresolved,
|
|
465
|
+
// null = none. Drives the HUD radar traces and the missile's lock target.
|
|
466
|
+
_radar = undefined;
|
|
467
|
+
_reticleMesh = null;
|
|
428
468
|
meshNode = null;
|
|
429
469
|
meshesToDispose = [];
|
|
430
470
|
// Ground sampling is ONE raycast per frame, taken after the move and cached: the
|
|
@@ -567,7 +607,10 @@ export class B3dAircraft extends B3dControllable {
|
|
|
567
607
|
warnings.push({ text: 'STALL' });
|
|
568
608
|
this._hud.setWarnings(warnings);
|
|
569
609
|
// health/energy: wired once the combat resource models drive the aircraft.
|
|
570
|
-
//
|
|
610
|
+
// Radar traces: surface the attached <tosi-b3d-radar>'s detected contacts on
|
|
611
|
+
// the HUD (the radar itself is UI-less). Faction → trace colour; the aircraft
|
|
612
|
+
// pose is the projection viewer.
|
|
613
|
+
this._pushRadarToHud(node);
|
|
571
614
|
}
|
|
572
615
|
}
|
|
573
616
|
// === Apply velocity to position ===
|
|
@@ -632,6 +675,36 @@ export class B3dAircraft extends B3dControllable {
|
|
|
632
675
|
this.fireMissile();
|
|
633
676
|
this._missileWas = missile;
|
|
634
677
|
}
|
|
678
|
+
// Scratch for the active camera's world-rotation (radar-trace projection viewer).
|
|
679
|
+
_camQuat = new BABYLON.Quaternion();
|
|
680
|
+
/** Push the attached radar's detected contacts onto the HUD as radar traces. */
|
|
681
|
+
_pushRadarToHud(_node) {
|
|
682
|
+
const radar = this.radar;
|
|
683
|
+
const hud = this._hud;
|
|
684
|
+
if (radar == null || hud?.setTraces == null)
|
|
685
|
+
return;
|
|
686
|
+
const cam = this.owner?.scene.activeCamera;
|
|
687
|
+
if (cam == null)
|
|
688
|
+
return;
|
|
689
|
+
const traces = [];
|
|
690
|
+
for (const t of radar.tracks) {
|
|
691
|
+
if (!t.detected)
|
|
692
|
+
continue;
|
|
693
|
+
traces.push({ pos: t.pos, kind: t.id.faction, locked: t.locked });
|
|
694
|
+
}
|
|
695
|
+
// The HUD projects these itself, onto its own quad (the cockpit combiner), by
|
|
696
|
+
// intersecting the eye→target ray with the glass — so blips land on the targets you
|
|
697
|
+
// actually see. We just hand it world positions + the eye.
|
|
698
|
+
hud.setTraces(traces, cam);
|
|
699
|
+
}
|
|
700
|
+
/** The attached `<tosi-b3d-radar>` child (found once), or null. */
|
|
701
|
+
get radar() {
|
|
702
|
+
if (this._radar === undefined) {
|
|
703
|
+
this._radar =
|
|
704
|
+
this.querySelector('tosi-b3d-radar') ?? null;
|
|
705
|
+
}
|
|
706
|
+
return this._radar;
|
|
707
|
+
}
|
|
635
708
|
/** The airframe's own meshes — the collision ray must skip these so a shell/bomb
|
|
636
709
|
* spawned at the belly (or the nose in a climb) never detonates on us. */
|
|
637
710
|
ownMeshes() {
|
|
@@ -690,7 +763,12 @@ export class B3dAircraft extends B3dControllable {
|
|
|
690
763
|
ignore: (m) => this.ownMeshes().has(m),
|
|
691
764
|
});
|
|
692
765
|
}
|
|
693
|
-
/**
|
|
766
|
+
/**
|
|
767
|
+
* Fire a guided missile at your **nearest radar lock** (no lock ⇒ it goes ballistic
|
|
768
|
+
* straight ahead). With a `<tosi-b3d-radar>` attached the lock comes from the radar;
|
|
769
|
+
* without one it falls back to the legacy forward-cone acquire. The missile carries a
|
|
770
|
+
* small radar signature (profile 0.25, friendly) so it shows on the HUD.
|
|
771
|
+
*/
|
|
694
772
|
fireMissile() {
|
|
695
773
|
if (this.owner == null || !this.meshNode)
|
|
696
774
|
return;
|
|
@@ -704,7 +782,11 @@ export class B3dAircraft extends B3dControllable {
|
|
|
704
782
|
blastRadius: 4,
|
|
705
783
|
};
|
|
706
784
|
const ignore = (m) => this.ownMeshes().has(m);
|
|
707
|
-
|
|
785
|
+
// Prefer the radar's nearest lock; else fall back to the cone acquire (no radar).
|
|
786
|
+
const target = this.radar != null
|
|
787
|
+
? this.radar.nearestLockMesh()
|
|
788
|
+
: this.acquireTarget(origin, dir, attrs.lockRange, attrs.lockConeDeg);
|
|
789
|
+
const radarSig = { profile: 0.25, faction: 'friendly' };
|
|
708
790
|
if (target != null) {
|
|
709
791
|
spawnMissile(this.owner, {
|
|
710
792
|
origin,
|
|
@@ -715,6 +797,16 @@ export class B3dAircraft extends B3dControllable {
|
|
|
715
797
|
direction: dir,
|
|
716
798
|
radius: 0.18,
|
|
717
799
|
ignore,
|
|
800
|
+
radar: radarSig,
|
|
801
|
+
// Inherit the airframe's world velocity so the missile doesn't drop behind,
|
|
802
|
+
// then thrust up to cruise.
|
|
803
|
+
inheritVelocity: {
|
|
804
|
+
x: this.velocity.x,
|
|
805
|
+
y: this.velocity.y,
|
|
806
|
+
z: this.velocity.z,
|
|
807
|
+
},
|
|
808
|
+
accel: attrs.missileAccel,
|
|
809
|
+
boostTime: attrs.missileBoost,
|
|
718
810
|
});
|
|
719
811
|
}
|
|
720
812
|
else {
|
|
@@ -728,6 +820,7 @@ export class B3dAircraft extends B3dControllable {
|
|
|
728
820
|
color: '#ff6644',
|
|
729
821
|
maxLifetime: 8,
|
|
730
822
|
ignore,
|
|
823
|
+
radar: radarSig,
|
|
731
824
|
});
|
|
732
825
|
}
|
|
733
826
|
}
|
|
@@ -890,6 +983,37 @@ export class B3dAircraft extends B3dControllable {
|
|
|
890
983
|
}
|
|
891
984
|
this.lastUpdate = Date.now();
|
|
892
985
|
owner.scene.registerBeforeRender(this._update);
|
|
986
|
+
this._createReticle(owner);
|
|
987
|
+
}
|
|
988
|
+
/**
|
|
989
|
+
* Build the gun-aiming reticle: a ring parented to the airframe, sitting
|
|
990
|
+
* `reticleRange` metres ahead on the cannon's bore line with its hole facing
|
|
991
|
+
* forward — you fly the target INTO the ring to aim the straight-ahead guns. It
|
|
992
|
+
* rides the airframe (and so the XR rig) automatically. Player + `reticle:'on'`
|
|
993
|
+
* + armed only.
|
|
994
|
+
*/
|
|
995
|
+
_createReticle(owner) {
|
|
996
|
+
const attrs = this;
|
|
997
|
+
if (this.meshNode == null ||
|
|
998
|
+
!attrs.player ||
|
|
999
|
+
isOff(attrs.reticle) ||
|
|
1000
|
+
isOff(attrs.weapons)) {
|
|
1001
|
+
return;
|
|
1002
|
+
}
|
|
1003
|
+
const range = attrs.reticleRange;
|
|
1004
|
+
const ring = BABYLON.MeshBuilder.CreateTorus('gun-reticle', { diameter: range * 0.05, thickness: range * 0.006, tessellation: 24 }, owner.scene);
|
|
1005
|
+
// Default torus hole faces +Y; tip it so the hole faces +Z (the bore/nose).
|
|
1006
|
+
ring.rotation.x = Math.PI / 2;
|
|
1007
|
+
ring.position.set(0, 0, range);
|
|
1008
|
+
ring.parent = this.meshNode;
|
|
1009
|
+
ring.isPickable = false;
|
|
1010
|
+
ring.receiveShadows = false;
|
|
1011
|
+
ring.__isReticle = true;
|
|
1012
|
+
const mat = new BABYLON.StandardMaterial('gun-reticle-mat', owner.scene);
|
|
1013
|
+
mat.emissiveColor = BABYLON.Color3.FromHexString('#ff5030');
|
|
1014
|
+
mat.disableLighting = true;
|
|
1015
|
+
ring.material = mat;
|
|
1016
|
+
this._reticleMesh = ring;
|
|
893
1017
|
}
|
|
894
1018
|
chaseCamera = null;
|
|
895
1019
|
cockpitCamera = null;
|
|
@@ -960,7 +1084,13 @@ export class B3dAircraft extends B3dControllable {
|
|
|
960
1084
|
this.libraryNode.dispose();
|
|
961
1085
|
this.libraryNode = null;
|
|
962
1086
|
}
|
|
1087
|
+
if (this._reticleMesh) {
|
|
1088
|
+
this._reticleMesh.material?.dispose();
|
|
1089
|
+
this._reticleMesh.dispose();
|
|
1090
|
+
this._reticleMesh = null;
|
|
1091
|
+
}
|
|
963
1092
|
this.meshNode = null;
|
|
1093
|
+
this._radar = undefined;
|
|
964
1094
|
this.inputProvider = null;
|
|
965
1095
|
super.sceneDispose();
|
|
966
1096
|
}
|
package/dist/b3d-aircraft.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"b3d-aircraft.js","sourceRoot":"","sources":["../src/b3d-aircraft.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"b3d-aircraft.js","sourceRoot":"","sources":["../src/b3d-aircraft.ts"],"names":[],"mappings":"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"}
|
package/dist/b3d-hud.d.ts
CHANGED
|
@@ -1,7 +1,5 @@
|
|
|
1
1
|
import { B3dChild } from './b3d-utils';
|
|
2
|
-
import { type MeterName, type
|
|
3
|
-
import type { HudTraceOptions } from './hud-math';
|
|
4
|
-
import type { Pose } from './spatial-transform';
|
|
2
|
+
import { type MeterName, type TraceKind, type HudWarning } from './hud';
|
|
5
3
|
import type { B3d } from './tosi-b3d';
|
|
6
4
|
import * as BABYLON from '@babylonjs/core';
|
|
7
5
|
export declare class B3dHud extends B3dChild {
|
|
@@ -85,8 +83,45 @@ export declare class B3dHud extends B3dChild {
|
|
|
85
83
|
setVisible(visible: boolean): void;
|
|
86
84
|
/** Warning lines (PULL UP / MISSILE …); a warning's `side` flashes that arc red. */
|
|
87
85
|
setWarnings(warnings: HudWarning[]): void;
|
|
88
|
-
/**
|
|
89
|
-
|
|
86
|
+
/**
|
|
87
|
+
* Where a WORLD point appears ON THE HUD, in viewBox coords — using the HUD's REAL
|
|
88
|
+
* geometry rather than re-deriving a projection.
|
|
89
|
+
*
|
|
90
|
+
* The in-scene HUD is a literal quad on the canopy (a combiner glass), so "where does
|
|
91
|
+
* that target appear on the HUD" is just: cast a ray from the EYE through the target
|
|
92
|
+
* and intersect it with the quad. We do it in the quad's LOCAL space (transform eye +
|
|
93
|
+
* target by the plane's inverse world matrix; the plane is then the z=0 square from
|
|
94
|
+
* -size/2..+size/2), which folds in the plane's position, orientation, parent and
|
|
95
|
+
* scale for free — no projection matrix, no FOV, no handedness to get wrong. It
|
|
96
|
+
* therefore cannot disagree with what the renderer draws through the glass.
|
|
97
|
+
*
|
|
98
|
+
* Returns null if the target isn't in front of the eye. `tracked` is false when the
|
|
99
|
+
* hit falls OUTSIDE the glass — the caller pins those to the ring.
|
|
100
|
+
*/
|
|
101
|
+
projectWorldToHud(world: {
|
|
102
|
+
x: number;
|
|
103
|
+
y: number;
|
|
104
|
+
z: number;
|
|
105
|
+
}, camera: BABYLON.Camera): {
|
|
106
|
+
x: number;
|
|
107
|
+
y: number;
|
|
108
|
+
tracked: boolean;
|
|
109
|
+
} | null;
|
|
110
|
+
/** Flat-overlay projection: Babylon projects the world point to SCREEN (its real
|
|
111
|
+
* projection — cannot disagree with what's drawn), then we map that screen point into
|
|
112
|
+
* the overlay SVG's on-screen rect → viewBox coords. */
|
|
113
|
+
private _projectViaScreen;
|
|
114
|
+
/** Replace the radar traces from WORLD positions — the HUD projects them onto its
|
|
115
|
+
* own quad (see projectWorldToHud), so blips land on the targets you see. */
|
|
116
|
+
setTraces(traces: Array<{
|
|
117
|
+
pos: {
|
|
118
|
+
x: number;
|
|
119
|
+
y: number;
|
|
120
|
+
z: number;
|
|
121
|
+
};
|
|
122
|
+
kind: TraceKind;
|
|
123
|
+
locked?: boolean;
|
|
124
|
+
}>, camera: BABYLON.Camera): void;
|
|
90
125
|
}
|
|
91
126
|
export declare const b3dHud: (...args: unknown[]) => B3dHud;
|
|
92
127
|
//# sourceMappingURL=b3d-hud.d.ts.map
|
package/dist/b3d-hud.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"b3d-hud.d.ts","sourceRoot":"","sources":["../src/b3d-hud.ts"],"names":[],"mappings":"AA+FA,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAA;AAEtC,OAAO,
|
|
1
|
+
{"version":3,"file":"b3d-hud.d.ts","sourceRoot":"","sources":["../src/b3d-hud.ts"],"names":[],"mappings":"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"}
|