@fboes/aerofly-custom-missions 1.0.1 → 1.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,9 @@
1
1
  # Changelog
2
2
 
3
+ ## 1.0.2
4
+
5
+ - Added more short hand properties
6
+
3
7
  ## 1.0.1
4
8
 
5
9
  - Improved documentation
package/README.md CHANGED
@@ -2,19 +2,19 @@
2
2
 
3
3
  > Builder for Aerofly FS4 Custom Missions Files
4
4
 
5
- [Aerofly Flight Simulator 4](https://www.aerofly.com/) has a custom missions file `custom_missions_user.tmc` with a very unique format. To help build this format file, this JavaScript / TypeScript library offers Data Transfers Objects (DTOs) to create this file containing multiple flight plans programatically.
5
+ [Aerofly Flight Simulator 4](https://www.aerofly.com/) has a custom mission file `custom_missions_user.tmc` with a very unique format. To help build this format file, this JavaScript / TypeScript library offers Data Transfers Objects (DTOs) to create this flight plan files programatically.
6
6
 
7
7
  This library is intended to work in modern browsers as well as [Node.js](https://nodejs.org/en).
8
8
 
9
9
  ## Installation
10
10
 
11
- Either download the [`dist/index.js`](dist/index.js) to a sensible location in your web project, or do a NPM installation in your web / Node.js project:
11
+ Either download the [`dist/index.js`](dist/index.js) to a sensible location in your web project, or do a NPM installation:
12
12
 
13
13
  ```bash
14
14
  npm install @fboes/aerofly-custom-missions --save
15
15
  ```
16
16
 
17
- Instead of a local installation you may also load the library from https://unpkg.com/ for a web project. Beware: This makes https://unpkg.com/ a dependency of your project and may pose data protection issues.
17
+ Instead of a local installation you may also load the library from https://unpkg.com/. Beware: This makes https://unpkg.com/ a dependency of your project and may pose data protection issues.
18
18
 
19
19
  ```html
20
20
  <script type="module" src="https://unpkg.com/@fboes/aerofly-custom-missions@latest/dist/index.js"></script>
@@ -50,7 +50,7 @@ You might want to enable TypeScript type checking by adding `// @ts-check` as yo
50
50
 
51
51
  ### Basic idea
52
52
 
53
- All objects are basic structures needed for the mission list contained in the `custom_missions_user.tmc`. The constructors tell you which properties are required, and will start with sensible defaults for all other properties.
53
+ All objects are basic structures needed for the mission list. The constructors tell you which properties are required, and will start with sensible defaults for all other properties.
54
54
 
55
55
  You can alter the properties of the objects afterwards, or (in some cases) by passing an optional configuration object to the constructor.
56
56
 
@@ -58,7 +58,7 @@ All objects can be exported as JSON or as string via the `toString()` methods. E
58
58
 
59
59
  ### Building a missions file
60
60
 
61
- A missions file can contains multiple missions. Building this file starts with the outer container, wich contains the missions:
61
+ A mission file contains multiple missions. Build this file starts with the outer container, wich contains the missions:
62
62
 
63
63
  ```javascript
64
64
  // Build a missions list
@@ -119,17 +119,17 @@ const missionList = new AeroflyMissionsList([mission]);
119
119
  console.log(missionList.toString());
120
120
  ```
121
121
 
122
- As there are lots of properties for the mission and its flight plan, check the type hinting on the various objects to find out which properties you are able to set.
122
+ As there are lots of properties for the flight plan as well as explanation for the properties mentioned above, check the type hinting on the various objects to find out which properties you are able to set.
123
123
 
124
124
  ### Important notices
125
125
 
126
126
  - Be aware that `mission.origin` and `mission.destination` do not need to match the flight plan. In case of `origin` you may want to set the position to the actual parking position of your aircraft, which may not be the first way point in your flight plan.
127
- - Flight plans almost always require at least 4 checkpoints:
127
+ - Flightplan almost always require at least 4 checkpoint:
128
128
  - `origin`
129
129
  - `departure_runway`
130
130
  - `destination_runway`
131
131
  - `destination`
132
- - Be aware that all untis for altitude, elevation or distance are measured in meters! In most cases there will be helper functions for defining these values in feet (for altitude, elevation, length) or statute miles (for visbility).
132
+ - Be aware that all untis for altitude, elevation or distance are measured in meters! In most cases there will be helper functions for defining these values in feet or statute miles (for visibility).
133
133
 
134
134
  ## Status
135
135
 
package/dist/index.js CHANGED
@@ -152,17 +152,21 @@ export class AeroflyMissionConditions {
152
152
  * @param {number} [additionalAttributes.turbulenceStrength] 0..1, percentage
153
153
  * @param {number} [additionalAttributes.thermalStrength] 0..1, percentage
154
154
  * @param {number} [additionalAttributes.visibility] in meters
155
+ * @param {number?} [additionalAttributes.visibility_sm] in statute miles
155
156
  * @param {AeroflyMissionConditionsCloud[]} [additionalAttributes.clouds] for the whole flight
156
157
  */
157
158
  constructor({ time = new Date(), wind = {
158
159
  direction: 0,
159
160
  speed: 0,
160
161
  gusts: 0,
161
- }, turbulenceStrength = 0, thermalStrength = 0, visibility = 25000, clouds = [], } = {}) {
162
+ }, turbulenceStrength = 0, thermalStrength = 0, visibility = 25_000, visibility_sm = null, clouds = [], } = {}) {
162
163
  /**
163
164
  * @property {AeroflyMissionConditionsCloud[]} clouds for the whole flight
164
165
  */
165
166
  this.clouds = [];
167
+ if (visibility_sm) {
168
+ visibility = visibility_sm * meterPerStatuteMile;
169
+ }
166
170
  this.time = time;
167
171
  this.wind = wind;
168
172
  this.turbulenceStrength = turbulenceStrength;
@@ -192,6 +196,12 @@ export class AeroflyMissionConditions {
192
196
  set visibility_sm(visibility_sm) {
193
197
  this.visibility = visibility_sm * meterPerStatuteMile;
194
198
  }
199
+ /**
200
+ * @returns {number} `this.visibility` in statute miles instead of meters
201
+ */
202
+ get visibility_sm() {
203
+ return this.visibility / meterPerStatuteMile;
204
+ }
195
205
  /**
196
206
  * @returns {string}
197
207
  */
@@ -221,7 +231,7 @@ export class AeroflyMissionConditions {
221
231
  <[float64][wind_gusts][${this.wind.gusts}]> // kts
222
232
  <[float64][turbulence_strength][${this.turbulenceStrength}]>
223
233
  <[float64][thermal_strength][${this.thermalStrength}]>
224
- <[float64][visibility][${this.visibility}]> // ${this.visibility / meterPerStatuteMile} SM
234
+ <[float64][visibility][${this.visibility}]> // ${this.visibility_sm} SM
225
235
  ${this.getCloudsString()}
226
236
  >`;
227
237
  }
@@ -257,6 +267,12 @@ export class AeroflyMissionConditionsCloud {
257
267
  set base_feet(base_feet) {
258
268
  this.base = base_feet / feetPerMeter;
259
269
  }
270
+ /**
271
+ * @returns {number} `this.base` in feet instead of meters
272
+ */
273
+ get base_feet() {
274
+ return this.base * feetPerMeter;
275
+ }
260
276
  /**
261
277
  * @returns {string} Cloud coverage as text representation like "OVC" for `this.cover`
262
278
  */
@@ -283,7 +299,7 @@ export class AeroflyMissionConditionsCloud {
283
299
  const indexString = index === 0 ? "" : String(index + 1);
284
300
  const comment = index === 0 ? "" : "//";
285
301
  return ` ${comment}<[float64][cloud_cover${indexString}][${this.cover ?? 0}]> // ${this.cover_code}
286
- ${comment}<[float64][cloud_base${indexString}][${this.base}]> // ${this.base * feetPerMeter} ft AGL`;
302
+ ${comment}<[float64][cloud_base${indexString}][${this.base}]> // ${this.base_feet} ft AGL`;
287
303
  }
288
304
  }
289
305
  /**
@@ -313,12 +329,16 @@ export class AeroflyMissionCheckpoint {
313
329
  * @param {number} [additionalAttributes.direction] of runway, in degree
314
330
  * @param {number?} [additionalAttributes.slope] of runway
315
331
  * @param {number?} [additionalAttributes.length] of runway, in meters
332
+ * @param {number?} [additionalAttributes.length_feet] of runway, in feet
316
333
  * @param {number?} [additionalAttributes.frequency] of runways or navigational aids, in Hz; multiply by 1000 for kHz, 1_000_000 for MHz
317
334
  */
318
- constructor(name, type, longitude, latitude, { altitude = 0, altitude_feet = null, direction = null, slope = null, length = null, frequency = null, } = {}) {
335
+ constructor(name, type, longitude, latitude, { altitude = 0, altitude_feet = null, direction = null, slope = null, length = null, length_feet = null, frequency = null, } = {}) {
319
336
  if (altitude_feet) {
320
337
  altitude = altitude_feet / feetPerMeter;
321
338
  }
339
+ if (length_feet) {
340
+ length = length_feet / feetPerMeter;
341
+ }
322
342
  this.type = type;
323
343
  this.name = name;
324
344
  this.longitude = longitude;
@@ -335,6 +355,24 @@ export class AeroflyMissionCheckpoint {
335
355
  set altitude_feet(altitude_feet) {
336
356
  this.altitude = altitude_feet / feetPerMeter;
337
357
  }
358
+ /**
359
+ * @returns {number} altitude_feet
360
+ */
361
+ get altitude_feet() {
362
+ return this.altitude * feetPerMeter;
363
+ }
364
+ /**
365
+ * @param {number} length_feet
366
+ */
367
+ set length_feet(length_feet) {
368
+ this.length = length_feet / feetPerMeter;
369
+ }
370
+ /**
371
+ * @returns {number} length_feet
372
+ */
373
+ get length_feet() {
374
+ return (this.length ?? 0) * feetPerMeter;
375
+ }
338
376
  /**
339
377
  * @returns {string}
340
378
  */
@@ -342,11 +380,11 @@ export class AeroflyMissionCheckpoint {
342
380
  if (!this.frequency) {
343
381
  return "None";
344
382
  }
345
- if (this.frequency > 1000000) {
346
- return String(this.frequency / 1000000) + " MHz";
383
+ if (this.frequency > 1_000_000) {
384
+ return String(this.frequency / 1_000_000) + " MHz";
347
385
  }
348
- if (this.frequency > 1000) {
349
- return String(this.frequency / 1000) + " kHz";
386
+ if (this.frequency > 1_000) {
387
+ return String(this.frequency / 1_000) + " kHz";
350
388
  }
351
389
  return String(this.frequency) + " Hz";
352
390
  }
@@ -359,10 +397,10 @@ export class AeroflyMissionCheckpoint {
359
397
  <[string8u][type][${this.type}]>
360
398
  <[string8u][name][${this.name}]>
361
399
  <[vector2_float64][lon_lat][${this.longitude} ${this.latitude}]>
362
- <[float64][altitude][${this.altitude}]> // ${this.altitude * feetPerMeter} ft
400
+ <[float64][altitude][${this.altitude}]> // ${this.altitude_feet} ft
363
401
  <[float64][direction][${this.direction ?? (index === 0 ? -1 : 0)}]>
364
402
  <[float64][slope][${this.slope ?? 0}]>
365
- <[float64][length][${this.length ?? 0}]> // ${(this.length ?? 0) * feetPerMeter} ft
403
+ <[float64][length][${this.length ?? 0}]> // ${this.length_feet} ft
366
404
  <[float64][frequency][${this.frequency ?? 0}]> // ${this.frequency_string}
367
405
  >`;
368
406
  }
@@ -7,8 +7,26 @@ import { strict as assert } from "node:assert";
7
7
  }
8
8
  {
9
9
  const conditions = new AeroflyMissionConditions();
10
- conditions.visibility = 15000;
11
- assert.deepStrictEqual(conditions.visibility, 15000);
10
+ conditions.visibility = 15_000;
11
+ assert.deepStrictEqual(conditions.visibility, 15_000);
12
+ conditions.visibility_sm = 10;
13
+ assert.notDeepStrictEqual(conditions.visibility, 10);
14
+ assert.deepStrictEqual(Math.round(conditions.visibility_sm), 10);
15
+ console.log("✅ AeroflyMissionConditions test successful");
16
+ }
17
+ {
18
+ const conditions = new AeroflyMissionConditions({
19
+ visibility: 15_000,
20
+ });
21
+ assert.deepStrictEqual(conditions.visibility, 15_000);
22
+ console.log("✅ AeroflyMissionConditions test successful");
23
+ }
24
+ {
25
+ const conditions = new AeroflyMissionConditions({
26
+ visibility_sm: 10,
27
+ });
28
+ assert.notDeepStrictEqual(conditions.visibility, 10);
29
+ assert.deepStrictEqual(Math.round(conditions.visibility_sm), 10);
12
30
  console.log("✅ AeroflyMissionConditions test successful");
13
31
  }
14
32
  {
@@ -21,6 +39,9 @@ import { strict as assert } from "node:assert";
21
39
  const cloud = new AeroflyMissionConditionsCloud(1, 1000);
22
40
  assert.deepStrictEqual(cloud.cover, 1);
23
41
  assert.deepStrictEqual(cloud.base, 1000);
42
+ cloud.base_feet = 1000;
43
+ assert.notDeepStrictEqual(cloud.base, 1000);
44
+ assert.deepStrictEqual(Math.round(cloud.base_feet), 1000);
24
45
  console.log("✅ AeroflyMissionConditionsCloud test successful");
25
46
  }
26
47
  {
@@ -39,6 +60,12 @@ import { strict as assert } from "node:assert";
39
60
  AeroflyMissionConditionsCloud.createInFeet(0.2, 7500),
40
61
  ],
41
62
  });
63
+ assert.strictEqual(conditions.wind.direction, 190);
64
+ assert.strictEqual(conditions.wind.speed, 11);
65
+ assert.strictEqual(conditions.wind.gusts, 22);
66
+ assert.strictEqual(conditions.turbulenceStrength, 1);
67
+ assert.strictEqual(conditions.thermalStrength, 0.31200000000000006);
68
+ assert.strictEqual(conditions.visibility, 14484.096000000001);
42
69
  const checkpoints = [
43
70
  new AeroflyMissionCheckpoint("KCCR", "origin", -122.057, 37.9897, {
44
71
  altitude: 8,
@@ -88,9 +115,9 @@ import { strict as assert } from "node:assert";
88
115
  assert.strictEqual(missionList.missions.length, 1);
89
116
  assert.strictEqual(missionList.missions[0].aircraft.name, "c172");
90
117
  assert.strictEqual(missionList.missions[0].aircraft.icao, "C172");
91
- console.dir(missionList.missions[0], { depth: null });
118
+ //console.dir(missionList.missions[0], { depth: null });
92
119
  const missionListString = missionList.toString();
93
- console.log(missionListString);
120
+ //console.log(missionListString);
94
121
  assert.ok(missionListString.includes("[origin]"));
95
122
  assert.ok(missionListString.includes("[tmmission_definition]"));
96
123
  assert.ok(missionListString.includes("[list_tmmission_checkpoint]"));
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fboes/aerofly-custom-missions",
3
- "version": "1.0.1",
3
+ "version": "1.0.2",
4
4
  "description": "Builder for Aerofly FS4 Custom Missions Files",
5
5
  "main": "dist/index.js",
6
6
  "scripts": {
package/src/index.test.ts CHANGED
@@ -17,6 +17,28 @@ import { strict as assert } from "node:assert";
17
17
  const conditions = new AeroflyMissionConditions();
18
18
  conditions.visibility = 15_000;
19
19
  assert.deepStrictEqual(conditions.visibility, 15_000);
20
+
21
+ conditions.visibility_sm = 10;
22
+ assert.notDeepStrictEqual(conditions.visibility, 10);
23
+ assert.deepStrictEqual(Math.round(conditions.visibility_sm), 10);
24
+
25
+ console.log("✅ AeroflyMissionConditions test successful");
26
+ }
27
+
28
+ {
29
+ const conditions = new AeroflyMissionConditions({
30
+ visibility: 15_000,
31
+ });
32
+ assert.deepStrictEqual(conditions.visibility, 15_000);
33
+ console.log("✅ AeroflyMissionConditions test successful");
34
+ }
35
+
36
+ {
37
+ const conditions = new AeroflyMissionConditions({
38
+ visibility_sm: 10,
39
+ });
40
+ assert.notDeepStrictEqual(conditions.visibility, 10);
41
+ assert.deepStrictEqual(Math.round(conditions.visibility_sm), 10);
20
42
  console.log("✅ AeroflyMissionConditions test successful");
21
43
  }
22
44
 
@@ -31,6 +53,10 @@ import { strict as assert } from "node:assert";
31
53
  const cloud = new AeroflyMissionConditionsCloud(1, 1000);
32
54
  assert.deepStrictEqual(cloud.cover, 1);
33
55
  assert.deepStrictEqual(cloud.base, 1000);
56
+
57
+ cloud.base_feet = 1000;
58
+ assert.notDeepStrictEqual(cloud.base, 1000);
59
+ assert.deepStrictEqual(Math.round(cloud.base_feet), 1000);
34
60
  console.log("✅ AeroflyMissionConditionsCloud test successful");
35
61
  }
36
62
 
@@ -51,6 +77,13 @@ import { strict as assert } from "node:assert";
51
77
  ],
52
78
  });
53
79
 
80
+ assert.strictEqual(conditions.wind.direction, 190);
81
+ assert.strictEqual(conditions.wind.speed, 11);
82
+ assert.strictEqual(conditions.wind.gusts, 22);
83
+ assert.strictEqual(conditions.turbulenceStrength, 1);
84
+ assert.strictEqual(conditions.thermalStrength, 0.31200000000000006);
85
+ assert.strictEqual(conditions.visibility, 14484.096000000001);
86
+
54
87
  const checkpoints = [
55
88
  new AeroflyMissionCheckpoint("KCCR", "origin", -122.057, 37.9897, {
56
89
  altitude: 8,
@@ -104,11 +137,11 @@ import { strict as assert } from "node:assert";
104
137
  assert.strictEqual(missionList.missions[0].aircraft.name, "c172");
105
138
  assert.strictEqual(missionList.missions[0].aircraft.icao, "C172");
106
139
 
107
- console.dir(missionList.missions[0], { depth: null });
140
+ //console.dir(missionList.missions[0], { depth: null });
108
141
 
109
142
  const missionListString = missionList.toString();
110
143
 
111
- console.log(missionListString);
144
+ //console.log(missionListString);
112
145
 
113
146
  assert.ok(missionListString.includes("[origin]"));
114
147
  assert.ok(missionListString.includes("[tmmission_definition]"));
package/src/index.ts CHANGED
@@ -331,6 +331,7 @@ export class AeroflyMissionConditions {
331
331
  * @param {number} [additionalAttributes.turbulenceStrength] 0..1, percentage
332
332
  * @param {number} [additionalAttributes.thermalStrength] 0..1, percentage
333
333
  * @param {number} [additionalAttributes.visibility] in meters
334
+ * @param {number?} [additionalAttributes.visibility_sm] in statute miles
334
335
  * @param {AeroflyMissionConditionsCloud[]} [additionalAttributes.clouds] for the whole flight
335
336
  */
336
337
  constructor({
@@ -343,6 +344,7 @@ export class AeroflyMissionConditions {
343
344
  turbulenceStrength = 0,
344
345
  thermalStrength = 0,
345
346
  visibility = 25_000,
347
+ visibility_sm = null,
346
348
  clouds = [],
347
349
  }: {
348
350
  time?: Date;
@@ -354,8 +356,12 @@ export class AeroflyMissionConditions {
354
356
  turbulenceStrength?: number;
355
357
  thermalStrength?: number;
356
358
  visibility?: number;
359
+ visibility_sm?: number | null;
357
360
  clouds?: AeroflyMissionConditionsCloud[];
358
361
  } = {}) {
362
+ if (visibility_sm) {
363
+ visibility = visibility_sm * meterPerStatuteMile;
364
+ }
359
365
  this.time = time;
360
366
  this.wind = wind;
361
367
  this.turbulenceStrength = turbulenceStrength;
@@ -389,6 +395,13 @@ export class AeroflyMissionConditions {
389
395
  this.visibility = visibility_sm * meterPerStatuteMile;
390
396
  }
391
397
 
398
+ /**
399
+ * @returns {number} `this.visibility` in statute miles instead of meters
400
+ */
401
+ get visibility_sm(): number {
402
+ return this.visibility / meterPerStatuteMile;
403
+ }
404
+
392
405
  /**
393
406
  * @returns {string}
394
407
  */
@@ -420,7 +433,7 @@ export class AeroflyMissionConditions {
420
433
  <[float64][wind_gusts][${this.wind.gusts}]> // kts
421
434
  <[float64][turbulence_strength][${this.turbulenceStrength}]>
422
435
  <[float64][thermal_strength][${this.thermalStrength}]>
423
- <[float64][visibility][${this.visibility}]> // ${this.visibility / meterPerStatuteMile} SM
436
+ <[float64][visibility][${this.visibility}]> // ${this.visibility_sm} SM
424
437
  ${this.getCloudsString()}
425
438
  >`;
426
439
  }
@@ -470,6 +483,13 @@ export class AeroflyMissionConditionsCloud {
470
483
  this.base = base_feet / feetPerMeter;
471
484
  }
472
485
 
486
+ /**
487
+ * @returns {number} `this.base` in feet instead of meters
488
+ */
489
+ get base_feet(): number {
490
+ return this.base * feetPerMeter;
491
+ }
492
+
473
493
  /**
474
494
  * @returns {string} Cloud coverage as text representation like "OVC" for `this.cover`
475
495
  */
@@ -495,7 +515,7 @@ export class AeroflyMissionConditionsCloud {
495
515
  const comment = index === 0 ? "" : "//";
496
516
 
497
517
  return ` ${comment}<[float64][cloud_cover${indexString}][${this.cover ?? 0}]> // ${this.cover_code}
498
- ${comment}<[float64][cloud_base${indexString}][${this.base}]> // ${this.base * feetPerMeter} ft AGL`;
518
+ ${comment}<[float64][cloud_base${indexString}][${this.base}]> // ${this.base_feet} ft AGL`;
499
519
  }
500
520
  }
501
521
 
@@ -577,6 +597,7 @@ export class AeroflyMissionCheckpoint {
577
597
  * @param {number} [additionalAttributes.direction] of runway, in degree
578
598
  * @param {number?} [additionalAttributes.slope] of runway
579
599
  * @param {number?} [additionalAttributes.length] of runway, in meters
600
+ * @param {number?} [additionalAttributes.length_feet] of runway, in feet
580
601
  * @param {number?} [additionalAttributes.frequency] of runways or navigational aids, in Hz; multiply by 1000 for kHz, 1_000_000 for MHz
581
602
  */
582
603
  constructor(
@@ -590,6 +611,7 @@ export class AeroflyMissionCheckpoint {
590
611
  direction = null,
591
612
  slope = null,
592
613
  length = null,
614
+ length_feet = null,
593
615
  frequency = null,
594
616
  }: {
595
617
  altitude?: number;
@@ -597,12 +619,16 @@ export class AeroflyMissionCheckpoint {
597
619
  direction?: number | null;
598
620
  slope?: number | null;
599
621
  length?: number | null;
622
+ length_feet?: number | null;
600
623
  frequency?: number | null;
601
624
  } = {},
602
625
  ) {
603
626
  if (altitude_feet) {
604
627
  altitude = altitude_feet / feetPerMeter;
605
628
  }
629
+ if (length_feet) {
630
+ length = length_feet / feetPerMeter;
631
+ }
606
632
 
607
633
  this.type = type;
608
634
  this.name = name;
@@ -622,6 +648,27 @@ export class AeroflyMissionCheckpoint {
622
648
  this.altitude = altitude_feet / feetPerMeter;
623
649
  }
624
650
 
651
+ /**
652
+ * @returns {number} altitude_feet
653
+ */
654
+ get altitude_feet(): number {
655
+ return this.altitude * feetPerMeter;
656
+ }
657
+
658
+ /**
659
+ * @param {number} length_feet
660
+ */
661
+ set length_feet(length_feet: number) {
662
+ this.length = length_feet / feetPerMeter;
663
+ }
664
+
665
+ /**
666
+ * @returns {number} length_feet
667
+ */
668
+ get length_feet(): number {
669
+ return (this.length ?? 0) * feetPerMeter;
670
+ }
671
+
625
672
  /**
626
673
  * @returns {string}
627
674
  */
@@ -648,10 +695,10 @@ export class AeroflyMissionCheckpoint {
648
695
  <[string8u][type][${this.type}]>
649
696
  <[string8u][name][${this.name}]>
650
697
  <[vector2_float64][lon_lat][${this.longitude} ${this.latitude}]>
651
- <[float64][altitude][${this.altitude}]> // ${this.altitude * feetPerMeter} ft
698
+ <[float64][altitude][${this.altitude}]> // ${this.altitude_feet} ft
652
699
  <[float64][direction][${this.direction ?? (index === 0 ? -1 : 0)}]>
653
700
  <[float64][slope][${this.slope ?? 0}]>
654
- <[float64][length][${this.length ?? 0}]> // ${(this.length ?? 0) * feetPerMeter} ft
701
+ <[float64][length][${this.length ?? 0}]> // ${this.length_feet} ft
655
702
  <[float64][frequency][${this.frequency ?? 0}]> // ${this.frequency_string}
656
703
  >`;
657
704
  }
package/types/index.d.ts CHANGED
@@ -25,7 +25,15 @@ export type AeroflyMissionSetting = "taxi" | "takeoff" | "cruise" | "approach" |
25
25
  /**
26
26
  * Types of checkpoints. Required are usually "origin", "departure_runway" at the start and "destination_runway", "destination" at the end.
27
27
  */
28
- export type AeroflyMissionCheckpointType = "origin" | "departure_runway" | "departure" | "waypoint" | "arrival" | "approach" | "destination_runway" | "destination";
28
+ export type AeroflyMissionCheckpointType =
29
+ | "origin"
30
+ | "departure_runway"
31
+ | "departure"
32
+ | "waypoint"
33
+ | "arrival"
34
+ | "approach"
35
+ | "destination_runway"
36
+ | "destination";
29
37
  /**
30
38
  * Data for the aircraft to use on this mission
31
39
  * @property name lowercase Aerofly aircraft ID
@@ -131,16 +139,28 @@ export declare class AeroflyMission {
131
139
  * @param {AeroflyMissionConditions} [additionalAttributes.conditions] like time and weather for mission
132
140
  * @param {AeroflyMissionCheckpoint[]} [additionalAttributes.checkpoints] form the actual flight plan
133
141
  */
134
- constructor(title: string, { description, flightSetting, aircraft, callsign, origin, destination, conditions, checkpoints, }?: {
135
- description?: string;
136
- flightSetting?: AeroflyMissionSetting;
137
- aircraft?: AeroflyMissionAircraft;
138
- callsign?: string;
139
- origin?: AeroflyMissionPosition;
140
- destination?: AeroflyMissionPosition;
141
- conditions?: AeroflyMissionConditions;
142
- checkpoints?: AeroflyMissionCheckpoint[];
143
- });
142
+ constructor(
143
+ title: string,
144
+ {
145
+ description,
146
+ flightSetting,
147
+ aircraft,
148
+ callsign,
149
+ origin,
150
+ destination,
151
+ conditions,
152
+ checkpoints,
153
+ }?: {
154
+ description?: string;
155
+ flightSetting?: AeroflyMissionSetting;
156
+ aircraft?: AeroflyMissionAircraft;
157
+ callsign?: string;
158
+ origin?: AeroflyMissionPosition;
159
+ destination?: AeroflyMissionPosition;
160
+ conditions?: AeroflyMissionConditions;
161
+ checkpoints?: AeroflyMissionCheckpoint[];
162
+ },
163
+ );
144
164
  /**
145
165
  * @returns {string} indexed checkpoints
146
166
  */
@@ -193,9 +213,18 @@ export declare class AeroflyMissionConditions {
193
213
  * @param {number} [additionalAttributes.turbulenceStrength] 0..1, percentage
194
214
  * @param {number} [additionalAttributes.thermalStrength] 0..1, percentage
195
215
  * @param {number} [additionalAttributes.visibility] in meters
216
+ * @param {number?} [additionalAttributes.visibility_sm] in statute miles
196
217
  * @param {AeroflyMissionConditionsCloud[]} [additionalAttributes.clouds] for the whole flight
197
218
  */
198
- constructor({ time, wind, turbulenceStrength, thermalStrength, visibility, clouds, }?: {
219
+ constructor({
220
+ time,
221
+ wind,
222
+ turbulenceStrength,
223
+ thermalStrength,
224
+ visibility,
225
+ visibility_sm,
226
+ clouds,
227
+ }?: {
199
228
  time?: Date;
200
229
  wind?: {
201
230
  direction: number;
@@ -205,6 +234,7 @@ export declare class AeroflyMissionConditions {
205
234
  turbulenceStrength?: number;
206
235
  thermalStrength?: number;
207
236
  visibility?: number;
237
+ visibility_sm?: number | null;
208
238
  clouds?: AeroflyMissionConditionsCloud[];
209
239
  });
210
240
  /**
@@ -219,6 +249,10 @@ export declare class AeroflyMissionConditions {
219
249
  * @param {number} visibility_sm `this.visibility` in statute miles instead of meters
220
250
  */
221
251
  set visibility_sm(visibility_sm: number);
252
+ /**
253
+ * @returns {number} `this.visibility` in statute miles instead of meters
254
+ */
255
+ get visibility_sm(): number;
222
256
  /**
223
257
  * @returns {string}
224
258
  */
@@ -260,6 +294,10 @@ export declare class AeroflyMissionConditionsCloud {
260
294
  * @param {number} base_feet `this.base` in feet instead of meters
261
295
  */
262
296
  set base_feet(base_feet: number);
297
+ /**
298
+ * @returns {number} `this.base` in feet instead of meters
299
+ */
300
+ get base_feet(): number;
263
301
  /**
264
302
  * @returns {string} Cloud coverage as text representation like "OVC" for `this.cover`
265
303
  */
@@ -339,20 +377,48 @@ export declare class AeroflyMissionCheckpoint {
339
377
  * @param {number} [additionalAttributes.direction] of runway, in degree
340
378
  * @param {number?} [additionalAttributes.slope] of runway
341
379
  * @param {number?} [additionalAttributes.length] of runway, in meters
380
+ * @param {number?} [additionalAttributes.length_feet] of runway, in feet
342
381
  * @param {number?} [additionalAttributes.frequency] of runways or navigational aids, in Hz; multiply by 1000 for kHz, 1_000_000 for MHz
343
382
  */
344
- constructor(name: string, type: AeroflyMissionCheckpointType, longitude: number, latitude: number, { altitude, altitude_feet, direction, slope, length, frequency, }?: {
345
- altitude?: number;
346
- altitude_feet?: number | null;
347
- direction?: number | null;
348
- slope?: number | null;
349
- length?: number | null;
350
- frequency?: number | null;
351
- });
383
+ constructor(
384
+ name: string,
385
+ type: AeroflyMissionCheckpointType,
386
+ longitude: number,
387
+ latitude: number,
388
+ {
389
+ altitude,
390
+ altitude_feet,
391
+ direction,
392
+ slope,
393
+ length,
394
+ length_feet,
395
+ frequency,
396
+ }?: {
397
+ altitude?: number;
398
+ altitude_feet?: number | null;
399
+ direction?: number | null;
400
+ slope?: number | null;
401
+ length?: number | null;
402
+ length_feet?: number | null;
403
+ frequency?: number | null;
404
+ },
405
+ );
352
406
  /**
353
407
  * @param {number} altitude_feet
354
408
  */
355
409
  set altitude_feet(altitude_feet: number);
410
+ /**
411
+ * @returns {number} altitude_feet
412
+ */
413
+ get altitude_feet(): number;
414
+ /**
415
+ * @param {number} length_feet
416
+ */
417
+ set length_feet(length_feet: number);
418
+ /**
419
+ * @returns {number} length_feet
420
+ */
421
+ get length_feet(): number;
356
422
  /**
357
423
  * @returns {string}
358
424
  */
@@ -371,4 +437,4 @@ declare const _default: {
371
437
  AeroflyMissionCheckpoint: typeof AeroflyMissionCheckpoint;
372
438
  };
373
439
  export default _default;
374
- //# sourceMappingURL=index.d.ts.map
440
+ //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAGA;;;;;;;;;;;;GAYG;AACH,MAAM,MAAM,sBAAsB,GAAG;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;CACf,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,qBAAqB,GAAG,MAAM,GAAG,SAAS,GAAG,QAAQ,GAAG,UAAU,GAAG,SAAS,CAAC;AAE3F;;GAEG;AACH,MAAM,MAAM,4BAA4B,GAClC,QAAQ,GACR,kBAAkB,GAClB,WAAW,GACX,UAAU,GACV,SAAS,GACT,UAAU,GACV,oBAAoB,GACpB,aAAa,CAAC;AAEpB;;;;;GAKG;AACH,MAAM,MAAM,sBAAsB,GAAG;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF;;;;;GAKG;AACH,MAAM,MAAM,4BAA4B,GAAG;IACvC,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,sCAAsC,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,CAAC;AAE3F;;;;;;;GAOG;AACH,qBAAa,mBAAmB;IAC5B;;OAEG;IACH,QAAQ,EAAE,cAAc,EAAE,CAAC;IAE3B;;OAEG;gBACS,QAAQ,GAAE,cAAc,EAAO;IAI3C;;OAEG;IACH,QAAQ,IAAI,MAAM;CAQrB;AAED;;;;;;;GAOG;AACH,qBAAa,cAAc;IACvB;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC;IAEd;;OAEG;IACH,WAAW,EAAE,MAAM,CAAC;IAEpB;;OAEG;IACH,aAAa,EAAE,qBAAqB,CAAC;IAErC;;OAEG;IACH,QAAQ,EAAE,sBAAsB,CAAC;IAEjC;;OAEG;IACH,QAAQ,EAAE,MAAM,CAAC;IAEjB;;OAEG;IACH,MAAM,EAAE,sBAAsB,CAAC;IAE/B;;OAEG;IACH,WAAW,EAAE,sBAAsB,CAAC;IAEpC;;OAEG;IACH,UAAU,EAAE,wBAAwB,CAAC;IAErC;;OAEG;IACH,WAAW,EAAE,wBAAwB,EAAE,CAAC;IAExC;;;;;;;;;;;OAWG;gBAEC,KAAK,EAAE,MAAM,EACb,EACI,WAAgB,EAChB,aAAsB,EACtB,QAIC,EACD,QAAa,EACb,MAMC,EACD,WAMC,EACD,UAA2C,EAC3C,WAAgB,GACnB,GAAE;QACC,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,aAAa,CAAC,EAAE,qBAAqB,CAAC;QACtC,QAAQ,CAAC,EAAE,sBAAsB,CAAC;QAClC,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,MAAM,CAAC,EAAE,sBAAsB,CAAC;QAChC,WAAW,CAAC,EAAE,sBAAsB,CAAC;QACrC,UAAU,CAAC,EAAE,wBAAwB,CAAC;QACtC,WAAW,CAAC,EAAE,wBAAwB,EAAE,CAAC;KACvC;IAaV;;OAEG;IACH,oBAAoB,IAAI,MAAM;IAQ9B;;;OAGG;IACH,QAAQ,IAAI,MAAM;CAgDrB;AAED;;;;;;;GAOG;AACH,qBAAa,wBAAwB;IACjC;;;OAGG;IACH,IAAI,EAAE,IAAI,CAAC;IAEX;;OAEG;IACH,IAAI,EAAE,4BAA4B,CAAC;IAEnC;;OAEG;IACH,kBAAkB,EAAE,MAAM,CAAC;IAE3B;;OAEG;IACH,eAAe,EAAE,MAAM,CAAC;IAExB;;OAEG;IACH,UAAU,EAAE,MAAM,CAAC;IAEnB;;OAEG;IACH,MAAM,EAAE,6BAA6B,EAAE,CAAM;IAE7C;;;;;;;;;;OAUG;gBACS,EACR,IAAiB,EACjB,IAIC,EACD,kBAAsB,EACtB,eAAmB,EACnB,UAAmB,EACnB,aAAoB,EACpB,MAAW,GACd,GAAE;QACC,IAAI,CAAC,EAAE,IAAI,CAAC;QACZ,IAAI,CAAC,EAAE;YACH,SAAS,EAAE,MAAM,CAAC;YAClB,KAAK,EAAE,MAAM,CAAC;YACd,KAAK,EAAE,MAAM,CAAC;SACjB,CAAC;QACF,kBAAkB,CAAC,EAAE,MAAM,CAAC;QAC5B,eAAe,CAAC,EAAE,MAAM,CAAC;QACzB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QAC9B,MAAM,CAAC,EAAE,6BAA6B,EAAE,CAAC;KACvC;IAYN;;OAEG;IACH,IAAI,UAAU,IAAI,MAAM,CAEvB;IAED;;OAEG;IACH,IAAI,mBAAmB,IAAI,MAAM,CAMhC;IAED;;OAEG;IACH,IAAI,aAAa,CAAC,aAAa,EAAE,MAAM,EAEtC;IAED;;OAEG;IACH,IAAI,aAAa,IAAI,MAAM,CAE1B;IAED;;OAEG;IACH,eAAe,IAAI,MAAM;IAQzB;;OAEG;IACH,QAAQ,IAAI,MAAM;CAqBrB;AAED;;;;;;;GAOG;AACH,qBAAa,6BAA6B;IACtC;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC;IAEd;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;IAEb;;;OAGG;gBACS,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM;IAKvC;;;;OAIG;IACH,MAAM,CAAC,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,6BAA6B;IAIpF;;OAEG;IACH,IAAI,SAAS,CAAC,SAAS,EAAE,MAAM,EAE9B;IAED;;OAEG;IACH,IAAI,SAAS,IAAI,MAAM,CAEtB;IAED;;OAEG;IACH,IAAI,UAAU,IAAI,sCAAsC,CAWvD;IAED;;;OAGG;IACH,QAAQ,CAAC,KAAK,GAAE,MAAU,GAAG,MAAM;CAOtC;AAED;;;;;;;GAOG;AACH,qBAAa,wBAAwB;IACjC;;OAEG;IACH,IAAI,EAAE,4BAA4B,CAAC;IAEnC;;;OAGG;IACH,IAAI,EAAE,MAAM,CAAC;IAEb;;;;OAIG;IACH,SAAS,EAAE,MAAM,CAAC;IAElB;;;;OAIG;IACH,QAAQ,EAAE,MAAM,CAAC;IAEjB;;;OAGG;IACH,QAAQ,EAAE,MAAM,CAAC;IAEjB;;OAEG;IACH,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IAEzB;;OAEG;IACH,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IAErB;;OAEG;IACH,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IAEtB;;OAEG;IACH,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IAEzB;;;;;;;;;;;;;;;;;;;;OAoBG;gBAEC,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,4BAA4B,EAClC,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,MAAM,EAChB,EACI,QAAY,EACZ,aAAoB,EACpB,SAAgB,EAChB,KAAY,EACZ,MAAa,EACb,WAAkB,EAClB,SAAgB,GACnB,GAAE;QACC,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QAC9B,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QAC1B,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QACtB,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QACvB,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QAC5B,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;KACxB;IAoBV;;OAEG;IACH,IAAI,aAAa,CAAC,aAAa,EAAE,MAAM,EAEtC;IAED;;OAEG;IACH,IAAI,aAAa,IAAI,MAAM,CAE1B;IAED;;OAEG;IACH,IAAI,WAAW,CAAC,WAAW,EAAE,MAAM,EAElC;IAED;;OAEG;IACH,IAAI,WAAW,IAAI,MAAM,CAExB;IAED;;OAEG;IACH,IAAI,gBAAgB,IAAI,MAAM,CAY7B;IAED;;;OAGG;IACH,QAAQ,CAAC,KAAK,GAAE,MAAU,GAAG,MAAM;CAYtC;;;;;;;;AAED,wBAME"}
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=index.test.d.ts.map
2
+ //# sourceMappingURL=index.test.d.ts.map