tosijs-3d 0.3.0 → 0.4.0
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/asset-url.d.ts +10 -0
- package/dist/asset-url.d.ts.map +1 -0
- package/dist/asset-url.js +37 -0
- package/dist/asset-url.js.map +1 -0
- package/dist/b3d-aircraft.d.ts +40 -0
- package/dist/b3d-aircraft.d.ts.map +1 -1
- package/dist/b3d-aircraft.js +346 -2
- package/dist/b3d-aircraft.js.map +1 -1
- package/dist/b3d-biped.d.ts +16 -0
- package/dist/b3d-biped.d.ts.map +1 -1
- package/dist/b3d-biped.js +80 -1
- package/dist/b3d-biped.js.map +1 -1
- package/dist/b3d-controllable.d.ts.map +1 -1
- package/dist/b3d-controllable.js +6 -1
- package/dist/b3d-controllable.js.map +1 -1
- package/dist/b3d-controller.d.ts +38 -0
- package/dist/b3d-controller.d.ts.map +1 -0
- package/dist/b3d-controller.js +64 -0
- package/dist/b3d-controller.js.map +1 -0
- package/dist/b3d-destroyable.d.ts +39 -7
- package/dist/b3d-destroyable.d.ts.map +1 -1
- package/dist/b3d-destroyable.js +187 -50
- package/dist/b3d-destroyable.js.map +1 -1
- package/dist/b3d-hud.d.ts +92 -0
- package/dist/b3d-hud.d.ts.map +1 -0
- package/dist/b3d-hud.js +282 -0
- package/dist/b3d-hud.js.map +1 -0
- package/dist/b3d-launcher.d.ts +152 -0
- package/dist/b3d-launcher.d.ts.map +1 -0
- package/dist/b3d-launcher.js +454 -0
- package/dist/b3d-launcher.js.map +1 -0
- package/dist/b3d-loader.d.ts +28 -0
- package/dist/b3d-loader.d.ts.map +1 -1
- package/dist/b3d-loader.js +86 -1
- package/dist/b3d-loader.js.map +1 -1
- package/dist/b3d-star-system.d.ts.map +1 -1
- package/dist/b3d-star-system.js +3 -1
- package/dist/b3d-star-system.js.map +1 -1
- package/dist/b3d-turret.d.ts +73 -0
- package/dist/b3d-turret.d.ts.map +1 -0
- package/dist/b3d-turret.js +296 -0
- package/dist/b3d-turret.js.map +1 -0
- package/dist/b3d-warhead.d.ts +39 -0
- package/dist/b3d-warhead.d.ts.map +1 -0
- package/dist/b3d-warhead.js +231 -0
- package/dist/b3d-warhead.js.map +1 -0
- package/dist/ballistics.d.ts +11 -0
- package/dist/ballistics.d.ts.map +1 -1
- package/dist/ballistics.js +35 -0
- package/dist/ballistics.js.map +1 -1
- package/dist/destroyable-behavior.d.ts +66 -0
- package/dist/destroyable-behavior.d.ts.map +1 -0
- package/dist/destroyable-behavior.js +174 -0
- package/dist/destroyable-behavior.js.map +1 -0
- package/dist/guidance.d.ts +49 -0
- package/dist/guidance.d.ts.map +1 -0
- package/dist/guidance.js +128 -0
- package/dist/guidance.js.map +1 -0
- package/dist/hud-math.d.ts +56 -0
- package/dist/hud-math.d.ts.map +1 -0
- package/dist/hud-math.js +102 -0
- package/dist/hud-math.js.map +1 -0
- package/dist/hud.d.ts +47 -0
- package/dist/hud.d.ts.map +1 -0
- package/dist/hud.js +285 -0
- package/dist/hud.js.map +1 -0
- package/dist/iife.js +1151 -1151
- package/dist/iife.js.map +27 -17
- package/dist/index.d.ts +15 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +14 -1
- package/dist/index.js.map +1 -1
- package/dist/tosi-b3d.d.ts +9 -0
- package/dist/tosi-b3d.d.ts.map +1 -1
- package/dist/tosi-b3d.js +45 -6
- package/dist/tosi-b3d.js.map +1 -1
- package/dist/virtual-gamepad.d.ts.map +1 -1
- package/dist/virtual-gamepad.js +8 -0
- package/dist/virtual-gamepad.js.map +1 -1
- package/package.json +2 -1
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/** Set the base URL prepended to logical asset paths (e.g. `https://cdn.tosijs.net`). */
|
|
2
|
+
export declare function setAssetBase(url: string): void;
|
|
3
|
+
/** The current asset base (`''` = resolve locally). */
|
|
4
|
+
export declare function getAssetBase(): string;
|
|
5
|
+
/**
|
|
6
|
+
* Resolve a logical asset path against the base. Absolute URLs (`http(s)://`,
|
|
7
|
+
* `data:`, `blob:`) pass through unchanged.
|
|
8
|
+
*/
|
|
9
|
+
export declare function assetUrl(path: string): string;
|
|
10
|
+
//# sourceMappingURL=asset-url.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"asset-url.d.ts","sourceRoot":"","sources":["../src/asset-url.ts"],"names":[],"mappings":"AAqBA,yFAAyF;AACzF,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAE9C;AAED,uDAAuD;AACvD,wBAAgB,YAAY,IAAI,MAAM,CAErC;AAED;;;GAGG;AACH,wBAAgB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAG7C"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
/*#
|
|
2
|
+
# asset-url
|
|
3
|
+
|
|
4
|
+
A tiny indirection for referencing hosted blobs (models, textures, audio, …) by a
|
|
5
|
+
LOGICAL path, so demos/consumers aren't littered with a hostname and can retarget the
|
|
6
|
+
host in one place. `assetUrl('kenney/vehicles/car.glb')` resolves against a base set
|
|
7
|
+
once via `setAssetBase(...)`; the base defaults to empty, so paths resolve locally
|
|
8
|
+
(served from `static/`) for tests and offline dev. Already-absolute URLs
|
|
9
|
+
(`http(s)://`, `data:`, `blob:`) pass through untouched.
|
|
10
|
+
|
|
11
|
+
```js
|
|
12
|
+
import { setAssetBase, assetUrl, b3dLoader } from 'tosijs-3d'
|
|
13
|
+
|
|
14
|
+
setAssetBase('https://cdn.tosijs.net') // once, e.g. in demo/site.ts
|
|
15
|
+
b3dLoader({ url: assetUrl('kenney/vehicles/car.glb') })
|
|
16
|
+
```
|
|
17
|
+
*/
|
|
18
|
+
/*{ "parent": "Core" }*/
|
|
19
|
+
let base = '';
|
|
20
|
+
/** Set the base URL prepended to logical asset paths (e.g. `https://cdn.tosijs.net`). */
|
|
21
|
+
export function setAssetBase(url) {
|
|
22
|
+
base = url.replace(/\/+$/, '');
|
|
23
|
+
}
|
|
24
|
+
/** The current asset base (`''` = resolve locally). */
|
|
25
|
+
export function getAssetBase() {
|
|
26
|
+
return base;
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Resolve a logical asset path against the base. Absolute URLs (`http(s)://`,
|
|
30
|
+
* `data:`, `blob:`) pass through unchanged.
|
|
31
|
+
*/
|
|
32
|
+
export function assetUrl(path) {
|
|
33
|
+
if (/^(https?:)?\/\//i.test(path) || /^(data|blob):/i.test(path))
|
|
34
|
+
return path;
|
|
35
|
+
return `${base}/${path.replace(/^\/+/, '')}`;
|
|
36
|
+
}
|
|
37
|
+
//# sourceMappingURL=asset-url.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"asset-url.js","sourceRoot":"","sources":["../src/asset-url.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;EAgBE;AACF,wBAAwB;AAExB,IAAI,IAAI,GAAG,EAAE,CAAA;AAEb,yFAAyF;AACzF,MAAM,UAAU,YAAY,CAAC,GAAW;IACtC,IAAI,GAAG,GAAG,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAA;AAChC,CAAC;AAED,uDAAuD;AACvD,MAAM,UAAU,YAAY;IAC1B,OAAO,IAAI,CAAA;AACb,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,QAAQ,CAAC,IAAY;IACnC,IAAI,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC;QAAE,OAAO,IAAI,CAAA;IAC7E,OAAO,GAAG,IAAI,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE,CAAA;AAC9C,CAAC"}
|
package/dist/b3d-aircraft.d.ts
CHANGED
|
@@ -10,6 +10,10 @@ export declare class B3dAircraft extends B3dControllable {
|
|
|
10
10
|
meshName: string;
|
|
11
11
|
player: boolean;
|
|
12
12
|
enterable: boolean;
|
|
13
|
+
ceiling: number;
|
|
14
|
+
hudChase: boolean;
|
|
15
|
+
hudSize: number;
|
|
16
|
+
hudForward: number;
|
|
13
17
|
maxSpeed: number;
|
|
14
18
|
afterburnerSpeed: number;
|
|
15
19
|
acceleration: number;
|
|
@@ -17,6 +21,16 @@ export declare class B3dAircraft extends B3dControllable {
|
|
|
17
21
|
hoverCeiling: number;
|
|
18
22
|
groundY: number;
|
|
19
23
|
crashSpeed: number;
|
|
24
|
+
weapons: string;
|
|
25
|
+
gunRate: number;
|
|
26
|
+
gunSpeed: number;
|
|
27
|
+
gunDamage: number;
|
|
28
|
+
missileSpeed: number;
|
|
29
|
+
missileTurnRate: number;
|
|
30
|
+
missileDamage: number;
|
|
31
|
+
bombDamage: number;
|
|
32
|
+
lockRange: number;
|
|
33
|
+
lockConeDeg: number;
|
|
20
34
|
x: number;
|
|
21
35
|
y: number;
|
|
22
36
|
z: number;
|
|
@@ -48,8 +62,17 @@ export declare class B3dAircraft extends B3dControllable {
|
|
|
48
62
|
chaseDistance: number;
|
|
49
63
|
private velocity;
|
|
50
64
|
private _fwd;
|
|
65
|
+
private _gunCd;
|
|
66
|
+
private _bombCd;
|
|
67
|
+
private _missileCd;
|
|
68
|
+
private _bombWas;
|
|
69
|
+
private _missileWas;
|
|
51
70
|
private fbw;
|
|
52
71
|
private fbwSeeded;
|
|
72
|
+
ceiling: number;
|
|
73
|
+
hudChase: boolean;
|
|
74
|
+
private _hud;
|
|
75
|
+
private _hudMounted;
|
|
53
76
|
private meshNode;
|
|
54
77
|
private meshesToDispose;
|
|
55
78
|
private _lastGroundDist;
|
|
@@ -59,6 +82,23 @@ export declare class B3dAircraft extends B3dControllable {
|
|
|
59
82
|
private libraryNode;
|
|
60
83
|
getCameraTarget(): BABYLON.Node | null;
|
|
61
84
|
applyInput(input: ControlInput, dt: number): void;
|
|
85
|
+
private updateWeapons;
|
|
86
|
+
/** The airframe's own meshes — the collision ray must skip these so a shell/bomb
|
|
87
|
+
* spawned at the belly (or the nose in a climb) never detonates on us. */
|
|
88
|
+
private ownMeshes;
|
|
89
|
+
/** World nose direction (unit) and a muzzle point `ahead` metres in front. */
|
|
90
|
+
private muzzle;
|
|
91
|
+
/** Fire one cannon shell forward, inheriting the airframe's velocity. */
|
|
92
|
+
fireGuns(): void;
|
|
93
|
+
/** Drop a bomb — it inherits the airframe's velocity and falls under gravity.
|
|
94
|
+
* Released a little below the belly and set to ignore our own geometry, so a bank
|
|
95
|
+
* doesn't detonate it on the wing. */
|
|
96
|
+
dropBomb(): void;
|
|
97
|
+
/** Fire a guided missile at the nearest target in the forward cone (else dumb). */
|
|
98
|
+
fireMissile(): void;
|
|
99
|
+
private get gunWarhead();
|
|
100
|
+
/** Nearest destroyable within `range` and inside the forward cone (or null). */
|
|
101
|
+
private acquireTarget;
|
|
62
102
|
/** Distance from the aircraft origin down to the nearest ground: the lower of
|
|
63
103
|
* any terrain collider the raycast hits and the configured ground plane. */
|
|
64
104
|
private groundDistance;
|
|
@@ -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":"AAkTA,OAAO,KAAK,OAAO,MAAM,iBAAiB,CAAA;AAC1C,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,YAAY,CAAA;AACrC,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAA;AACpD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAA;AAyDnD,qBAAa,WAAY,SAAQ,eAAe;IAC9C,YAAY,2CAAoB;IAEhC,MAAM,CAAC,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MA+CpB;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;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;IAEzB,OAAO,CAAC,IAAI,CAAwC;IACpD,OAAO,CAAC,WAAW,CAAQ;IAC3B,OAAO,CAAC,QAAQ,CAAqC;IACrD,OAAO,CAAC,eAAe,CAAqB;IAM5C,OAAO,CAAC,eAAe,CAAW;IAClC,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;IA+M1C,OAAO,CAAC,aAAa;IAkBrB;8EAC0E;IAC1E,OAAO,CAAC,SAAS;IAUjB,8EAA8E;IAC9E,OAAO,CAAC,MAAM;IAUd,yEAAyE;IACzE,QAAQ,IAAI,IAAI;IAmBhB;;0CAEsC;IACtC,QAAQ,IAAI,IAAI;IAgBhB,mFAAmF;IACnF,WAAW,IAAI,IAAI;IA4CnB,OAAO,KAAK,UAAU,GAMrB;IAED,gFAAgF;IAChF,OAAO,CAAC,aAAa;IAyBrB;gFAC4E;IAC5E,OAAO,CAAC,cAAc;IAMtB,+EAA+E;IAC/E,OAAO,CAAC,KAAK;IAOb;;qDAEiD;IACjD,OAAO,CAAC,aAAa;IAmBrB,OAAO,CAAC,YAAY;IASpB,UAAU,CAAC,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK;IAW3C,OAAO,CAAC,WAAW;IAgBnB,OAAO,CAAC,eAAe;IAwCvB,OAAO,CAAC,SAAS;IAgCjB,OAAO,CAAC,WAAW,CAAkC;IACrD,OAAO,CAAC,aAAa,CAAkC;IAEvD,iBAAiB;IAoDjB;;mFAE+E;IAC/E,aAAa,CAAC,IAAI,EAAE,OAAO,GAAG,SAAS;IASvC,YAAY;CAwBb;AAED,eAAO,MAAM,WAAW,8CAEtB,CAAA"}
|
package/dist/b3d-aircraft.js
CHANGED
|
@@ -13,7 +13,7 @@ The full flight model is explained below the demo.
|
|
|
13
13
|
## Demo
|
|
14
14
|
|
|
15
15
|
```js
|
|
16
|
-
import { b3d, b3dAircraft, b3dLibrary, b3dLight, b3dSun, b3dSkybox, b3dGround, gameController, inputFocus } from 'tosijs-3d'
|
|
16
|
+
import { b3d, b3dAircraft, b3dHud, b3dLibrary, b3dLight, b3dSun, b3dSkybox, b3dGround, gameController, inputFocus } from 'tosijs-3d'
|
|
17
17
|
import { elements } from 'tosijs'
|
|
18
18
|
const { div, span } = elements
|
|
19
19
|
|
|
@@ -85,6 +85,9 @@ const scene = addMarkers(b3d(
|
|
|
85
85
|
// aircraft's shadow would shrink to sub-pixel (i.e. invisible).
|
|
86
86
|
b3dGround({ meshName: 'ground_nocast', width: 500, height: 500, color: '#7d9b6e' }),
|
|
87
87
|
b3dLibrary({ url: '/test-2.glb', type: 'vehicles' }),
|
|
88
|
+
// Drop in the gauge HUD — the player aircraft drives it automatically (speed,
|
|
89
|
+
// altitude vs `ceiling`, and the pitch/roll horizon).
|
|
90
|
+
b3dHud({}),
|
|
88
91
|
inputFocus(
|
|
89
92
|
gameController(),
|
|
90
93
|
aircraft,
|
|
@@ -140,6 +143,84 @@ tosi-b3d { width: 100%; height: 100%; }
|
|
|
140
143
|
}
|
|
141
144
|
```
|
|
142
145
|
|
|
146
|
+
## Combat — shoot down the drones
|
|
147
|
+
|
|
148
|
+
The aircraft is armed (see [Weapons](#weapons-the-combat-slice)). Fly at the drifting
|
|
149
|
+
**aerial drones** and shoot them down. Each takes a short cannon burst or one missile —
|
|
150
|
+
watch a drone glow **redder as it takes damage** (the [destroyable](?b3d-destroyable.ts)
|
|
151
|
+
damage readout), then explode. The **kills counter** (top-right) ticks up as they die,
|
|
152
|
+
and missiles **lock the nearest drone in front of you**.
|
|
153
|
+
|
|
154
|
+
**Keys:** `Space` / right-Shift = **guns**, `LShift` = **missile**, `F` = **bomb**.
|
|
155
|
+
(Fly with W/S pitch, A/D bank, R/Q throttle.)
|
|
156
|
+
|
|
157
|
+
```js
|
|
158
|
+
import { b3d, b3dAircraft, b3dHud, b3dLibrary, b3dDestroyable, b3dLight, b3dSun, b3dSkybox, b3dGround, gameController, inputFocus } from 'tosijs-3d'
|
|
159
|
+
import { elements } from 'tosijs'
|
|
160
|
+
const { div } = elements
|
|
161
|
+
|
|
162
|
+
const aircraft = b3dAircraft({
|
|
163
|
+
library: 'vehicles', meshName: 'scout',
|
|
164
|
+
player: true, y: 0, vtolSpeed: 6, maxSpeed: 55,
|
|
165
|
+
})
|
|
166
|
+
|
|
167
|
+
// Big, low-HP drones spread across the takeoff heading (+Z), at cruise height. capacity
|
|
168
|
+
// 6 ≈ one cannon burst or one missile — so a hit obviously registers and kills. They
|
|
169
|
+
// explode and fire a small death-blast, so a tight formation chain-reacts.
|
|
170
|
+
const drones = []
|
|
171
|
+
for (let i = 0; i < 12; i++) {
|
|
172
|
+
drones.push(b3dDestroyable({
|
|
173
|
+
meshName: 'drone', size: 2.4, color: '#d05050', capacity: 6,
|
|
174
|
+
x: (i % 4) * 9 - 13.5, y: 12 + (i % 3) * 5, z: 45 + Math.floor(i / 4) * 22,
|
|
175
|
+
explode: 'on', explodeForce: 8,
|
|
176
|
+
deathBlast: 'on', blastDamage: 10, blastFullRadius: 2, blastRadius: 6,
|
|
177
|
+
}))
|
|
178
|
+
}
|
|
179
|
+
|
|
180
|
+
const kills = div({ class: 'kills' }, 'Drones down: 0 / 12')
|
|
181
|
+
let down = 0
|
|
182
|
+
|
|
183
|
+
const scene = b3d(
|
|
184
|
+
{
|
|
185
|
+
gamepad: true,
|
|
186
|
+
sceneCreated(el) {
|
|
187
|
+
// Prove damage→death: count the bubbling `destroyed` events.
|
|
188
|
+
el.addEventListener('destroyed', () => {
|
|
189
|
+
down += 1
|
|
190
|
+
kills.textContent = `Drones down: ${down} / 12`
|
|
191
|
+
})
|
|
192
|
+
// Gently drift the drones so they move but stay very hittable.
|
|
193
|
+
let t = 0
|
|
194
|
+
el.scene.onBeforeRenderObservable.add(() => {
|
|
195
|
+
t += el.scene.getEngine().getDeltaTime() / 1000
|
|
196
|
+
drones.forEach((d, i) => {
|
|
197
|
+
if (d.dead) return
|
|
198
|
+
d.x += Math.sin(t * 0.3 + i) * 0.02
|
|
199
|
+
d.y += Math.sin(t * 0.6 + i * 2) * 0.01
|
|
200
|
+
})
|
|
201
|
+
})
|
|
202
|
+
},
|
|
203
|
+
},
|
|
204
|
+
b3dLight({ y: 1, intensity: 0.5 }),
|
|
205
|
+
b3dSun({ x: -0.6, y: -1, z: -0.4, intensity: 0.9, shadowTextureSize: 2048, shadowMaxZ: 300 }),
|
|
206
|
+
b3dSkybox({ timeOfDay: 10 }),
|
|
207
|
+
b3dGround({ meshName: 'ground_nocast', width: 500, height: 500, color: '#7d9b6e' }),
|
|
208
|
+
b3dLibrary({ url: '/test-2.glb', type: 'vehicles' }),
|
|
209
|
+
b3dHud({}),
|
|
210
|
+
...drones,
|
|
211
|
+
inputFocus(gameController(), aircraft),
|
|
212
|
+
)
|
|
213
|
+
preview.append(scene, kills)
|
|
214
|
+
```
|
|
215
|
+
```css
|
|
216
|
+
tosi-b3d { width: 100%; height: 100%; }
|
|
217
|
+
.kills {
|
|
218
|
+
position: absolute; top: 10px; right: 10px; z-index: 10;
|
|
219
|
+
padding: 6px 12px; border-radius: 4px;
|
|
220
|
+
background: rgba(0, 0, 0, 0.55); color: #ffcf6a; font: 14px monospace;
|
|
221
|
+
}
|
|
222
|
+
```
|
|
223
|
+
|
|
143
224
|
## Flight model
|
|
144
225
|
|
|
145
226
|
You're in PLANE mode (trigger = forward thrust) if you're fast enough (`vtolSpeed`)
|
|
@@ -178,6 +259,35 @@ lift/throttle (the dual-purpose axis above), right stick Y = camera zoom.
|
|
|
178
259
|
| `hoverCeiling` | `50` | Height above ground above which the trigger is forward thrust regardless of speed (take off vertically, then fly) and the brake can't stall you below `vtolSpeed`. Below it, slowing to a hover gives the vertical trigger back for a vertical landing. 0 = off. |
|
|
179
260
|
| `groundY` | `0` | Assumed ground-plane height (a floor in addition to any terrain colliders) |
|
|
180
261
|
| `crashSpeed` | `8` | Vertical impact speed (m/s) above which a ground contact is a crash |
|
|
262
|
+
| `hudChase` | `false` | Show the flat DOM HUD overlay in chase view (cockpit uses the in-scene HUD) |
|
|
263
|
+
| `hudSize` | `0.7` | In-cockpit HUD plane size (metres) |
|
|
264
|
+
| `hudForward` | `1.6` | How far ahead of the pilot's eye the HUD floats (metres) |
|
|
265
|
+
| `weapons` | `'on'` | `'off'` disarms all weapons |
|
|
266
|
+
| `gunRate` | `9` | Cannon shots/sec while `shoot` is held |
|
|
267
|
+
| `gunSpeed` | `130` | Cannon muzzle speed (added to airspeed) |
|
|
268
|
+
| `gunDamage` | `8` | Per-shell warhead full damage |
|
|
269
|
+
| `missileSpeed` | `55` | Guided-missile cruise speed |
|
|
270
|
+
| `missileTurnRate` | `3` | Guided-missile agility (rad/sec) |
|
|
271
|
+
| `missileDamage` | `30` | Missile warhead full damage |
|
|
272
|
+
| `bombDamage` | `45` | Bomb warhead full damage |
|
|
273
|
+
| `lockRange` | `140` | Max range to acquire a missile target |
|
|
274
|
+
| `lockConeDeg` | `35` | Half-angle of the forward cone missiles lock within |
|
|
275
|
+
|
|
276
|
+
## Weapons (the combat slice)
|
|
277
|
+
|
|
278
|
+
Built on the pure combat toolkit ([destroyable](?b3d-destroyable.ts) /
|
|
279
|
+
[warhead](?b3d-warhead.ts) / [launcher](?b3d-launcher.ts) / [guidance](?guidance.ts)).
|
|
280
|
+
Shells inherit the airframe's velocity, so your own motion leads the shot. Any
|
|
281
|
+
[b3d-destroyable](?b3d-destroyable.ts) in the scene takes the damage.
|
|
282
|
+
|
|
283
|
+
| Control (default map) | Weapon |
|
|
284
|
+
| --- | --- |
|
|
285
|
+
| **Guns** — right bumper / A (held) | Cannon: fast ballistic shells, small blast |
|
|
286
|
+
| **Bomb** — B (tap) | Falls under gravity with your forward momentum; big blast |
|
|
287
|
+
| **Missile** — left bumper (tap) | Homes on the nearest target in the forward cone (else fires straight as a dumb rocket) |
|
|
288
|
+
|
|
289
|
+
`fireGuns()`, `dropBomb()`, and `fireMissile()` are also callable directly (e.g. for
|
|
290
|
+
an AI pilot). Set `weapons="off"` to disarm.
|
|
181
291
|
|
|
182
292
|
## API (read-only properties for HUD binding)
|
|
183
293
|
|
|
@@ -197,7 +307,8 @@ import * as BABYLON from '@babylonjs/core';
|
|
|
197
307
|
import { B3dControllable } from './b3d-controllable';
|
|
198
308
|
import { aircraftMapping } from './virtual-gamepad';
|
|
199
309
|
import { flyByWireStep, targetVelocity, chaseVelocity, } from './fly-by-wire';
|
|
200
|
-
import { placeOnSurface, boundingBottomOffset } from './b3d-utils';
|
|
310
|
+
import { placeOnSurface, boundingBottomOffset, isOff } from './b3d-utils';
|
|
311
|
+
import { spawnProjectile, spawnMissile } from './b3d-launcher';
|
|
201
312
|
// Small gap kept between the model's belly and the ground.
|
|
202
313
|
const GROUND_SEPARATION = 0.05;
|
|
203
314
|
const DEG2RAD = Math.PI / 180;
|
|
@@ -236,6 +347,15 @@ export class B3dAircraft extends B3dControllable {
|
|
|
236
347
|
meshName: '',
|
|
237
348
|
player: false,
|
|
238
349
|
enterable: false,
|
|
350
|
+
// Service ceiling (m): the aircraft can't climb past it, and it reads full on
|
|
351
|
+
// a linked HUD's altitude gauge.
|
|
352
|
+
ceiling: 300,
|
|
353
|
+
// Show the HUD in the chase view too (default: cockpit view only).
|
|
354
|
+
hudChase: false,
|
|
355
|
+
// In-cockpit HUD plane placement (see b3d-hud attachInScene): its size in metres
|
|
356
|
+
// and how far ahead of the pilot's eye it floats. Tune to taste per airframe.
|
|
357
|
+
hudSize: 0.7,
|
|
358
|
+
hudForward: 1.6,
|
|
239
359
|
maxSpeed: 50,
|
|
240
360
|
// Hard speed ceiling while the throttle is held past maxSpeed (afterburner).
|
|
241
361
|
// Release and it bleeds back to maxSpeed. ≤ maxSpeed disables afterburner.
|
|
@@ -256,6 +376,17 @@ export class B3dAircraft extends B3dControllable {
|
|
|
256
376
|
// Vertical impact speed (m/s) above which a ground contact is a crash, not
|
|
257
377
|
// a landing.
|
|
258
378
|
crashSpeed: 8,
|
|
379
|
+
// --- Weapons (the combat slice; see COMBAT-DESIGN.md). 'off' to disarm. ---
|
|
380
|
+
weapons: 'on',
|
|
381
|
+
gunRate: 9, // cannon shots per second (held `shoot`)
|
|
382
|
+
gunSpeed: 130, // muzzle speed of cannon shells (added to airspeed)
|
|
383
|
+
gunDamage: 8, // per-shell warhead full damage
|
|
384
|
+
missileSpeed: 55, // guided-missile cruise speed
|
|
385
|
+
missileTurnRate: 3, // guided-missile agility (rad/sec)
|
|
386
|
+
missileDamage: 30,
|
|
387
|
+
bombDamage: 45,
|
|
388
|
+
lockRange: 140, // max range to acquire a missile target
|
|
389
|
+
lockConeDeg: 35, // half-angle of the forward cone missiles can lock within
|
|
259
390
|
};
|
|
260
391
|
// Read-only flight state
|
|
261
392
|
airspeed = 0;
|
|
@@ -281,10 +412,19 @@ export class B3dAircraft extends B3dControllable {
|
|
|
281
412
|
chaseDistance = 4.8; // chase distance behind
|
|
282
413
|
velocity = new BABYLON.Vector3(0, 0, 0);
|
|
283
414
|
_fwd = new BABYLON.Vector3(); // scratch: world nose direction (unit)
|
|
415
|
+
// Weapon cooldowns (seconds until ready) + edge-detect for the one-shot weapons.
|
|
416
|
+
_gunCd = 0;
|
|
417
|
+
_bombCd = 0;
|
|
418
|
+
_missileCd = 0;
|
|
419
|
+
_bombWas = false;
|
|
420
|
+
_missileWas = false;
|
|
284
421
|
// Fly-by-wire flight state (heading/pitch/bank/speed). Seeded from the spawned
|
|
285
422
|
// orientation on the first frame, then this controller owns the quaternion.
|
|
286
423
|
fbw = { heading: 0, pitch: 0, bank: 0, speed: 0 };
|
|
287
424
|
fbwSeeded = false;
|
|
425
|
+
// undefined = not yet resolved; null = no HUD / not the player.
|
|
426
|
+
_hud = undefined;
|
|
427
|
+
_hudMounted = false;
|
|
288
428
|
meshNode = null;
|
|
289
429
|
meshesToDispose = [];
|
|
290
430
|
// Ground sampling is ONE raycast per frame, taken after the move and cached: the
|
|
@@ -387,8 +527,57 @@ export class B3dAircraft extends B3dControllable {
|
|
|
387
527
|
// ceiling you can be stalled but the thrust still goes forward.
|
|
388
528
|
this.vtolActive = attrs.vtolSpeed > 0 && fwdSpeed < attrs.vtolSpeed;
|
|
389
529
|
this.stalling = false;
|
|
530
|
+
// Drive a linked HUD (a <tosi-b3d-hud> sibling) when this is the player. Found
|
|
531
|
+
// once and cached; loosely typed so the aircraft doesn't depend on b3d-hud.
|
|
532
|
+
if (this._hud === undefined) {
|
|
533
|
+
this._hud =
|
|
534
|
+
attrs.player && this.owner
|
|
535
|
+
? this.owner.querySelector('tosi-b3d-hud')
|
|
536
|
+
: null;
|
|
537
|
+
}
|
|
538
|
+
if (this._hud != null) {
|
|
539
|
+
// Mount the HUD onto the canopy (in-scene) once, so it shows in a 3D cockpit
|
|
540
|
+
// and in VR — parented to the airframe just ahead of the pilot's eye, banking
|
|
541
|
+
// with the plane (not head-locked).
|
|
542
|
+
if (!this._hudMounted && this._hud.attachInScene != null) {
|
|
543
|
+
this._hudMounted = true;
|
|
544
|
+
this._hud.attachInScene(node, {
|
|
545
|
+
size: attrs.hudSize,
|
|
546
|
+
position: new BABYLON.Vector3(0, this.eyeHeight, this.cockpitForward + attrs.hudForward),
|
|
547
|
+
});
|
|
548
|
+
}
|
|
549
|
+
// In cockpit view the 3D canopy HUD is the HUD; the flat DOM overlay is for the
|
|
550
|
+
// chase view only when `hud-chase` opts in.
|
|
551
|
+
const inCockpit = this.cameraView === 'cockpit';
|
|
552
|
+
this._hud.setInSceneVisible?.(inCockpit);
|
|
553
|
+
const showHud = inCockpit || attrs.hudChase;
|
|
554
|
+
this._hud.setVisible(!inCockpit && attrs.hudChase);
|
|
555
|
+
if (showHud) {
|
|
556
|
+
const RAD = 180 / Math.PI;
|
|
557
|
+
this._hud.setMeter('speed', attrs.maxSpeed > 0 ? this.fbw.speed / attrs.maxSpeed : 0);
|
|
558
|
+
this._hud.setMeter('altitude', this.altitude / attrs.ceiling);
|
|
559
|
+
// Nose-up should slide the horizon down — flip here if it reads inverted.
|
|
560
|
+
this._hud.setHorizon(this.fbw.pitch * RAD, this.fbw.bank * RAD);
|
|
561
|
+
// Warnings on the graphical HUD: PULL UP flashes the bottom arc (ground
|
|
562
|
+
// below); STALL is text only (not directional).
|
|
563
|
+
const warnings = [];
|
|
564
|
+
if (this.pullUp)
|
|
565
|
+
warnings.push({ text: 'PULL UP', side: 'bottom' });
|
|
566
|
+
if (this.stalling)
|
|
567
|
+
warnings.push({ text: 'STALL' });
|
|
568
|
+
this._hud.setWarnings(warnings);
|
|
569
|
+
// health/energy: wired once the combat resource models drive the aircraft.
|
|
570
|
+
// radar traces (setTraces): wired once scene targets exist.
|
|
571
|
+
}
|
|
572
|
+
}
|
|
390
573
|
// === Apply velocity to position ===
|
|
391
574
|
node.position.addInPlaceFromFloats(vel.x * dt, vel.y * dt, vel.z * dt);
|
|
575
|
+
// Service ceiling: can't climb past it. Cap altitude and bleed the climb.
|
|
576
|
+
if (node.position.y > attrs.ceiling) {
|
|
577
|
+
node.position.y = attrs.ceiling;
|
|
578
|
+
if (vel.y > 0)
|
|
579
|
+
vel.y = 0;
|
|
580
|
+
}
|
|
392
581
|
// Ground contact. Clamp out of the terrain; once settled, behave like
|
|
393
582
|
// wheels — kill the downward bounce and apply rolling resistance so you can
|
|
394
583
|
// land, roll to a stop, and accelerate to take off again. (First cut — tune
|
|
@@ -416,6 +605,161 @@ export class B3dAircraft extends B3dControllable {
|
|
|
416
605
|
// fly-by-wire block above. Just refresh the ground-proximity pull-up warning.
|
|
417
606
|
this.altitude = node.position.y;
|
|
418
607
|
this.updatePullUp(node, groundDist);
|
|
608
|
+
// Weapons last, so shells spawn from this frame's muzzle position.
|
|
609
|
+
this.updateWeapons(input, dt);
|
|
610
|
+
}
|
|
611
|
+
// --- Weapons ---------------------------------------------------------------
|
|
612
|
+
// Cannon on held `shoot` (cadence-gated), bomb on `jump` (edge), missile on
|
|
613
|
+
// `aim` (edge) — all built on the pure combat toolkit (spawnProjectile /
|
|
614
|
+
// spawnMissile / warhead). Shells inherit the airframe's velocity so they lead
|
|
615
|
+
// naturally with your own motion.
|
|
616
|
+
updateWeapons(input, dt) {
|
|
617
|
+
if (isOff(this.weapons) || this.crashed || !this.meshNode)
|
|
618
|
+
return;
|
|
619
|
+
if (this.owner == null)
|
|
620
|
+
return;
|
|
621
|
+
this._gunCd -= dt;
|
|
622
|
+
this._bombCd -= dt;
|
|
623
|
+
this._missileCd -= dt;
|
|
624
|
+
if (input.shoot > 0.5 && this._gunCd <= 0)
|
|
625
|
+
this.fireGuns();
|
|
626
|
+
const bomb = input.jump > 0.5;
|
|
627
|
+
if (bomb && !this._bombWas && this._bombCd <= 0)
|
|
628
|
+
this.dropBomb();
|
|
629
|
+
this._bombWas = bomb;
|
|
630
|
+
const missile = input.aim > 0.5;
|
|
631
|
+
if (missile && !this._missileWas && this._missileCd <= 0)
|
|
632
|
+
this.fireMissile();
|
|
633
|
+
this._missileWas = missile;
|
|
634
|
+
}
|
|
635
|
+
/** The airframe's own meshes — the collision ray must skip these so a shell/bomb
|
|
636
|
+
* spawned at the belly (or the nose in a climb) never detonates on us. */
|
|
637
|
+
ownMeshes() {
|
|
638
|
+
if (this._ownMeshes == null && this.meshNode != null) {
|
|
639
|
+
const own = new Set();
|
|
640
|
+
if (this.meshNode instanceof BABYLON.AbstractMesh)
|
|
641
|
+
own.add(this.meshNode);
|
|
642
|
+
for (const child of this.meshNode.getChildMeshes())
|
|
643
|
+
own.add(child);
|
|
644
|
+
this._ownMeshes = own;
|
|
645
|
+
}
|
|
646
|
+
return this._ownMeshes ?? new Set();
|
|
647
|
+
}
|
|
648
|
+
/** World nose direction (unit) and a muzzle point `ahead` metres in front. */
|
|
649
|
+
muzzle(ahead, drop = 0) {
|
|
650
|
+
const node = this.meshNode;
|
|
651
|
+
node.getDirectionToRef(LOCAL_Z, this._fwd);
|
|
652
|
+
return new BABYLON.Vector3(node.position.x + this._fwd.x * ahead, node.position.y + this._fwd.y * ahead - drop, node.position.z + this._fwd.z * ahead);
|
|
653
|
+
}
|
|
654
|
+
/** Fire one cannon shell forward, inheriting the airframe's velocity. */
|
|
655
|
+
fireGuns() {
|
|
656
|
+
if (this.owner == null || !this.meshNode)
|
|
657
|
+
return;
|
|
658
|
+
const attrs = this;
|
|
659
|
+
this._gunCd = attrs.gunRate > 0 ? 1 / attrs.gunRate : 0;
|
|
660
|
+
const origin = this.muzzle(2.2); // sets this._fwd to the world nose direction
|
|
661
|
+
const dir = this._fwd.clone().normalize();
|
|
662
|
+
const ignore = (m) => this.ownMeshes().has(m);
|
|
663
|
+
spawnProjectile(this.owner, {
|
|
664
|
+
origin,
|
|
665
|
+
velocity: this.velocity.add(dir.scale(attrs.gunSpeed)),
|
|
666
|
+
warhead: this.gunWarhead,
|
|
667
|
+
params: { gravity: { x: 0, y: -9.81, z: 0 }, dragCoeff: 0.001, mass: 2 },
|
|
668
|
+
radius: 0.08,
|
|
669
|
+
color: '#fff2a0',
|
|
670
|
+
maxLifetime: 3,
|
|
671
|
+
ignore,
|
|
672
|
+
});
|
|
673
|
+
}
|
|
674
|
+
/** Drop a bomb — it inherits the airframe's velocity and falls under gravity.
|
|
675
|
+
* Released a little below the belly and set to ignore our own geometry, so a bank
|
|
676
|
+
* doesn't detonate it on the wing. */
|
|
677
|
+
dropBomb() {
|
|
678
|
+
if (this.owner == null || !this.meshNode)
|
|
679
|
+
return;
|
|
680
|
+
const attrs = this;
|
|
681
|
+
this._bombCd = 0.6;
|
|
682
|
+
spawnProjectile(this.owner, {
|
|
683
|
+
origin: this.muzzle(0, 1.2), // clear of the belly
|
|
684
|
+
velocity: this.velocity.clone(),
|
|
685
|
+
warhead: { damage: attrs.bombDamage, fullRadius: 2, blastRadius: 6 },
|
|
686
|
+
params: { gravity: { x: 0, y: -9.81, z: 0 }, dragCoeff: 0.002, mass: 4 },
|
|
687
|
+
radius: 0.25,
|
|
688
|
+
color: '#404040',
|
|
689
|
+
maxLifetime: 12,
|
|
690
|
+
ignore: (m) => this.ownMeshes().has(m),
|
|
691
|
+
});
|
|
692
|
+
}
|
|
693
|
+
/** Fire a guided missile at the nearest target in the forward cone (else dumb). */
|
|
694
|
+
fireMissile() {
|
|
695
|
+
if (this.owner == null || !this.meshNode)
|
|
696
|
+
return;
|
|
697
|
+
const attrs = this;
|
|
698
|
+
this._missileCd = 0.8;
|
|
699
|
+
const origin = this.muzzle(1.6);
|
|
700
|
+
const dir = this._fwd.clone().normalize();
|
|
701
|
+
const spec = {
|
|
702
|
+
damage: attrs.missileDamage,
|
|
703
|
+
fullRadius: 1.5,
|
|
704
|
+
blastRadius: 4,
|
|
705
|
+
};
|
|
706
|
+
const ignore = (m) => this.ownMeshes().has(m);
|
|
707
|
+
const target = this.acquireTarget(origin, dir, attrs.lockRange, attrs.lockConeDeg);
|
|
708
|
+
if (target != null) {
|
|
709
|
+
spawnMissile(this.owner, {
|
|
710
|
+
origin,
|
|
711
|
+
target,
|
|
712
|
+
speed: attrs.missileSpeed,
|
|
713
|
+
turnRate: attrs.missileTurnRate,
|
|
714
|
+
warhead: spec,
|
|
715
|
+
direction: dir,
|
|
716
|
+
radius: 0.18,
|
|
717
|
+
ignore,
|
|
718
|
+
});
|
|
719
|
+
}
|
|
720
|
+
else {
|
|
721
|
+
// No lock — fire it straight ahead as an unguided rocket.
|
|
722
|
+
spawnProjectile(this.owner, {
|
|
723
|
+
origin,
|
|
724
|
+
velocity: this.velocity.add(dir.scale(attrs.missileSpeed)),
|
|
725
|
+
warhead: spec,
|
|
726
|
+
params: { gravity: { x: 0, y: 0, z: 0 }, dragCoeff: 0, mass: 1 },
|
|
727
|
+
radius: 0.18,
|
|
728
|
+
color: '#ff6644',
|
|
729
|
+
maxLifetime: 8,
|
|
730
|
+
ignore,
|
|
731
|
+
});
|
|
732
|
+
}
|
|
733
|
+
}
|
|
734
|
+
get gunWarhead() {
|
|
735
|
+
return {
|
|
736
|
+
damage: this.gunDamage,
|
|
737
|
+
fullRadius: 0.5,
|
|
738
|
+
blastRadius: 1.5,
|
|
739
|
+
};
|
|
740
|
+
}
|
|
741
|
+
/** Nearest destroyable within `range` and inside the forward cone (or null). */
|
|
742
|
+
acquireTarget(origin, fwd, range, coneDeg) {
|
|
743
|
+
const minCos = Math.cos((coneDeg * Math.PI) / 180);
|
|
744
|
+
let best = null;
|
|
745
|
+
let bestDist = Infinity;
|
|
746
|
+
const els = this.owner.querySelectorAll('tosi-b3d-destroyable');
|
|
747
|
+
for (const el of Array.from(els)) {
|
|
748
|
+
const mesh = el.mesh;
|
|
749
|
+
if (mesh == null || mesh.isDisposed())
|
|
750
|
+
continue;
|
|
751
|
+
const to = mesh.absolutePosition.subtract(origin);
|
|
752
|
+
const dist = to.length();
|
|
753
|
+
if (dist > range || dist < 1e-3)
|
|
754
|
+
continue;
|
|
755
|
+
if (BABYLON.Vector3.Dot(to.scale(1 / dist), fwd) < minCos)
|
|
756
|
+
continue;
|
|
757
|
+
if (dist < bestDist) {
|
|
758
|
+
bestDist = dist;
|
|
759
|
+
best = mesh;
|
|
760
|
+
}
|
|
761
|
+
}
|
|
762
|
+
return best;
|
|
419
763
|
}
|
|
420
764
|
/** Distance from the aircraft origin down to the nearest ground: the lower of
|
|
421
765
|
* any terrain collider the raycast hits and the configured ground plane. */
|
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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"}
|