@jtff/miztemplate-lib 2.1.7 → 2.2.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/index.js +2 -1
- package/lib/jtff-lib-ci.js +177 -173
- package/package.json +4 -4
- package/scripts/build.js +1 -1
- package/scripts/inject-scripts.js +38 -38
- package/scripts/template-update.js +1 -1
package/index.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
const MizTemplateCI = require("./lib/jtff-lib-ci.js");
|
|
1
|
+
const {MizTemplateCI,MizLib} = require("./lib/jtff-lib-ci.js");
|
|
2
2
|
const build = require("./scripts/build.js");
|
|
3
3
|
const clean = require("./scripts/clean.js");
|
|
4
4
|
const ftpupload = require("./scripts/ftpupload.js");
|
|
@@ -12,6 +12,7 @@ const templateUpdate = require("./scripts/template-update.js");
|
|
|
12
12
|
|
|
13
13
|
module.exports = {
|
|
14
14
|
MizTemplateCI: MizTemplateCI,
|
|
15
|
+
MizLib: MizLib,
|
|
15
16
|
build:build,
|
|
16
17
|
clean:clean,
|
|
17
18
|
ftpupload:ftpupload,
|
package/lib/jtff-lib-ci.js
CHANGED
|
@@ -10,51 +10,9 @@ const { format, parse } = require("lua-json");
|
|
|
10
10
|
const ftpClient = require('ftp');
|
|
11
11
|
|
|
12
12
|
class MizTemplateCI{
|
|
13
|
-
|
|
14
13
|
constructor(config) {
|
|
15
14
|
this.config = config
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
injectScripts(tObject, trObject, mrObject, strTitle, scriptFilesArray, timingInSeconds, hexColor) {
|
|
19
|
-
let nextIndex = Object.keys(trObject).length + 1;
|
|
20
|
-
if (nextIndex === 1) {
|
|
21
|
-
tObject['actions'] = {};
|
|
22
|
-
tObject['func'] = {};
|
|
23
|
-
tObject['conditions'] = {};
|
|
24
|
-
tObject['flag'] = {};
|
|
25
|
-
trObject = {};
|
|
26
|
-
}
|
|
27
|
-
let actionSentence = "";
|
|
28
|
-
let actionsObject = {};
|
|
29
|
-
for (const [index, scriptFile] of scriptFilesArray.entries()) {
|
|
30
|
-
actionSentence += "a_do_script_file(getValueResourceByKey(\"" + scriptFile + "\")); "
|
|
31
|
-
actionsObject[index + 1] = {
|
|
32
|
-
file: scriptFile,
|
|
33
|
-
predicate: 'a_do_script_file',
|
|
34
|
-
};
|
|
35
|
-
mrObject[scriptFile] = scriptFile;
|
|
36
|
-
}
|
|
37
|
-
actionSentence += "mission.trig.func[" + nextIndex + "]=nil;"
|
|
38
|
-
tObject['actions'][nextIndex] = actionSentence;
|
|
39
|
-
tObject['func'][nextIndex] = "if mission.trig.conditions[" + nextIndex + "]() then mission.trig.actions[" + nextIndex + "]() end";
|
|
40
|
-
tObject['conditions'][nextIndex] = "return(c_time_after(" + timingInSeconds + ") )";
|
|
41
|
-
tObject['flag'][nextIndex] = true;
|
|
42
|
-
trObject[nextIndex] = {
|
|
43
|
-
rules: {
|
|
44
|
-
1: {
|
|
45
|
-
coalitionlist: 'red',
|
|
46
|
-
seconds: timingInSeconds,
|
|
47
|
-
predicate: 'c_time_after',
|
|
48
|
-
zone: ''
|
|
49
|
-
}
|
|
50
|
-
},
|
|
51
|
-
eventlist: '',
|
|
52
|
-
comment: strTitle,
|
|
53
|
-
actions: actionsObject,
|
|
54
|
-
predicate: 'triggerOnce',
|
|
55
|
-
colorItem: hexColor
|
|
56
|
-
};
|
|
57
|
-
return { tObject: tObject, trObject: trObject, mrObject: mrObject };
|
|
15
|
+
this.mizlib = new MizLib()
|
|
58
16
|
}
|
|
59
17
|
|
|
60
18
|
getVersion() {
|
|
@@ -104,6 +62,181 @@ class MizTemplateCI{
|
|
|
104
62
|
return newVersionObject;
|
|
105
63
|
}
|
|
106
64
|
|
|
65
|
+
getDestinationMizFilePaths() {
|
|
66
|
+
const returnArray = this.config.missionTemplates.map(missionTemplate => {
|
|
67
|
+
return this.config.general.missionFolder + '/'
|
|
68
|
+
+ this.config.general.missionPrefix + '_'
|
|
69
|
+
+ missionTemplate.theatre + '_'
|
|
70
|
+
+ this.config.general.missionSuffix
|
|
71
|
+
+ '_' + this.config.general.missionVersion + '.miz'
|
|
72
|
+
});
|
|
73
|
+
return returnArray;
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
getGeneratedMizFilePaths() {
|
|
77
|
+
return fs.readdirSync(this.config.general.missionFolder + '/')
|
|
78
|
+
.filter(file => file.endsWith((".miz")))
|
|
79
|
+
.map(mizFile => {
|
|
80
|
+
return this.config.general.missionFolder + '/' + mizFile;
|
|
81
|
+
});
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
uploadMizFiles(credentials) {
|
|
85
|
+
const destFtpServer = new ftpClient();
|
|
86
|
+
const configObject = this.config;
|
|
87
|
+
|
|
88
|
+
destFtpServer.connect({
|
|
89
|
+
host: credentials.host,
|
|
90
|
+
secure: false,
|
|
91
|
+
user: credentials.user,
|
|
92
|
+
password: credentials.password
|
|
93
|
+
});
|
|
94
|
+
destFtpServer.on('ready', function () {
|
|
95
|
+
destFtpServer.cwd(credentials.folder, function (err, curDir) {
|
|
96
|
+
if (err) throw err;
|
|
97
|
+
Promise.all(
|
|
98
|
+
fs.readdirSync(configObject.general.missionFolder)
|
|
99
|
+
.filter(file => file.endsWith('.pub.json'))
|
|
100
|
+
.map(file => {
|
|
101
|
+
return new Promise((resolve, reject) => {
|
|
102
|
+
// console.log(configObject.general.missionFolder+'/'+file);
|
|
103
|
+
fs.readFile(configObject.general.missionFolder + '/' + file, function (err, data) {
|
|
104
|
+
if (err) reject(err);
|
|
105
|
+
data = JSON.parse(data.toString());
|
|
106
|
+
// console.log(data);
|
|
107
|
+
destFtpServer.put(data.mizFiles, path.basename(data.mizFiles), false, function (err) {
|
|
108
|
+
if (err) reject(err);
|
|
109
|
+
console.log('file ' + path.basename(data.mizFiles) + ' uploaded on DCS Server');
|
|
110
|
+
resolve(path.basename(data.mizFiles));
|
|
111
|
+
});
|
|
112
|
+
});
|
|
113
|
+
})
|
|
114
|
+
})
|
|
115
|
+
).then(() => {
|
|
116
|
+
destFtpServer.end();
|
|
117
|
+
});
|
|
118
|
+
});
|
|
119
|
+
});
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
publishMizFiles(credentials) {
|
|
123
|
+
const configObject = this.config;
|
|
124
|
+
const jwtClient = new google.auth.JWT(
|
|
125
|
+
credentials.client_email,
|
|
126
|
+
null,
|
|
127
|
+
credentials.private_key,
|
|
128
|
+
configObject.google.scopes
|
|
129
|
+
);
|
|
130
|
+
jwtClient.authorize(function (err, tokens) {
|
|
131
|
+
if (err) {
|
|
132
|
+
console.log(err);
|
|
133
|
+
throw err;
|
|
134
|
+
} else {
|
|
135
|
+
console.log("Successfully connected!");
|
|
136
|
+
const drive = google.drive({ version: 'v3', jwtClient });
|
|
137
|
+
fs.readdirSync(configObject.general.missionFolder)
|
|
138
|
+
.filter(file => file.endsWith('.pub.json'))
|
|
139
|
+
.map(file => {
|
|
140
|
+
// console.log(configObject.general.missionFolder+'/'+file);
|
|
141
|
+
fs.readFile(configObject.general.missionFolder + '/' + file, function (err, data) {
|
|
142
|
+
if (err) throw err;
|
|
143
|
+
data = JSON.parse(data.toString());
|
|
144
|
+
// console.log(data);
|
|
145
|
+
drive.files.list({
|
|
146
|
+
q: `'${data.gdriveFolder}' in parents and trashed = false and name = '${path.basename(data.mizFiles)}'`,
|
|
147
|
+
auth: jwtClient
|
|
148
|
+
}).then(rsp => {
|
|
149
|
+
// console.log(rsp.data.files);
|
|
150
|
+
// console.log(path.basename(data.mizFiles));
|
|
151
|
+
const fileMetadata = {
|
|
152
|
+
'name': path.basename(data.mizFiles),
|
|
153
|
+
parents: [data.gdriveFolder]
|
|
154
|
+
};
|
|
155
|
+
const media = {
|
|
156
|
+
mimeType: 'application/zip',
|
|
157
|
+
body: fs.createReadStream(data.mizFiles)
|
|
158
|
+
};
|
|
159
|
+
if (rsp.data.files.length > 0) {
|
|
160
|
+
drive.files.update({
|
|
161
|
+
fileId: rsp.data.files[0].id,
|
|
162
|
+
auth: jwtClient,
|
|
163
|
+
media: media
|
|
164
|
+
}, (err, file) => {
|
|
165
|
+
if (err) {
|
|
166
|
+
// Handle error
|
|
167
|
+
console.error(err);
|
|
168
|
+
} else {
|
|
169
|
+
console.log('File updated Id: ', file.id);
|
|
170
|
+
}
|
|
171
|
+
});
|
|
172
|
+
} else {
|
|
173
|
+
drive.files.create({
|
|
174
|
+
resource: fileMetadata,
|
|
175
|
+
media: media,
|
|
176
|
+
auth: jwtClient,
|
|
177
|
+
fields: 'id'
|
|
178
|
+
}, (err, file) => {
|
|
179
|
+
if (err) {
|
|
180
|
+
// Handle error
|
|
181
|
+
console.error(err);
|
|
182
|
+
} else {
|
|
183
|
+
console.log('File created Id: ', file.id);
|
|
184
|
+
}
|
|
185
|
+
});
|
|
186
|
+
}
|
|
187
|
+
});
|
|
188
|
+
});
|
|
189
|
+
});
|
|
190
|
+
}
|
|
191
|
+
});
|
|
192
|
+
}
|
|
193
|
+
}
|
|
194
|
+
|
|
195
|
+
class MizLib{
|
|
196
|
+
constructor() {
|
|
197
|
+
}
|
|
198
|
+
injectScripts(tObject, trObject, mrObject, strTitle, scriptFilesArray, timingInSeconds, hexColor) {
|
|
199
|
+
let nextIndex = Object.keys(trObject).length + 1;
|
|
200
|
+
if (nextIndex === 1) {
|
|
201
|
+
tObject['actions'] = {};
|
|
202
|
+
tObject['func'] = {};
|
|
203
|
+
tObject['conditions'] = {};
|
|
204
|
+
tObject['flag'] = {};
|
|
205
|
+
trObject = {};
|
|
206
|
+
}
|
|
207
|
+
let actionSentence = "";
|
|
208
|
+
let actionsObject = {};
|
|
209
|
+
for (const [index, scriptFile] of scriptFilesArray.entries()) {
|
|
210
|
+
actionSentence += "a_do_script_file(getValueResourceByKey(\"" + scriptFile + "\")); "
|
|
211
|
+
actionsObject[index + 1] = {
|
|
212
|
+
file: scriptFile,
|
|
213
|
+
predicate: 'a_do_script_file',
|
|
214
|
+
};
|
|
215
|
+
mrObject[scriptFile] = scriptFile;
|
|
216
|
+
}
|
|
217
|
+
actionSentence += "mission.trig.func[" + nextIndex + "]=nil;"
|
|
218
|
+
tObject['actions'][nextIndex] = actionSentence;
|
|
219
|
+
tObject['func'][nextIndex] = "if mission.trig.conditions[" + nextIndex + "]() then mission.trig.actions[" + nextIndex + "]() end";
|
|
220
|
+
tObject['conditions'][nextIndex] = "return(c_time_after(" + timingInSeconds + ") )";
|
|
221
|
+
tObject['flag'][nextIndex] = true;
|
|
222
|
+
trObject[nextIndex] = {
|
|
223
|
+
rules: {
|
|
224
|
+
1: {
|
|
225
|
+
coalitionlist: 'red',
|
|
226
|
+
seconds: timingInSeconds,
|
|
227
|
+
predicate: 'c_time_after',
|
|
228
|
+
zone: ''
|
|
229
|
+
}
|
|
230
|
+
},
|
|
231
|
+
eventlist: '',
|
|
232
|
+
comment: strTitle,
|
|
233
|
+
actions: actionsObject,
|
|
234
|
+
predicate: 'triggerOnce',
|
|
235
|
+
colorItem: hexColor
|
|
236
|
+
};
|
|
237
|
+
return { tObject: tObject, trObject: trObject, mrObject: mrObject };
|
|
238
|
+
}
|
|
239
|
+
|
|
107
240
|
async mizOpen(mizPath) {
|
|
108
241
|
var MizFile = new jszip();
|
|
109
242
|
const mizData = fs.readFileSync(mizPath);
|
|
@@ -360,135 +493,6 @@ class MizTemplateCI{
|
|
|
360
493
|
let luaTable = 'return { \n' + await this.mizOpenMapResource(await this.mizOpen(MizPath)) + ' }';
|
|
361
494
|
return parse(luaTable).mapResource;
|
|
362
495
|
}
|
|
363
|
-
|
|
364
|
-
getDestinationMizFilePaths() {
|
|
365
|
-
const returnArray = this.config.missionTemplates.map(missionTemplate => {
|
|
366
|
-
return this.config.general.missionFolder + '/'
|
|
367
|
-
+ this.config.general.missionPrefix + '_'
|
|
368
|
-
+ missionTemplate.theatre + '_'
|
|
369
|
-
+ this.config.general.missionSuffix
|
|
370
|
-
+ '_' + this.config.general.missionVersion + '.miz'
|
|
371
|
-
});
|
|
372
|
-
return returnArray;
|
|
373
|
-
}
|
|
374
|
-
|
|
375
|
-
getGeneratedMizFilePaths() {
|
|
376
|
-
return fs.readdirSync(this.config.general.missionFolder + '/')
|
|
377
|
-
.filter(file => file.endsWith((".miz")))
|
|
378
|
-
.map(mizFile => {
|
|
379
|
-
return this.config.general.missionFolder + '/' + mizFile;
|
|
380
|
-
});
|
|
381
|
-
}
|
|
382
|
-
|
|
383
|
-
uploadMizFiles(credentials) {
|
|
384
|
-
const destFtpServer = new ftpClient();
|
|
385
|
-
const configObject = this.config;
|
|
386
|
-
|
|
387
|
-
destFtpServer.connect({
|
|
388
|
-
host: credentials.host,
|
|
389
|
-
secure: false,
|
|
390
|
-
user: credentials.user,
|
|
391
|
-
password: credentials.password
|
|
392
|
-
});
|
|
393
|
-
destFtpServer.on('ready', function () {
|
|
394
|
-
destFtpServer.cwd(credentials.folder, function (err, curDir) {
|
|
395
|
-
if (err) throw err;
|
|
396
|
-
Promise.all(
|
|
397
|
-
fs.readdirSync(configObject.general.missionFolder)
|
|
398
|
-
.filter(file => file.endsWith('.pub.json'))
|
|
399
|
-
.map(file => {
|
|
400
|
-
return new Promise((resolve, reject) => {
|
|
401
|
-
// console.log(configObject.general.missionFolder+'/'+file);
|
|
402
|
-
fs.readFile(configObject.general.missionFolder + '/' + file, function (err, data) {
|
|
403
|
-
if (err) reject(err);
|
|
404
|
-
data = JSON.parse(data.toString());
|
|
405
|
-
// console.log(data);
|
|
406
|
-
destFtpServer.put(data.mizFiles, path.basename(data.mizFiles), false, function (err) {
|
|
407
|
-
if (err) reject(err);
|
|
408
|
-
console.log('file ' + path.basename(data.mizFiles) + ' uploaded on DCS Server');
|
|
409
|
-
resolve(path.basename(data.mizFiles));
|
|
410
|
-
});
|
|
411
|
-
});
|
|
412
|
-
})
|
|
413
|
-
})
|
|
414
|
-
).then(() => {
|
|
415
|
-
destFtpServer.end();
|
|
416
|
-
});
|
|
417
|
-
});
|
|
418
|
-
});
|
|
419
|
-
}
|
|
420
|
-
|
|
421
|
-
publishMizFiles(credentials) {
|
|
422
|
-
const configObject = this.config;
|
|
423
|
-
const jwtClient = new google.auth.JWT(
|
|
424
|
-
credentials.client_email,
|
|
425
|
-
null,
|
|
426
|
-
credentials.private_key,
|
|
427
|
-
configObject.google.scopes
|
|
428
|
-
);
|
|
429
|
-
jwtClient.authorize(function (err, tokens) {
|
|
430
|
-
if (err) {
|
|
431
|
-
console.log(err);
|
|
432
|
-
throw err;
|
|
433
|
-
} else {
|
|
434
|
-
console.log("Successfully connected!");
|
|
435
|
-
const drive = google.drive({ version: 'v3', jwtClient });
|
|
436
|
-
fs.readdirSync(configObject.general.missionFolder)
|
|
437
|
-
.filter(file => file.endsWith('.pub.json'))
|
|
438
|
-
.map(file => {
|
|
439
|
-
// console.log(configObject.general.missionFolder+'/'+file);
|
|
440
|
-
fs.readFile(configObject.general.missionFolder + '/' + file, function (err, data) {
|
|
441
|
-
if (err) throw err;
|
|
442
|
-
data = JSON.parse(data.toString());
|
|
443
|
-
// console.log(data);
|
|
444
|
-
drive.files.list({
|
|
445
|
-
q: `'${data.gdriveFolder}' in parents and trashed = false and name = '${path.basename(data.mizFiles)}'`,
|
|
446
|
-
auth: jwtClient
|
|
447
|
-
}).then(rsp => {
|
|
448
|
-
// console.log(rsp.data.files);
|
|
449
|
-
// console.log(path.basename(data.mizFiles));
|
|
450
|
-
const fileMetadata = {
|
|
451
|
-
'name': path.basename(data.mizFiles),
|
|
452
|
-
parents: [data.gdriveFolder]
|
|
453
|
-
};
|
|
454
|
-
const media = {
|
|
455
|
-
mimeType: 'application/zip',
|
|
456
|
-
body: fs.createReadStream(data.mizFiles)
|
|
457
|
-
};
|
|
458
|
-
if (rsp.data.files.length > 0) {
|
|
459
|
-
drive.files.update({
|
|
460
|
-
fileId: rsp.data.files[0].id,
|
|
461
|
-
auth: jwtClient,
|
|
462
|
-
media: media
|
|
463
|
-
}, (err, file) => {
|
|
464
|
-
if (err) {
|
|
465
|
-
// Handle error
|
|
466
|
-
console.error(err);
|
|
467
|
-
} else {
|
|
468
|
-
console.log('File updated Id: ', file.id);
|
|
469
|
-
}
|
|
470
|
-
});
|
|
471
|
-
} else {
|
|
472
|
-
drive.files.create({
|
|
473
|
-
resource: fileMetadata,
|
|
474
|
-
media: media,
|
|
475
|
-
auth: jwtClient,
|
|
476
|
-
fields: 'id'
|
|
477
|
-
}, (err, file) => {
|
|
478
|
-
if (err) {
|
|
479
|
-
// Handle error
|
|
480
|
-
console.error(err);
|
|
481
|
-
} else {
|
|
482
|
-
console.log('File created Id: ', file.id);
|
|
483
|
-
}
|
|
484
|
-
});
|
|
485
|
-
}
|
|
486
|
-
});
|
|
487
|
-
});
|
|
488
|
-
});
|
|
489
|
-
}
|
|
490
|
-
});
|
|
491
|
-
}
|
|
492
496
|
}
|
|
493
497
|
|
|
494
|
-
module.exports = MizTemplateCI;
|
|
498
|
+
module.exports = {MizTemplateCI, MizLib};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@jtff/miztemplate-lib",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.2.0",
|
|
4
4
|
"description": "JTFF mission template library",
|
|
5
5
|
"main": "index.js",
|
|
6
6
|
"files": [
|
|
@@ -31,10 +31,10 @@
|
|
|
31
31
|
"fs": "^0.0.1-security",
|
|
32
32
|
"ftp": "^0.3.10",
|
|
33
33
|
"googleapis": "^92.0.0",
|
|
34
|
-
"jszip": "^3.
|
|
35
|
-
"lua-json": "^1.0.
|
|
34
|
+
"jszip": "^3.10.1",
|
|
35
|
+
"lua-json": "^1.0.1",
|
|
36
36
|
"path": "^0.12.7",
|
|
37
37
|
"prompt": "^1.3.0",
|
|
38
|
-
"util": "^0.12.
|
|
38
|
+
"util": "^0.12.5"
|
|
39
39
|
}
|
|
40
40
|
}
|
package/scripts/build.js
CHANGED
|
@@ -3,7 +3,7 @@ const fs = require("fs");
|
|
|
3
3
|
function build(jtffci) {
|
|
4
4
|
fs.mkdirSync(jtffci.config.general.missionFolder, { recursive: true });
|
|
5
5
|
jtffci.config.missionTemplates.forEach(async missionTemplate => {
|
|
6
|
-
await jtffci.mizUpdate([
|
|
6
|
+
await jtffci.mizlib.mizUpdate([
|
|
7
7
|
missionTemplate.prefix,
|
|
8
8
|
'_',
|
|
9
9
|
missionTemplate.theatre,
|
|
@@ -116,15 +116,15 @@ function injectScripts(jtffci, env_mission) {
|
|
|
116
116
|
console.log(' inject_mission specific scripts: ' + (/^y\b|o\b|yes\b|oui\b/i).test(prompt_result.inject_mission));
|
|
117
117
|
console.log(' inject_radio_presets scripts: ' + (/^y\b|o\b|yes\b|oui\b/i).test(prompt_result.inject_radio_presets));
|
|
118
118
|
|
|
119
|
-
const zip = await jtffci.mizOpen(env_mission);
|
|
120
|
-
jtffci.mizUpdateSrcLuaFiles(zip);
|
|
121
|
-
jtffci.mizUpdateLibLuaFiles(zip);
|
|
119
|
+
const zip = await jtffci.mizlib.mizOpen(env_mission);
|
|
120
|
+
jtffci.mizlib.mizUpdateSrcLuaFiles(zip);
|
|
121
|
+
jtffci.mizlib.mizUpdateLibLuaFiles(zip);
|
|
122
122
|
// injection des fichiers son Generaux
|
|
123
123
|
// const generalSoundFolder = zip.remove('General').folder('General');
|
|
124
|
-
// await jtffci.addFilesToZip(generalSoundFolder, 'resources/sounds/General', fs.readdirSync('resources/sounds/General'));
|
|
124
|
+
// await jtffci.mizlib.addFilesToZip(generalSoundFolder, 'resources/sounds/General', fs.readdirSync('resources/sounds/General'));
|
|
125
125
|
// injection des fichiers son Misc
|
|
126
126
|
const generalSoundFolder = zip.remove('Misc').folder('Misc');
|
|
127
|
-
await jtffci.addFilesToZip(generalSoundFolder, 'resources/sounds/Misc', fs.readdirSync('resources/sounds/Misc'));
|
|
127
|
+
await jtffci.mizlib.addFilesToZip(generalSoundFolder, 'resources/sounds/Misc', fs.readdirSync('resources/sounds/Misc'));
|
|
128
128
|
|
|
129
129
|
const inputZip = await zip.generateAsync({
|
|
130
130
|
type: 'nodebuffer',
|
|
@@ -144,7 +144,7 @@ function injectScripts(jtffci, env_mission) {
|
|
|
144
144
|
inputZip);
|
|
145
145
|
|
|
146
146
|
|
|
147
|
-
const missionObject = await jtffci.getMissionObjectFromMiz(
|
|
147
|
+
const missionObject = await jtffci.mizlib.getMissionObjectFromMiz(
|
|
148
148
|
[
|
|
149
149
|
jtffci.config.general.missionFolder,
|
|
150
150
|
"/",
|
|
@@ -153,7 +153,7 @@ function injectScripts(jtffci, env_mission) {
|
|
|
153
153
|
path.basename(env_mission)
|
|
154
154
|
].join("")
|
|
155
155
|
);
|
|
156
|
-
let mapResourceObject = await jtffci.getMapResourceObjectFromMiz(
|
|
156
|
+
let mapResourceObject = await jtffci.mizlib.getMapResourceObjectFromMiz(
|
|
157
157
|
[
|
|
158
158
|
jtffci.config.general.missionFolder,
|
|
159
159
|
"/",
|
|
@@ -168,7 +168,7 @@ function injectScripts(jtffci, env_mission) {
|
|
|
168
168
|
}
|
|
169
169
|
}
|
|
170
170
|
// injection SplashDamage
|
|
171
|
-
let tuple = jtffci.injectScripts(
|
|
171
|
+
let tuple = jtffci.mizlib.injectScripts(
|
|
172
172
|
missionObject['trig'],
|
|
173
173
|
missionObject['trigrules'],
|
|
174
174
|
mapResourceObject,
|
|
@@ -181,7 +181,7 @@ function injectScripts(jtffci, env_mission) {
|
|
|
181
181
|
missionObject['trigrules'] = tuple.trObject;
|
|
182
182
|
mapResourceObject = tuple.mrObject;
|
|
183
183
|
// injection Moose
|
|
184
|
-
tuple = jtffci.injectScripts(
|
|
184
|
+
tuple = jtffci.mizlib.injectScripts(
|
|
185
185
|
missionObject['trig'],
|
|
186
186
|
missionObject['trigrules'],
|
|
187
187
|
mapResourceObject,
|
|
@@ -194,7 +194,7 @@ function injectScripts(jtffci, env_mission) {
|
|
|
194
194
|
missionObject['trigrules'] = tuple.trObject;
|
|
195
195
|
mapResourceObject = tuple.mrObject;
|
|
196
196
|
// injection Mist
|
|
197
|
-
tuple = jtffci.injectScripts(
|
|
197
|
+
tuple = jtffci.mizlib.injectScripts(
|
|
198
198
|
missionObject['trig'],
|
|
199
199
|
missionObject['trigrules'],
|
|
200
200
|
mapResourceObject,
|
|
@@ -207,7 +207,7 @@ function injectScripts(jtffci, env_mission) {
|
|
|
207
207
|
missionObject['trigrules'] = tuple.trObject;
|
|
208
208
|
mapResourceObject = tuple.mrObject;
|
|
209
209
|
// injection Skynet
|
|
210
|
-
tuple = jtffci.injectScripts(
|
|
210
|
+
tuple = jtffci.mizlib.injectScripts(
|
|
211
211
|
missionObject['trig'],
|
|
212
212
|
missionObject['trigrules'],
|
|
213
213
|
mapResourceObject,
|
|
@@ -220,7 +220,7 @@ function injectScripts(jtffci, env_mission) {
|
|
|
220
220
|
missionObject['trigrules'] = tuple.trObject;
|
|
221
221
|
mapResourceObject = tuple.mrObject;
|
|
222
222
|
// injection Librairies JTFF
|
|
223
|
-
tuple = jtffci.injectScripts(
|
|
223
|
+
tuple = jtffci.mizlib.injectScripts(
|
|
224
224
|
missionObject['trig'],
|
|
225
225
|
missionObject['trigrules'],
|
|
226
226
|
mapResourceObject,
|
|
@@ -240,7 +240,7 @@ function injectScripts(jtffci, env_mission) {
|
|
|
240
240
|
},
|
|
241
241
|
);
|
|
242
242
|
// injection de la gestion des Set_Clients
|
|
243
|
-
tuple = jtffci.injectScripts(
|
|
243
|
+
tuple = jtffci.mizlib.injectScripts(
|
|
244
244
|
missionObject['trig'],
|
|
245
245
|
missionObject['trigrules'],
|
|
246
246
|
mapResourceObject,
|
|
@@ -264,7 +264,7 @@ function injectScripts(jtffci, env_mission) {
|
|
|
264
264
|
objectName: "OnDemandTankersConfig"
|
|
265
265
|
},
|
|
266
266
|
);
|
|
267
|
-
tuple = jtffci.injectScripts(
|
|
267
|
+
tuple = jtffci.mizlib.injectScripts(
|
|
268
268
|
missionObject['trig'],
|
|
269
269
|
missionObject['trigrules'],
|
|
270
270
|
mapResourceObject,
|
|
@@ -279,7 +279,7 @@ function injectScripts(jtffci, env_mission) {
|
|
|
279
279
|
}
|
|
280
280
|
if ((/^y\b|o\b|yes\b|oui\b/i).test(prompt_result.inject_airboss)) {
|
|
281
281
|
// injection des fichiers son Airboss
|
|
282
|
-
const zip = await jtffci.mizOpen([
|
|
282
|
+
const zip = await jtffci.mizlib.mizOpen([
|
|
283
283
|
jtffci.config.general.missionFolder,
|
|
284
284
|
"/",
|
|
285
285
|
path.parse(env_mission).name,
|
|
@@ -287,7 +287,7 @@ function injectScripts(jtffci, env_mission) {
|
|
|
287
287
|
path.basename(env_mission)
|
|
288
288
|
].join(""));
|
|
289
289
|
const airbossSoundFolder = zip.remove('AIRBOSS').folder('AIRBOSS');
|
|
290
|
-
await jtffci.addFilesToZip(airbossSoundFolder, 'resources/sounds/AIRBOSS', fs.readdirSync('resources/sounds/AIRBOSS'));
|
|
290
|
+
await jtffci.mizlib.addFilesToZip(airbossSoundFolder, 'resources/sounds/AIRBOSS', fs.readdirSync('resources/sounds/AIRBOSS'));
|
|
291
291
|
const inputZip = await zip.generateAsync({
|
|
292
292
|
type: 'nodebuffer',
|
|
293
293
|
streamFiles: true,
|
|
@@ -314,7 +314,7 @@ function injectScripts(jtffci, env_mission) {
|
|
|
314
314
|
objectName: "PedrosConfig"
|
|
315
315
|
},
|
|
316
316
|
);
|
|
317
|
-
tuple = jtffci.injectScripts(
|
|
317
|
+
tuple = jtffci.mizlib.injectScripts(
|
|
318
318
|
missionObject['trig'],
|
|
319
319
|
missionObject['trigrules'],
|
|
320
320
|
mapResourceObject,
|
|
@@ -334,7 +334,7 @@ function injectScripts(jtffci, env_mission) {
|
|
|
334
334
|
objectName: "BeaconsConfig"
|
|
335
335
|
},
|
|
336
336
|
);
|
|
337
|
-
tuple = jtffci.injectScripts(
|
|
337
|
+
tuple = jtffci.mizlib.injectScripts(
|
|
338
338
|
missionObject['trig'],
|
|
339
339
|
missionObject['trigrules'],
|
|
340
340
|
mapResourceObject,
|
|
@@ -358,7 +358,7 @@ function injectScripts(jtffci, env_mission) {
|
|
|
358
358
|
objectName: "AwacsOnDemandConfig"
|
|
359
359
|
},
|
|
360
360
|
);
|
|
361
|
-
tuple = jtffci.injectScripts(
|
|
361
|
+
tuple = jtffci.mizlib.injectScripts(
|
|
362
362
|
missionObject['trig'],
|
|
363
363
|
missionObject['trigrules'],
|
|
364
364
|
mapResourceObject,
|
|
@@ -373,7 +373,7 @@ function injectScripts(jtffci, env_mission) {
|
|
|
373
373
|
}
|
|
374
374
|
if ((/^y\b|o\b|yes\b|oui\b/i).test(prompt_result.inject_atis)) {
|
|
375
375
|
// injection des fichiers son ATIS
|
|
376
|
-
// const zip = await jtffci.mizOpen([
|
|
376
|
+
// const zip = await jtffci.mizlib.mizOpen([
|
|
377
377
|
// jtffci.config.general.missionFolder,
|
|
378
378
|
// "/",
|
|
379
379
|
// path.parse(env_mission).name,
|
|
@@ -381,7 +381,7 @@ function injectScripts(jtffci, env_mission) {
|
|
|
381
381
|
// path.basename(env_mission)
|
|
382
382
|
// ].join(""));
|
|
383
383
|
// const atisSoundFolder = zip.remove('ATIS').folder('ATIS');
|
|
384
|
-
// await jtffci.addFilesToZip(atisSoundFolder, 'resources/sounds/ATIS', fs.readdirSync('resources/sounds/ATIS'));
|
|
384
|
+
// await jtffci.mizlib.addFilesToZip(atisSoundFolder, 'resources/sounds/ATIS', fs.readdirSync('resources/sounds/ATIS'));
|
|
385
385
|
// const inputZip = await zip.generateAsync({
|
|
386
386
|
// type: 'nodebuffer',
|
|
387
387
|
// streamFiles: true,
|
|
@@ -404,7 +404,7 @@ function injectScripts(jtffci, env_mission) {
|
|
|
404
404
|
objectName: "AtisConfig"
|
|
405
405
|
},
|
|
406
406
|
);
|
|
407
|
-
tuple = jtffci.injectScripts(
|
|
407
|
+
tuple = jtffci.mizlib.injectScripts(
|
|
408
408
|
missionObject['trig'],
|
|
409
409
|
missionObject['trigrules'],
|
|
410
410
|
mapResourceObject,
|
|
@@ -440,7 +440,7 @@ function injectScripts(jtffci, env_mission) {
|
|
|
440
440
|
objectName: "InterceptConfig"
|
|
441
441
|
},
|
|
442
442
|
);
|
|
443
|
-
tuple = jtffci.injectScripts(
|
|
443
|
+
tuple = jtffci.mizlib.injectScripts(
|
|
444
444
|
missionObject['trig'],
|
|
445
445
|
missionObject['trigrules'],
|
|
446
446
|
mapResourceObject,
|
|
@@ -455,7 +455,7 @@ function injectScripts(jtffci, env_mission) {
|
|
|
455
455
|
}
|
|
456
456
|
if ((/^y\b|o\b|yes\b|oui\b/i).test(prompt_result.inject_Logistics)) {
|
|
457
457
|
// injection des fichiers son CTLD
|
|
458
|
-
const zip = await jtffci.mizOpen([
|
|
458
|
+
const zip = await jtffci.mizlib.mizOpen([
|
|
459
459
|
jtffci.config.general.missionFolder,
|
|
460
460
|
"/",
|
|
461
461
|
path.parse(env_mission).name,
|
|
@@ -463,7 +463,7 @@ function injectScripts(jtffci, env_mission) {
|
|
|
463
463
|
path.basename(env_mission)
|
|
464
464
|
].join(""));
|
|
465
465
|
const rangeSoundFolder = zip.remove('CTLD').folder('CTLD');
|
|
466
|
-
await jtffci.addFilesToZip(rangeSoundFolder, 'resources/sounds/CTLD', fs.readdirSync('resources/sounds/CTLD'));
|
|
466
|
+
await jtffci.mizlib.addFilesToZip(rangeSoundFolder, 'resources/sounds/CTLD', fs.readdirSync('resources/sounds/CTLD'));
|
|
467
467
|
const inputZip = await zip.generateAsync({
|
|
468
468
|
type: 'nodebuffer',
|
|
469
469
|
streamFiles: true,
|
|
@@ -486,7 +486,7 @@ function injectScripts(jtffci, env_mission) {
|
|
|
486
486
|
objectName: "CTLDConfig"
|
|
487
487
|
},
|
|
488
488
|
);
|
|
489
|
-
tuple = jtffci.injectScripts(
|
|
489
|
+
tuple = jtffci.mizlib.injectScripts(
|
|
490
490
|
missionObject['trig'],
|
|
491
491
|
missionObject['trigrules'],
|
|
492
492
|
mapResourceObject,
|
|
@@ -501,7 +501,7 @@ function injectScripts(jtffci, env_mission) {
|
|
|
501
501
|
}
|
|
502
502
|
if ((/^y\b|o\b|yes\b|oui\b/i).test(prompt_result.inject_A2G)) {
|
|
503
503
|
// injection des fichiers son Range
|
|
504
|
-
// const zip = await jtffci.mizOpen([
|
|
504
|
+
// const zip = await jtffci.mizlib.mizOpen([
|
|
505
505
|
// jtffci.config.general.missionFolder,
|
|
506
506
|
// "/",
|
|
507
507
|
// path.parse(env_mission).name,
|
|
@@ -509,7 +509,7 @@ function injectScripts(jtffci, env_mission) {
|
|
|
509
509
|
// path.basename(env_mission)
|
|
510
510
|
// ].join(""));
|
|
511
511
|
// const rangeSoundFolder = zip.remove('RANGE').folder('RANGE');
|
|
512
|
-
// await jtffci.addFilesToZip(rangeSoundFolder, 'resources/sounds/RANGE', fs.readdirSync('resources/sounds/RANGE'));
|
|
512
|
+
// await jtffci.mizlib.addFilesToZip(rangeSoundFolder, 'resources/sounds/RANGE', fs.readdirSync('resources/sounds/RANGE'));
|
|
513
513
|
// const inputZip = await zip.generateAsync({
|
|
514
514
|
// type: 'nodebuffer',
|
|
515
515
|
// streamFiles: true,
|
|
@@ -552,7 +552,7 @@ function injectScripts(jtffci, env_mission) {
|
|
|
552
552
|
objectName: "SkynetConfig"
|
|
553
553
|
},
|
|
554
554
|
);
|
|
555
|
-
tuple = jtffci.injectScripts(
|
|
555
|
+
tuple = jtffci.mizlib.injectScripts(
|
|
556
556
|
missionObject['trig'],
|
|
557
557
|
missionObject['trigrules'],
|
|
558
558
|
mapResourceObject,
|
|
@@ -574,7 +574,7 @@ function injectScripts(jtffci, env_mission) {
|
|
|
574
574
|
"/src/200-mission.lua"
|
|
575
575
|
].join("")
|
|
576
576
|
);
|
|
577
|
-
const zip = await jtffci.mizOpen([
|
|
577
|
+
const zip = await jtffci.mizlib.mizOpen([
|
|
578
578
|
jtffci.config.general.missionFolder,
|
|
579
579
|
"/",
|
|
580
580
|
path.parse(env_mission).name,
|
|
@@ -582,7 +582,7 @@ function injectScripts(jtffci, env_mission) {
|
|
|
582
582
|
path.basename(env_mission)
|
|
583
583
|
].join(""));
|
|
584
584
|
|
|
585
|
-
jtffci.mizUpdateLuaFile(zip, [
|
|
585
|
+
jtffci.mizlib.mizUpdateLuaFile(zip, [
|
|
586
586
|
jtffci.config.general.missionFolder,
|
|
587
587
|
"/",
|
|
588
588
|
path.parse(env_mission).name,
|
|
@@ -605,7 +605,7 @@ function injectScripts(jtffci, env_mission) {
|
|
|
605
605
|
path.basename(env_mission)
|
|
606
606
|
].join(""),
|
|
607
607
|
inputZip);
|
|
608
|
-
tuple = jtffci.injectScripts(
|
|
608
|
+
tuple = jtffci.mizlib.injectScripts(
|
|
609
609
|
missionObject['trig'],
|
|
610
610
|
missionObject['trigrules'],
|
|
611
611
|
mapResourceObject,
|
|
@@ -627,14 +627,14 @@ function injectScripts(jtffci, env_mission) {
|
|
|
627
627
|
"/",
|
|
628
628
|
path.basename(env_mission)
|
|
629
629
|
].join("") + ": injecting radio presets declared in resources/radios/" + path.parse(env_mission).name);
|
|
630
|
-
const zip = await jtffci.mizOpen([
|
|
630
|
+
const zip = await jtffci.mizlib.mizOpen([
|
|
631
631
|
jtffci.config.general.missionFolder,
|
|
632
632
|
"/",
|
|
633
633
|
path.parse(env_mission).name,
|
|
634
634
|
"/",
|
|
635
635
|
path.basename(env_mission)
|
|
636
636
|
].join(""));
|
|
637
|
-
await jtffci.mizUpdateRadioPresets(zip, 'resources/radios/' + path.parse(env_mission).name);
|
|
637
|
+
await jtffci.mizlib.mizUpdateRadioPresets(zip, 'resources/radios/' + path.parse(env_mission).name);
|
|
638
638
|
}
|
|
639
639
|
for (let settingsObject of settingsArray) {
|
|
640
640
|
fs.copyFileSync(
|
|
@@ -651,7 +651,7 @@ function injectScripts(jtffci, env_mission) {
|
|
|
651
651
|
].join("")
|
|
652
652
|
);
|
|
653
653
|
}
|
|
654
|
-
await jtffci.mizInjectSettingsFolder(
|
|
654
|
+
await jtffci.mizlib.mizInjectSettingsFolder(
|
|
655
655
|
[
|
|
656
656
|
jtffci.config.general.missionFolder,
|
|
657
657
|
"/",
|
|
@@ -667,7 +667,7 @@ function injectScripts(jtffci, env_mission) {
|
|
|
667
667
|
].join("")
|
|
668
668
|
);
|
|
669
669
|
if (settingsArray.length > 0) {
|
|
670
|
-
tuple = jtffci.injectScripts(
|
|
670
|
+
tuple = jtffci.mizlib.injectScripts(
|
|
671
671
|
missionObject['trig'],
|
|
672
672
|
missionObject['trigrules'],
|
|
673
673
|
mapResourceObject,
|
|
@@ -681,7 +681,7 @@ function injectScripts(jtffci, env_mission) {
|
|
|
681
681
|
mapResourceObject = tuple.mrObject;
|
|
682
682
|
}
|
|
683
683
|
// Sauvegarde de la mission avec scripts injectés
|
|
684
|
-
await jtffci.mizInjectMissionDataFile(
|
|
684
|
+
await jtffci.mizlib.mizInjectMissionDataFile(
|
|
685
685
|
[
|
|
686
686
|
jtffci.config.general.missionFolder,
|
|
687
687
|
"/",
|
|
@@ -691,7 +691,7 @@ function injectScripts(jtffci, env_mission) {
|
|
|
691
691
|
].join(""),
|
|
692
692
|
{ mission: missionObject }
|
|
693
693
|
);
|
|
694
|
-
await jtffci.mizInjectMapResourceFile(
|
|
694
|
+
await jtffci.mizlib.mizInjectMapResourceFile(
|
|
695
695
|
[
|
|
696
696
|
jtffci.config.general.missionFolder,
|
|
697
697
|
"/",
|
|
@@ -3,7 +3,7 @@ const fs = require("fs");
|
|
|
3
3
|
function templateUpdate(jtffci) {
|
|
4
4
|
fs.mkdirSync(jtffci.config.general.missionFolder, { recursive: true });
|
|
5
5
|
jtffci.config.missionTemplates.map(async missionTemplate => {
|
|
6
|
-
await jtffci.mizUpdate([
|
|
6
|
+
await jtffci.mizlib.mizUpdate([
|
|
7
7
|
missionTemplate.prefix,
|
|
8
8
|
'_',
|
|
9
9
|
missionTemplate.theatre,
|