tosijs-3d 0.3.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.
Files changed (100) hide show
  1. package/dist/asset-url.d.ts +10 -0
  2. package/dist/asset-url.d.ts.map +1 -0
  3. package/dist/asset-url.js +37 -0
  4. package/dist/asset-url.js.map +1 -0
  5. package/dist/b3d-aircraft.d.ts +67 -0
  6. package/dist/b3d-aircraft.d.ts.map +1 -1
  7. package/dist/b3d-aircraft.js +476 -2
  8. package/dist/b3d-aircraft.js.map +1 -1
  9. package/dist/b3d-biped.d.ts +16 -0
  10. package/dist/b3d-biped.d.ts.map +1 -1
  11. package/dist/b3d-biped.js +80 -1
  12. package/dist/b3d-biped.js.map +1 -1
  13. package/dist/b3d-controllable.d.ts.map +1 -1
  14. package/dist/b3d-controllable.js +6 -1
  15. package/dist/b3d-controllable.js.map +1 -1
  16. package/dist/b3d-controller.d.ts +38 -0
  17. package/dist/b3d-controller.d.ts.map +1 -0
  18. package/dist/b3d-controller.js +64 -0
  19. package/dist/b3d-controller.js.map +1 -0
  20. package/dist/b3d-destroyable.d.ts +39 -7
  21. package/dist/b3d-destroyable.d.ts.map +1 -1
  22. package/dist/b3d-destroyable.js +187 -50
  23. package/dist/b3d-destroyable.js.map +1 -1
  24. package/dist/b3d-hud.d.ts +127 -0
  25. package/dist/b3d-hud.d.ts.map +1 -0
  26. package/dist/b3d-hud.js +368 -0
  27. package/dist/b3d-hud.js.map +1 -0
  28. package/dist/b3d-launcher.d.ts +188 -0
  29. package/dist/b3d-launcher.d.ts.map +1 -0
  30. package/dist/b3d-launcher.js +521 -0
  31. package/dist/b3d-launcher.js.map +1 -0
  32. package/dist/b3d-loader.d.ts +28 -0
  33. package/dist/b3d-loader.d.ts.map +1 -1
  34. package/dist/b3d-loader.js +86 -1
  35. package/dist/b3d-loader.js.map +1 -1
  36. package/dist/b3d-radar-blip.d.ts +37 -0
  37. package/dist/b3d-radar-blip.d.ts.map +1 -0
  38. package/dist/b3d-radar-blip.js +120 -0
  39. package/dist/b3d-radar-blip.js.map +1 -0
  40. package/dist/b3d-radar.d.ts +42 -0
  41. package/dist/b3d-radar.d.ts.map +1 -0
  42. package/dist/b3d-radar.js +133 -0
  43. package/dist/b3d-radar.js.map +1 -0
  44. package/dist/b3d-star-system.d.ts.map +1 -1
  45. package/dist/b3d-star-system.js +3 -1
  46. package/dist/b3d-star-system.js.map +1 -1
  47. package/dist/b3d-turret.d.ts +73 -0
  48. package/dist/b3d-turret.d.ts.map +1 -0
  49. package/dist/b3d-turret.js +296 -0
  50. package/dist/b3d-turret.js.map +1 -0
  51. package/dist/b3d-utils.d.ts +8 -0
  52. package/dist/b3d-utils.d.ts.map +1 -1
  53. package/dist/b3d-utils.js +14 -0
  54. package/dist/b3d-utils.js.map +1 -1
  55. package/dist/b3d-warhead.d.ts +39 -0
  56. package/dist/b3d-warhead.d.ts.map +1 -0
  57. package/dist/b3d-warhead.js +231 -0
  58. package/dist/b3d-warhead.js.map +1 -0
  59. package/dist/ballistics.d.ts +11 -0
  60. package/dist/ballistics.d.ts.map +1 -1
  61. package/dist/ballistics.js +35 -0
  62. package/dist/ballistics.js.map +1 -1
  63. package/dist/destroyable-behavior.d.ts +66 -0
  64. package/dist/destroyable-behavior.d.ts.map +1 -0
  65. package/dist/destroyable-behavior.js +174 -0
  66. package/dist/destroyable-behavior.js.map +1 -0
  67. package/dist/game-controller.d.ts +3 -0
  68. package/dist/game-controller.d.ts.map +1 -1
  69. package/dist/game-controller.js +36 -2
  70. package/dist/game-controller.js.map +1 -1
  71. package/dist/guidance.d.ts +65 -0
  72. package/dist/guidance.d.ts.map +1 -0
  73. package/dist/guidance.js +150 -0
  74. package/dist/guidance.js.map +1 -0
  75. package/dist/hud-math.d.ts +88 -0
  76. package/dist/hud-math.d.ts.map +1 -0
  77. package/dist/hud-math.js +148 -0
  78. package/dist/hud-math.js.map +1 -0
  79. package/dist/hud.d.ts +72 -0
  80. package/dist/hud.d.ts.map +1 -0
  81. package/dist/hud.js +309 -0
  82. package/dist/hud.js.map +1 -0
  83. package/dist/iife.js +1745 -1773
  84. package/dist/iife.js.map +36 -46
  85. package/dist/index.d.ts +20 -2
  86. package/dist/index.d.ts.map +1 -1
  87. package/dist/index.js +18 -2
  88. package/dist/index.js.map +1 -1
  89. package/dist/radar.d.ts +75 -0
  90. package/dist/radar.d.ts.map +1 -0
  91. package/dist/radar.js +129 -0
  92. package/dist/radar.js.map +1 -0
  93. package/dist/tosi-b3d.d.ts +57 -0
  94. package/dist/tosi-b3d.d.ts.map +1 -1
  95. package/dist/tosi-b3d.js +205 -14
  96. package/dist/tosi-b3d.js.map +1 -1
  97. package/dist/virtual-gamepad.d.ts.map +1 -1
  98. package/dist/virtual-gamepad.js +11 -0
  99. package/dist/virtual-gamepad.js.map +1 -1
  100. package/package.json +3 -2
