@jtff/miztemplate-lib 2.0.6 → 2.1.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/lib/jtff-lib-ci.js +22 -0
- package/package.json +3 -2
- package/scripts/inject-scripts.js +53 -0
package/lib/jtff-lib-ci.js
CHANGED
|
@@ -233,6 +233,11 @@ class MizTemplateCI{
|
|
|
233
233
|
}
|
|
234
234
|
|
|
235
235
|
async mizUpdateRadioPresets(zip, preset_folder) {
|
|
236
|
+
// Create folder Avionics to make sure it exists then delete it to remove any old preset in the template
|
|
237
|
+
// Allows adding presets for A-10C
|
|
238
|
+
zip.folder("Avionics");
|
|
239
|
+
zip.remove("Avionics");
|
|
240
|
+
|
|
236
241
|
const mission_object = await this.getMissionObjectFromZip(zip);
|
|
237
242
|
for (let file of fs.readdirSync(preset_folder).filter(file => file.endsWith(".lua"))) {
|
|
238
243
|
const file_data = fs.readFileSync(preset_folder + '/' + file).toString();
|
|
@@ -260,6 +265,23 @@ class MizTemplateCI{
|
|
|
260
265
|
for (const sub_unit_key in unit) {
|
|
261
266
|
const sub_unit = unit[sub_unit_key];
|
|
262
267
|
if (sub_unit["skill"] != "Client") continue;
|
|
268
|
+
// Aircraft is an A10CII, use A10C mode by creating files in the root with the unit id
|
|
269
|
+
if (radio_descriptor_table["aircraft"] == 'A-10C_2') {
|
|
270
|
+
const unit_id = sub_unit["unitId"];
|
|
271
|
+
["UHF_RADIO", "VHF_AM_RADIO", "VHF_FM_RADIO"].forEach(folder => {
|
|
272
|
+
var zip_folder = zip.folder("Avionics/A-10C_2/" + unit_id + "/" + folder);
|
|
273
|
+
var file = parse("return " + dcs_radio_presets)[folder];
|
|
274
|
+
file = format(file, { singleQuote: false });
|
|
275
|
+
file = file
|
|
276
|
+
.split('\n')
|
|
277
|
+
.slice(1, -1)
|
|
278
|
+
.join('\n')
|
|
279
|
+
.slice(0, -1)
|
|
280
|
+
.replace(/\[\"(\d+)\"\] = /g, "[$1] = ");
|
|
281
|
+
zip_folder.file("SETTINGS.lua", file);
|
|
282
|
+
});
|
|
283
|
+
continue;
|
|
284
|
+
}
|
|
263
285
|
if (sub_unit["type"] != radio_descriptor_table["aircraft"]) continue;
|
|
264
286
|
// GROUP FOUND, SET RADIOS
|
|
265
287
|
sub_unit["Radio"] = parse("return " + dcs_radio_presets)
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@jtff/miztemplate-lib",
|
|
3
|
-
"version": "2.0
|
|
3
|
+
"version": "2.1.0",
|
|
4
4
|
"description": "JTFF mission template library",
|
|
5
5
|
"main": "index.js",
|
|
6
6
|
"files": [
|
|
@@ -18,7 +18,8 @@
|
|
|
18
18
|
"keywords": [
|
|
19
19
|
"DCS",
|
|
20
20
|
"World",
|
|
21
|
-
"JTFF"
|
|
21
|
+
"JTFF",
|
|
22
|
+
"DCSWorld"
|
|
22
23
|
],
|
|
23
24
|
"author": "Sebastien LONGO",
|
|
24
25
|
"license": "GPL-3.0-or-later",
|
|
@@ -72,6 +72,12 @@ function injectScripts(jtffci, env_mission) {
|
|
|
72
72
|
warning: 'inject_A2A must be yes/y/o/oui or no/n/non',
|
|
73
73
|
default: 'n'
|
|
74
74
|
},
|
|
75
|
+
{
|
|
76
|
+
name: 'inject_Logistics',
|
|
77
|
+
validator: /^y\b|n\b|o\b|yes\b|no\b|non\b|oui\b/i,
|
|
78
|
+
warning: 'inject_Logistics must be yes/y/o/oui or no/n/non',
|
|
79
|
+
default: 'n'
|
|
80
|
+
},
|
|
75
81
|
{
|
|
76
82
|
name: 'inject_A2G',
|
|
77
83
|
validator: /^y\b|n\b|o\b|yes\b|no\b|non\b|oui\b/i,
|
|
@@ -105,6 +111,7 @@ function injectScripts(jtffci, env_mission) {
|
|
|
105
111
|
console.log(' inject_awacs scripts: ' + (/^y\b|o\b|yes\b|oui\b/i).test(prompt_result.inject_awacs));
|
|
106
112
|
console.log(' inject_atis scripts: ' + (/^y\b|o\b|yes\b|oui\b/i).test(prompt_result.inject_atis));
|
|
107
113
|
console.log(' inject_A2A scripts: ' + (/^y\b|o\b|yes\b|oui\b/i).test(prompt_result.inject_A2A));
|
|
114
|
+
console.log(' inject_Logistics scripts: ' + (/^y\b|o\b|yes\b|oui\b/i).test(prompt_result.inject_Logistics));
|
|
108
115
|
console.log(' inject_A2G scripts: ' + (/^y\b|o\b|yes\b|oui\b/i).test(prompt_result.inject_A2G));
|
|
109
116
|
console.log(' inject_mission specific scripts: ' + (/^y\b|o\b|yes\b|oui\b/i).test(prompt_result.inject_mission));
|
|
110
117
|
console.log(' inject_radio_presets scripts: ' + (/^y\b|o\b|yes\b|oui\b/i).test(prompt_result.inject_radio_presets));
|
|
@@ -433,6 +440,52 @@ function injectScripts(jtffci, env_mission) {
|
|
|
433
440
|
missionObject['trigrules'] = tuple.trObject;
|
|
434
441
|
mapResourceObject = tuple.mrObject;
|
|
435
442
|
}
|
|
443
|
+
if ((/^y\b|o\b|yes\b|oui\b/i).test(prompt_result.inject_Logistics)) {
|
|
444
|
+
// injection des fichiers son CTLD
|
|
445
|
+
const zip = await jtffci.mizOpen([
|
|
446
|
+
jtffci.config.general.missionFolder,
|
|
447
|
+
"/",
|
|
448
|
+
path.parse(env_mission).name,
|
|
449
|
+
"/",
|
|
450
|
+
path.basename(env_mission)
|
|
451
|
+
].join(""));
|
|
452
|
+
const rangeSoundFolder = zip.remove('CTLD').folder('CTLD');
|
|
453
|
+
await jtffci.addFilesToZip(rangeSoundFolder, 'resources/sounds/CTLD', fs.readdirSync('resources/sounds/CTLD'));
|
|
454
|
+
const inputZip = await zip.generateAsync({
|
|
455
|
+
type: 'nodebuffer',
|
|
456
|
+
streamFiles: true,
|
|
457
|
+
compression: "DEFLATE",
|
|
458
|
+
compressionOptions: {
|
|
459
|
+
level: 9
|
|
460
|
+
}
|
|
461
|
+
});
|
|
462
|
+
fs.writeFileSync([
|
|
463
|
+
jtffci.config.general.missionFolder,
|
|
464
|
+
"/",
|
|
465
|
+
path.parse(env_mission).name,
|
|
466
|
+
"/",
|
|
467
|
+
path.basename(env_mission)
|
|
468
|
+
].join(""),
|
|
469
|
+
inputZip);
|
|
470
|
+
settingsArray.push(
|
|
471
|
+
{
|
|
472
|
+
file: "settings-logistics.lua",
|
|
473
|
+
objectName: "CTLDConfig"
|
|
474
|
+
},
|
|
475
|
+
);
|
|
476
|
+
tuple = jtffci.injectScripts(
|
|
477
|
+
missionObject['trig'],
|
|
478
|
+
missionObject['trigrules'],
|
|
479
|
+
mapResourceObject,
|
|
480
|
+
'Logistics',
|
|
481
|
+
['180-logistics.lua'],
|
|
482
|
+
28,
|
|
483
|
+
'0xff0000ff'
|
|
484
|
+
);
|
|
485
|
+
missionObject['trig'] = tuple.tObject;
|
|
486
|
+
missionObject['trigrules'] = tuple.trObject;
|
|
487
|
+
mapResourceObject = tuple.mrObject;
|
|
488
|
+
}
|
|
436
489
|
if ((/^y\b|o\b|yes\b|oui\b/i).test(prompt_result.inject_A2G)) {
|
|
437
490
|
// injection des fichiers son Range
|
|
438
491
|
// const zip = await jtffci.mizOpen([
|