@@ -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"}
@@ -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: {
@@ -10,6 +11,10 @@ export declare class B3dAircraft extends B3dControllable {
10
11
  meshName: string;
11
12
  player: boolean;
12
13
  enterable: boolean;
14
+ ceiling: number;
15
+ hudChase: boolean;
16
+ hudSize: number;
17
+ hudForward: number;
13
18
  maxSpeed: number;
14
19
  afterburnerSpeed: number;
15
20
  acceleration: number;
@@ -17,6 +22,20 @@ export declare class B3dAircraft extends B3dControllable {
17
22
  hoverCeiling: number;
18
23
  groundY: number;
19
24
  crashSpeed: number;
25
+ weapons: string;
26
+ gunRate: number;
27
+ gunSpeed: number;
28
+ gunDamage: number;
29
+ missileSpeed: number;
30
+ missileAccel: number;
31
+ missileBoost: number;
32
+ missileTurnRate: number;
33
+ missileDamage: number;
34
+ bombDamage: number;
35
+ lockRange: number;
36
+ lockConeDeg: number;
37
+ reticle: string;
38
+ reticleRange: number;
20
39
  x: number;
21
40
  y: number;
22
41
  z: number;
@@ -48,8 +67,21 @@ export declare class B3dAircraft extends B3dControllable {
48
67
  chaseDistance: number;
49
68
  private velocity;
50
69
  private _fwd;
70
+ private _gunCd;
71
+ private _bombCd;
72
+ private _missileCd;
73
+ private _bombWas;
74
+ private _missileWas;
51
75
  private fbw;
52
76
  private fbwSeeded;
77
+ ceiling: number;
78
+ hudChase: boolean;
79
+ reticle: string;
80
+ reticleRange: number;
81
+ private _hud;
82
+ private _hudMounted;
83
+ private _radar;
84
+ private _reticleMesh;
53
85
  private meshNode;
54
86
  private meshesToDispose;
55
87
  private _lastGroundDist;
@@ -59,6 +91,33 @@ export declare class B3dAircraft extends B3dControllable {
59
91
  private libraryNode;
60
92
  getCameraTarget(): BABYLON.Node | null;
61
93
  applyInput(input: ControlInput, dt: number): void;
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;
100
+ /** The airframe's own meshes — the collision ray must skip these so a shell/bomb
101
+ * spawned at the belly (or the nose in a climb) never detonates on us. */
102
+ private ownMeshes;
103
+ /** World nose direction (unit) and a muzzle point `ahead` metres in front. */
104
+ private muzzle;
105
+ /** Fire one cannon shell forward, inheriting the airframe's velocity. */
106
+ fireGuns(): void;
107
+ /** Drop a bomb — it inherits the airframe's velocity and falls under gravity.
108
+ * Released a little below the belly and set to ignore our own geometry, so a bank
109
+ * doesn't detonate it on the wing. */
110
+ dropBomb(): void;
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
+ */
117
+ fireMissile(): void;
118
+ private get gunWarhead();
119
+ /** Nearest destroyable within `range` and inside the forward cone (or null). */
120
+ private acquireTarget;
62
121
  /** Distance from the aircraft origin down to the nearest ground: the lower of
63
122
  * any terrain collider the raycast hits and the configured ground plane. */
64
123
  private groundDistance;
@@ -73,6 +132,14 @@ export declare class B3dAircraft extends B3dControllable {
73
132
  private loadFromUrl;
74
133
  private loadFromLibrary;
75
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;
76
143
  private chaseCamera;
77
144
  private cockpitCamera;
78
145
  setupFollowCamera(): void;
@@ -1 +1 @@
1
- {"version":3,"file":"b3d-aircraft.d.ts","sourceRoot":"","sources":["../src/b3d-aircraft.ts"],"names":[],"mappings":"AAoMA,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;AA0CnD,qBAAa,WAAY,SAAQ,eAAe;IAC9C,YAAY,2CAAoB;IAEhC,MAAM,CAAC,cAAc;;;;;;;;;;;;;;;;;;;;MA2BpB;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;IAGpC,OAAO,CAAC,GAAG,CAA8D;IACzE,OAAO,CAAC,SAAS,CAAQ;IACzB,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;IAgJ1C;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"}
1
+ {"version":3,"file":"b3d-aircraft.d.ts","sourceRoot":"","sources":["../src/b3d-aircraft.ts"],"names":[],"mappings":"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"}