@jtff/miztemplate-lib 3.0.0-rc9 → 3.0.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/ci/build.js +6 -0
- package/ci/clean.js +4 -0
- package/ci/ftpupload.js +6 -0
- package/ci/gdrive-upload.js +6 -0
- package/ci/get-mizfiles.js +6 -0
- package/ci/getset-version.js +10 -0
- package/ci/inject-scripts.js +5 -0
- package/ci/prepare-nextversion.js +5 -0
- package/ci/release.js +5 -0
- package/ci/template-update.js +5 -0
- package/lib/jtff-lib-ci.js +72 -1
- package/lib/mizlib.js +157 -41
- package/lua/src/199-skynet.lua +1 -1
- package/package.json +5 -2
- package/resources/radios/Caucasus/354th-caucasus.lua +124 -0
- package/resources/radios/Caucasus/494th-caucasus.lua +91 -0
- package/resources/radios/Caucasus/79th-SUFA-caucasus.lua +65 -0
- package/resources/radios/Caucasus/79th-caucasus.lua +65 -0
- package/resources/radios/Caucasus/ec25-D-caucasus.lua +65 -0
- package/resources/radios/Caucasus/ec25-caucasus.lua +65 -0
- package/resources/radios/Caucasus/vf84-a-caucasus.lua +75 -0
- package/resources/radios/Caucasus/vf84-b-caucasus.lua +75 -0
- package/resources/radios/Caucasus/vfa-131-caucasus.lua +65 -0
- package/resources/radios/Caucasus/vmfa-314-caucasus.lua +65 -0
- package/resources/radios/Mariana/354th-marianas.lua +124 -0
- package/resources/radios/Mariana/494th-marianas.lua +91 -0
- package/resources/radios/Mariana/79th-marianas.lua +65 -0
- package/resources/radios/Mariana/ec25-marianas.lua +65 -0
- package/resources/radios/Mariana/vf84-a-marianas.lua +75 -0
- package/resources/radios/Mariana/vf84-b-marianas.lua +75 -0
- package/resources/radios/Mariana/vfa-131-marianas.lua +65 -0
- package/resources/radios/Mariana/vmfa-314-marianas.lua +65 -0
- package/resources/radios/NTTR/354th-nttr.lua +124 -0
- package/resources/radios/NTTR/494th-nttr.lua +91 -0
- package/resources/radios/NTTR/79th-nttr.lua +65 -0
- package/resources/radios/NTTR/ec25-nttr.lua +65 -0
- package/resources/radios/NTTR/vf84-a-nttr.lua +75 -0
- package/resources/radios/NTTR/vf84-b-nttr.lua +75 -0
- package/resources/radios/NTTR/vfa-131-nttr.lua +65 -0
- package/resources/radios/NTTR/vmfa-314-nttr.lua +65 -0
- package/resources/radios/PersianGulf/354th-persian.lua +124 -0
- package/resources/radios/PersianGulf/3_30-persian.lua +65 -0
- package/resources/radios/PersianGulf/494th-persian.lua +91 -0
- package/resources/radios/PersianGulf/79th-persian.lua +65 -0
- package/resources/radios/PersianGulf/ec25-persian.lua +65 -0
- package/resources/radios/PersianGulf/vf84-a-persian.lua +75 -0
- package/resources/radios/PersianGulf/vf84-b-persian.lua +75 -0
- package/resources/radios/PersianGulf/vfa-131-persian.lua +65 -0
- package/resources/radios/PersianGulf/vmfa-314-persian.lua +65 -0
- package/resources/radios/SinaiMap/354th-sinai.lua +124 -0
- package/resources/radios/SinaiMap/494th-sinai.lua +91 -0
- package/resources/radios/SinaiMap/79th-SUFA-sinai.lua +65 -0
- package/resources/radios/SinaiMap/79th-sinai.lua +65 -0
- package/resources/radios/SinaiMap/ec25-D-sinai.lua +65 -0
- package/resources/radios/SinaiMap/ec25-sinai.lua +65 -0
- package/resources/radios/SinaiMap/vf84-a-sinai.lua +75 -0
- package/resources/radios/SinaiMap/vf84-b-sinai.lua +75 -0
- package/resources/radios/SinaiMap/vfa-131-sinai.lua +65 -0
- package/resources/radios/SinaiMap/vmfa-314-sinai.lua +65 -0
- package/resources/radios/Syria/354th-syria.lua +124 -0
- package/resources/radios/Syria/494th-syria.lua +91 -0
- package/resources/radios/Syria/79th-SUFA-syria.lua +65 -0
- package/resources/radios/Syria/79th-syria.lua +65 -0
- package/resources/radios/Syria/ec25-D-syria.lua +65 -0
- package/resources/radios/Syria/ec25-syria.lua +65 -0
- package/resources/radios/Syria/vf84-a-syria.lua +75 -0
- package/resources/radios/Syria/vf84-b-syria.lua +75 -0
- package/resources/radios/Syria/vfa-131-syria.lua +65 -0
- package/resources/radios/Syria/vmfa-314-syria.lua +65 -0
- package/scripts/build.js +15 -17
- package/scripts/inject-scripts.js +273 -354
- package/scripts/template-update.js +50 -32
- package/resources/radios/.gitkeep +0 -0
|
@@ -1,43 +1,66 @@
|
|
|
1
1
|
const fs = require('fs');
|
|
2
2
|
const path = require("path");
|
|
3
3
|
const prompt = require('prompt');
|
|
4
|
+
let _ = require('lodash');
|
|
5
|
+
const {getInstalledPathSync} = require("get-installed-path");
|
|
4
6
|
|
|
5
7
|
function injectScripts(jtffci, env_mission) {
|
|
6
|
-
|
|
7
|
-
fs.mkdirSync(jtffci.config.general.missionFolder, { recursive: true });
|
|
8
|
-
if (fs.existsSync([
|
|
8
|
+
const workspacePath = [
|
|
9
9
|
jtffci.config.general.missionFolder,
|
|
10
10
|
"/",
|
|
11
11
|
path.parse(env_mission).name
|
|
12
|
-
].join("")
|
|
12
|
+
].join("");
|
|
13
|
+
const destinationMizFilePath = [
|
|
14
|
+
workspacePath,
|
|
15
|
+
'/',
|
|
16
|
+
path.basename(env_mission)
|
|
17
|
+
].join("");
|
|
18
|
+
// create mission folder in jtffci.config.reneral.missionFolder folder
|
|
19
|
+
fs.mkdirSync(jtffci.config.general.missionFolder, { recursive: true });
|
|
20
|
+
if (fs.existsSync(workspacePath)) {
|
|
13
21
|
// if there is a specific mission folder (dist/env_mission), clean it
|
|
14
|
-
fs.rmSync(
|
|
15
|
-
jtffci.config.general.missionFolder,
|
|
16
|
-
"/",
|
|
17
|
-
path.parse(env_mission).name
|
|
18
|
-
].join(""),
|
|
19
|
-
{ recursive: true }
|
|
20
|
-
);
|
|
22
|
+
fs.rmSync(workspacePath,{ recursive: true });
|
|
21
23
|
}
|
|
22
24
|
// create a settings folder
|
|
23
25
|
fs.mkdirSync([
|
|
24
|
-
|
|
25
|
-
"/",
|
|
26
|
-
path.parse(env_mission).name,
|
|
26
|
+
workspacePath,
|
|
27
27
|
"/settings"
|
|
28
28
|
].join(""),
|
|
29
29
|
{ recursive: true }
|
|
30
30
|
);
|
|
31
31
|
// create a src folder
|
|
32
32
|
fs.mkdirSync([
|
|
33
|
-
|
|
34
|
-
"/"
|
|
35
|
-
|
|
36
|
-
|
|
33
|
+
workspacePath,
|
|
34
|
+
"/.workspace/src"
|
|
35
|
+
].join(""),
|
|
36
|
+
{ recursive: true }
|
|
37
|
+
);
|
|
38
|
+
// create a lib folder
|
|
39
|
+
fs.mkdirSync([
|
|
40
|
+
workspacePath,
|
|
41
|
+
"/.workspace/lib"
|
|
42
|
+
].join(""),
|
|
43
|
+
{ recursive: true }
|
|
44
|
+
);
|
|
45
|
+
// create a resources folder
|
|
46
|
+
fs.mkdirSync([
|
|
47
|
+
workspacePath,
|
|
48
|
+
"/.workspace/resources/sounds"
|
|
49
|
+
].join(""),
|
|
50
|
+
{ recursive: true }
|
|
51
|
+
);
|
|
52
|
+
fs.mkdirSync([
|
|
53
|
+
workspacePath,
|
|
54
|
+
"/resources/radios"
|
|
55
|
+
].join(""),
|
|
56
|
+
{ recursive: true }
|
|
57
|
+
);
|
|
58
|
+
fs.mkdirSync([
|
|
59
|
+
workspacePath,
|
|
60
|
+
"/resources/sounds"
|
|
37
61
|
].join(""),
|
|
38
62
|
{ recursive: true }
|
|
39
63
|
);
|
|
40
|
-
|
|
41
64
|
const prompt_properties = [
|
|
42
65
|
{
|
|
43
66
|
name: 'inject_tankers',
|
|
@@ -118,112 +141,60 @@ function injectScripts(jtffci, env_mission) {
|
|
|
118
141
|
console.log(' inject_A2G scripts: ' + (/^y\b|o\b|yes\b|oui\b/i).test(prompt_result.inject_A2G));
|
|
119
142
|
console.log(' inject_mission specific scripts: ' + (/^y\b|o\b|yes\b|oui\b/i).test(prompt_result.inject_mission));
|
|
120
143
|
console.log(' inject_radio_presets scripts: ' + (/^y\b|o\b|yes\b|oui\b/i).test(prompt_result.inject_radio_presets));
|
|
121
|
-
|
|
122
144
|
// open the miz input file for reading
|
|
123
|
-
const
|
|
124
|
-
//
|
|
125
|
-
|
|
126
|
-
//
|
|
127
|
-
|
|
145
|
+
const originalMizObject = await jtffci.mizlib.getZipObjectFromMizPath(env_mission);
|
|
146
|
+
// copie de l'objet pour modification
|
|
147
|
+
let mizObject = originalMizObject;
|
|
148
|
+
// Open the mission Object and mapResource Object for modification
|
|
149
|
+
const missionObject = await jtffci.mizlib.getMissionObjectFromZipObject(mizObject);
|
|
150
|
+
let mapResourceObject = await jtffci.mizlib.getMapResourceObjectFromZipObject(mizObject);
|
|
151
|
+
// prepare settings array
|
|
152
|
+
let settingsArray = [];
|
|
153
|
+
let scriptsArray = [];
|
|
154
|
+
let libsArray = [];
|
|
155
|
+
// insertion des librairies externes dans la file d'attente
|
|
156
|
+
libsArray.push({
|
|
157
|
+
folder: 'lib',
|
|
158
|
+
scriptTitle: 'SplashDamage 2.0',
|
|
159
|
+
scripts: ['Splash_Damage_2_0.lua'],
|
|
160
|
+
timing: 9,
|
|
161
|
+
color: '0x008000ff'
|
|
162
|
+
});
|
|
163
|
+
libsArray.push({
|
|
164
|
+
folder: 'lib',
|
|
165
|
+
scriptTitle: 'Moose',
|
|
166
|
+
scripts: ['Moose_.lua'],
|
|
167
|
+
timing: 10,
|
|
168
|
+
color: '0x008000ff'
|
|
169
|
+
});
|
|
170
|
+
libsArray.push({
|
|
171
|
+
folder: 'lib',
|
|
172
|
+
scriptTitle: 'Mist',
|
|
173
|
+
scripts: ['mist_4_5_107.lua'],
|
|
174
|
+
timing: 12,
|
|
175
|
+
color: '0x008000ff'
|
|
176
|
+
});
|
|
177
|
+
libsArray.push({
|
|
178
|
+
folder: 'lib',
|
|
179
|
+
scriptTitle: 'Hercules',
|
|
180
|
+
scripts: ['Hercules_Cargo.lua'],
|
|
181
|
+
timing: 14,
|
|
182
|
+
color: '0x008000ff'
|
|
183
|
+
});
|
|
184
|
+
libsArray.push({
|
|
185
|
+
folder: 'lib',
|
|
186
|
+
scriptTitle: 'Skynet',
|
|
187
|
+
scripts: ['skynet-iads-compiled.lua'],
|
|
188
|
+
timing: 15,
|
|
189
|
+
color: '0x008000ff'
|
|
190
|
+
});
|
|
128
191
|
// injection des fichiers son Généraux si repertoire resources/sounds/General present
|
|
129
|
-
await
|
|
130
|
-
|
|
131
|
-
// fs.writeFileSync([
|
|
132
|
-
// jtffci.config.general.missionFolder,
|
|
133
|
-
// "/",
|
|
134
|
-
// path.parse(env_mission).name,
|
|
135
|
-
// "/",
|
|
136
|
-
// path.basename(env_mission)
|
|
137
|
-
// ].join(""),
|
|
138
|
-
// await mizObject.generateAsync({
|
|
139
|
-
// type: 'nodebuffer',
|
|
140
|
-
// streamFiles: true,
|
|
141
|
-
// compression: "DEFLATE",
|
|
142
|
-
// compressionOptions: {
|
|
143
|
-
// level: 9
|
|
144
|
-
// }
|
|
145
|
-
// })
|
|
146
|
-
// );
|
|
192
|
+
await jtffci.mizlib.updateWorkspaceWithSingleSoundFolder(workspacePath, 'General');
|
|
193
|
+
await jtffci.mizlib.injectSingleSoundFolderIntoZipObject(mizObject,workspacePath, 'General', true);
|
|
147
194
|
// injection des fichiers son Misc si repertoire resources/sounds/Misc present
|
|
148
|
-
await
|
|
149
|
-
|
|
150
|
-
//
|
|
151
|
-
// jtffci.config.general.missionFolder,
|
|
152
|
-
// "/",
|
|
153
|
-
// path.parse(env_mission).name,
|
|
154
|
-
// "/",
|
|
155
|
-
// path.basename(env_mission)
|
|
156
|
-
// ].join(""),
|
|
157
|
-
// await mizObject.generateAsync({
|
|
158
|
-
// type: 'nodebuffer',
|
|
159
|
-
// streamFiles: true,
|
|
160
|
-
// compression: "DEFLATE",
|
|
161
|
-
// compressionOptions: {
|
|
162
|
-
// level: 9
|
|
163
|
-
// }
|
|
164
|
-
// })
|
|
165
|
-
// );
|
|
166
|
-
const missionObject = await this.mizlib.getMissionObjectFromZipObject(mizObject);
|
|
167
|
-
let mapResourceObject = await this.mizlib.getMapResourceObjectFromZipObject(mizObject);
|
|
168
|
-
let settingsArray = [];
|
|
169
|
-
if (Array.isArray(mapResourceObject)) {
|
|
170
|
-
if (mapResourceObject.length === 0) {
|
|
171
|
-
mapResourceObject = {};
|
|
172
|
-
}
|
|
173
|
-
}
|
|
174
|
-
// injection SplashDamage
|
|
175
|
-
let tuple = this.mizlib.injectLuaScriptsInMissionObject(
|
|
176
|
-
missionObject['trig'],
|
|
177
|
-
missionObject['trigrules'],
|
|
178
|
-
mapResourceObject,
|
|
179
|
-
'SplashDamage load',
|
|
180
|
-
['Splash_Damage_2_0.lua'],
|
|
181
|
-
9,
|
|
182
|
-
'0x008000ff'
|
|
183
|
-
);
|
|
184
|
-
missionObject['trig'] = tuple.tObject;
|
|
185
|
-
missionObject['trigrules'] = tuple.trObject;
|
|
186
|
-
mapResourceObject = tuple.mrObject;
|
|
187
|
-
// injection Moose
|
|
188
|
-
tuple = this.mizlib.injectLuaScriptsInMissionObject(
|
|
189
|
-
missionObject['trig'],
|
|
190
|
-
missionObject['trigrules'],
|
|
191
|
-
mapResourceObject,
|
|
192
|
-
'Moose load',
|
|
193
|
-
['Moose_.lua'],
|
|
194
|
-
10,
|
|
195
|
-
'0x008000ff'
|
|
196
|
-
);
|
|
197
|
-
missionObject['trig'] = tuple.tObject;
|
|
198
|
-
missionObject['trigrules'] = tuple.trObject;
|
|
199
|
-
mapResourceObject = tuple.mrObject;
|
|
200
|
-
// injection Mist
|
|
201
|
-
tuple = this.mizlib.injectLuaScriptsInMissionObject(
|
|
202
|
-
missionObject['trig'],
|
|
203
|
-
missionObject['trigrules'],
|
|
204
|
-
mapResourceObject,
|
|
205
|
-
'Mist load',
|
|
206
|
-
['mist_4_5_107.lua'],
|
|
207
|
-
13,
|
|
208
|
-
'0x008000ff'
|
|
209
|
-
);
|
|
210
|
-
missionObject['trig'] = tuple.tObject;
|
|
211
|
-
missionObject['trigrules'] = tuple.trObject;
|
|
212
|
-
mapResourceObject = tuple.mrObject;
|
|
213
|
-
// injection Skynet
|
|
214
|
-
tuple = this.mizlib.injectLuaScriptsInMissionObject(
|
|
215
|
-
missionObject['trig'],
|
|
216
|
-
missionObject['trigrules'],
|
|
217
|
-
mapResourceObject,
|
|
218
|
-
'Skynet load',
|
|
219
|
-
['skynet-iads-compiled.lua'],
|
|
220
|
-
15,
|
|
221
|
-
'0x008000ff'
|
|
222
|
-
);
|
|
223
|
-
missionObject['trig'] = tuple.tObject;
|
|
224
|
-
missionObject['trigrules'] = tuple.trObject;
|
|
225
|
-
mapResourceObject = tuple.mrObject;
|
|
226
|
-
// injection Librairies JTFF
|
|
195
|
+
await jtffci.mizlib.updateWorkspaceWithSingleSoundFolder(workspacePath, 'Misc');
|
|
196
|
+
await jtffci.mizlib.injectSingleSoundFolderIntoZipObject(mizObject,workspacePath, 'Misc', true);
|
|
197
|
+
// insertion des Librairies JTFF dans la file d'attente
|
|
227
198
|
settingsArray.push(
|
|
228
199
|
{
|
|
229
200
|
file: "settings-gemman.lua",
|
|
@@ -232,33 +203,48 @@ function injectScripts(jtffci, env_mission) {
|
|
|
232
203
|
file: "settings-global.lua",
|
|
233
204
|
},
|
|
234
205
|
);
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
206
|
+
libsArray.push({
|
|
207
|
+
folder: 'lib',
|
|
208
|
+
scriptTitle: 'GemMan',
|
|
209
|
+
scripts: ['gemman.lua'],
|
|
210
|
+
timing: 17,
|
|
211
|
+
color: '0xffff00ff'
|
|
212
|
+
});
|
|
213
|
+
libsArray.push({
|
|
214
|
+
folder: 'src',
|
|
215
|
+
scriptTitle: 'JTFF Libraries',
|
|
216
|
+
scripts: ['010-root_menus.lua', '020-mission_functions.lua'],
|
|
217
|
+
timing: 18,
|
|
218
|
+
color: '0xffff00ff'
|
|
219
|
+
});
|
|
220
|
+
// traitement de la file d'attente des librairies (injection des triggers et des fichiers lua)
|
|
221
|
+
for ( libscript of libsArray) {
|
|
222
|
+
console.log(['adding library',libscript.scripts.join(' and '),'from',workspacePath + '/.workspace/' + libscript.folder, 'folder...'].join(' '));
|
|
223
|
+
let {tuple, zipObject} = await jtffci.mizlib.injectLuaScriptIntoZipObjectAndUpdateWorkspace(
|
|
224
|
+
workspacePath,
|
|
225
|
+
libscript.folder,
|
|
226
|
+
libscript.scripts,
|
|
227
|
+
libscript.scriptTitle + ' Load',
|
|
228
|
+
mizObject,
|
|
229
|
+
libscript.timing,
|
|
230
|
+
libscript.color,
|
|
231
|
+
true
|
|
232
|
+
);
|
|
233
|
+
missionObject['trig'] = tuple.tObject;
|
|
234
|
+
missionObject['trigrules'] = tuple.trObject;
|
|
235
|
+
mapResourceObject = _.merge(mapResourceObject,tuple.mrObject);
|
|
236
|
+
mizObject = zipObject;
|
|
237
|
+
}
|
|
238
|
+
// injection de la gestion des Set_Clients dans la file d'attente
|
|
239
|
+
scriptsArray.push({
|
|
240
|
+
folder: 'src',
|
|
241
|
+
scriptTitle: 'Set clients',
|
|
242
|
+
scripts: ['110-set_clients.lua'],
|
|
243
|
+
timing: 21,
|
|
244
|
+
color: '0xff0000ff',
|
|
245
|
+
fromLibrary: true
|
|
246
|
+
});
|
|
247
|
+
// injection des Tankers et OndemandTankers dans la file d'attente
|
|
262
248
|
if ((/^y\b|o\b|yes\b|oui\b/i).test(prompt_result.inject_tankers)) {
|
|
263
249
|
settingsArray.push(
|
|
264
250
|
{
|
|
@@ -270,22 +256,20 @@ function injectScripts(jtffci, env_mission) {
|
|
|
270
256
|
objectName: "OnDemandTankersConfig"
|
|
271
257
|
},
|
|
272
258
|
);
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
);
|
|
282
|
-
missionObject['trig'] = tuple.tObject;
|
|
283
|
-
missionObject['trigrules'] = tuple.trObject;
|
|
284
|
-
mapResourceObject = tuple.mrObject;
|
|
259
|
+
scriptsArray.push({
|
|
260
|
+
folder: 'src',
|
|
261
|
+
scriptTitle: 'Tankers',
|
|
262
|
+
scripts: ['120-tankers.lua'],
|
|
263
|
+
timing: 22,
|
|
264
|
+
color: '0xff0000ff',
|
|
265
|
+
fromLibrary: true
|
|
266
|
+
});
|
|
285
267
|
}
|
|
268
|
+
// injection des Airboss et Pedros dans la file d'attente
|
|
286
269
|
if ((/^y\b|o\b|yes\b|oui\b/i).test(prompt_result.inject_airboss)) {
|
|
287
270
|
// injection des fichiers son Airboss
|
|
288
|
-
|
|
271
|
+
await jtffci.mizlib.updateWorkspaceWithSingleSoundFolder(workspacePath, 'AIRBOSS');
|
|
272
|
+
await jtffci.mizlib.injectSingleSoundFolderIntoZipObject(mizObject,workspacePath, 'AIRBOSS', true);
|
|
289
273
|
settingsArray.push(
|
|
290
274
|
{
|
|
291
275
|
file: "settings-airboss.lua",
|
|
@@ -296,19 +280,16 @@ function injectScripts(jtffci, env_mission) {
|
|
|
296
280
|
objectName: "PedrosConfig"
|
|
297
281
|
},
|
|
298
282
|
);
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
);
|
|
308
|
-
missionObject['trig'] = tuple.tObject;
|
|
309
|
-
missionObject['trigrules'] = tuple.trObject;
|
|
310
|
-
mapResourceObject = tuple.mrObject;
|
|
283
|
+
scriptsArray.push({
|
|
284
|
+
folder: 'src',
|
|
285
|
+
scriptTitle: 'Airboss',
|
|
286
|
+
scripts: ['130-airboss.lua', '135-pedro.lua'],
|
|
287
|
+
timing: 23,
|
|
288
|
+
color: '0xff0000ff',
|
|
289
|
+
fromLibrary: true
|
|
290
|
+
});
|
|
311
291
|
}
|
|
292
|
+
// injection des Beacons dans la file d'attente
|
|
312
293
|
if ((/^y\b|o\b|yes\b|oui\b/i).test(prompt_result.inject_beacons)) {
|
|
313
294
|
settingsArray.push(
|
|
314
295
|
{
|
|
@@ -316,19 +297,16 @@ function injectScripts(jtffci, env_mission) {
|
|
|
316
297
|
objectName: "BeaconsConfig"
|
|
317
298
|
},
|
|
318
299
|
);
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
);
|
|
328
|
-
missionObject['trig'] = tuple.tObject;
|
|
329
|
-
missionObject['trigrules'] = tuple.trObject;
|
|
330
|
-
mapResourceObject = tuple.mrObject;
|
|
300
|
+
scriptsArray.push({
|
|
301
|
+
folder: 'src',
|
|
302
|
+
scriptTitle: 'Beacons',
|
|
303
|
+
scripts: ['140-beacons.lua'],
|
|
304
|
+
timing: 24,
|
|
305
|
+
color: '0xff0000ff',
|
|
306
|
+
fromLibrary: true
|
|
307
|
+
});
|
|
331
308
|
}
|
|
309
|
+
// injection des AWACS et OnDemandAwacs dans la file d'attente
|
|
332
310
|
if ((/^y\b|o\b|yes\b|oui\b/i).test(prompt_result.inject_awacs)) {
|
|
333
311
|
settingsArray.push(
|
|
334
312
|
{
|
|
@@ -340,41 +318,36 @@ function injectScripts(jtffci, env_mission) {
|
|
|
340
318
|
objectName: "AwacsOnDemandConfig"
|
|
341
319
|
},
|
|
342
320
|
);
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
);
|
|
352
|
-
missionObject['trig'] = tuple.tObject;
|
|
353
|
-
missionObject['trigrules'] = tuple.trObject;
|
|
354
|
-
mapResourceObject = tuple.mrObject;
|
|
321
|
+
scriptsArray.push({
|
|
322
|
+
folder: 'src',
|
|
323
|
+
scriptTitle: 'Awacs',
|
|
324
|
+
scripts: ['150-awacs.lua'],
|
|
325
|
+
timing: 25,
|
|
326
|
+
color: '0xff0000ff',
|
|
327
|
+
fromLibrary: true
|
|
328
|
+
});
|
|
355
329
|
}
|
|
330
|
+
// injection des ATIS dans la file d'attente
|
|
356
331
|
if ((/^y\b|o\b|yes\b|oui\b/i).test(prompt_result.inject_atis)) {
|
|
357
332
|
// injection des fichiers son ATIS
|
|
358
|
-
|
|
333
|
+
await jtffci.mizlib.updateWorkspaceWithSingleSoundFolder(workspacePath, 'ATIS');
|
|
334
|
+
await jtffci.mizlib.injectSingleSoundFolderIntoZipObject(mizObject,workspacePath, 'ATIS', true);
|
|
359
335
|
settingsArray.push(
|
|
360
336
|
{
|
|
361
337
|
file: "settings-atis.lua",
|
|
362
338
|
objectName: "AtisConfig"
|
|
363
339
|
},
|
|
364
340
|
);
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
);
|
|
374
|
-
missionObject['trig'] = tuple.tObject;
|
|
375
|
-
missionObject['trigrules'] = tuple.trObject;
|
|
376
|
-
mapResourceObject = tuple.mrObject;
|
|
341
|
+
scriptsArray.push({
|
|
342
|
+
folder: 'src',
|
|
343
|
+
scriptTitle: 'ATIS',
|
|
344
|
+
scripts: ['160-atis.lua'],
|
|
345
|
+
timing: 26,
|
|
346
|
+
color: '0xff0000ff',
|
|
347
|
+
fromLibrary: true
|
|
348
|
+
});
|
|
377
349
|
}
|
|
350
|
+
// injection des scripts A2A dans la file d'attente
|
|
378
351
|
if ((/^y\b|o\b|yes\b|oui\b/i).test(prompt_result.inject_A2A)) {
|
|
379
352
|
settingsArray.push(
|
|
380
353
|
{
|
|
@@ -398,44 +371,40 @@ function injectScripts(jtffci, env_mission) {
|
|
|
398
371
|
objectName: "InterceptConfig"
|
|
399
372
|
},
|
|
400
373
|
);
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
);
|
|
410
|
-
missionObject['trig'] = tuple.tObject;
|
|
411
|
-
missionObject['trigrules'] = tuple.trObject;
|
|
412
|
-
mapResourceObject = tuple.mrObject;
|
|
374
|
+
scriptsArray.push({
|
|
375
|
+
folder: 'src',
|
|
376
|
+
scriptTitle: 'Air To Air',
|
|
377
|
+
scripts: ['170-cap_zone_training.lua', '172-cap_zone_war.lua', '173-fox_zone_training.lua', '176-random_air_traffic.lua', '178-training-intercept.lua'],
|
|
378
|
+
timing: 27,
|
|
379
|
+
color: '0xff0000ff',
|
|
380
|
+
fromLibrary: true
|
|
381
|
+
});
|
|
413
382
|
}
|
|
383
|
+
// injection des CTLD dans la file d'attente
|
|
414
384
|
if ((/^y\b|o\b|yes\b|oui\b/i).test(prompt_result.inject_Logistics)) {
|
|
415
385
|
// injection des fichiers son CTLD
|
|
416
|
-
await
|
|
386
|
+
await jtffci.mizlib.updateWorkspaceWithSingleSoundFolder(workspacePath, 'CTLD');
|
|
387
|
+
await jtffci.mizlib.injectSingleSoundFolderIntoZipObject(mizObject,workspacePath, 'CTLD', true);
|
|
417
388
|
settingsArray.push(
|
|
418
389
|
{
|
|
419
390
|
file: "settings-logistics.lua",
|
|
420
391
|
objectName: "CTLDConfig"
|
|
421
392
|
},
|
|
422
393
|
);
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
);
|
|
432
|
-
missionObject['trig'] = tuple.tObject;
|
|
433
|
-
missionObject['trigrules'] = tuple.trObject;
|
|
434
|
-
mapResourceObject = tuple.mrObject;
|
|
394
|
+
scriptsArray.push({
|
|
395
|
+
folder: 'src',
|
|
396
|
+
scriptTitle: 'Logistics',
|
|
397
|
+
scripts: ['180-logistics.lua'],
|
|
398
|
+
timing: 28,
|
|
399
|
+
color: '0xff0000ff',
|
|
400
|
+
fromLibrary: true
|
|
401
|
+
});
|
|
435
402
|
}
|
|
403
|
+
// injection des scripts A2G dans la file d'attente
|
|
436
404
|
if ((/^y\b|o\b|yes\b|oui\b/i).test(prompt_result.inject_A2G)) {
|
|
437
405
|
// injection des fichiers son Range
|
|
438
|
-
|
|
406
|
+
await jtffci.mizlib.updateWorkspaceWithSingleSoundFolder(workspacePath, 'RANGE');
|
|
407
|
+
await jtffci.mizlib.injectSingleSoundFolderIntoZipObject(mizObject,workspacePath, 'RANGE', true);
|
|
439
408
|
settingsArray.push(
|
|
440
409
|
{
|
|
441
410
|
file: "settings-ranges.lua",
|
|
@@ -462,145 +431,95 @@ function injectScripts(jtffci, env_mission) {
|
|
|
462
431
|
objectName: "SkynetConfig"
|
|
463
432
|
},
|
|
464
433
|
);
|
|
465
|
-
|
|
466
|
-
|
|
467
|
-
|
|
468
|
-
|
|
469
|
-
|
|
470
|
-
|
|
471
|
-
|
|
472
|
-
|
|
473
|
-
);
|
|
474
|
-
missionObject['trig'] = tuple.tObject;
|
|
475
|
-
missionObject['trigrules'] = tuple.trObject;
|
|
476
|
-
mapResourceObject = tuple.mrObject;
|
|
434
|
+
scriptsArray.push({
|
|
435
|
+
folder: 'src',
|
|
436
|
+
scriptTitle: 'Air To Ground',
|
|
437
|
+
scripts: ['190-ranges.lua', '191-sams.lua', '193-training_ranges.lua', '195-reaper-ondemand.lua', '196-fac_ranges.lua', '199-skynet.lua'],
|
|
438
|
+
timing: 29,
|
|
439
|
+
color: '0xff0000ff',
|
|
440
|
+
fromLibrary: true
|
|
441
|
+
});
|
|
477
442
|
}
|
|
443
|
+
// injection du script spécifique de mission dans la file d'attente
|
|
478
444
|
if ((/^y\b|o\b|yes\b|oui\b/i).test(prompt_result.inject_mission)) {
|
|
479
|
-
|
|
480
|
-
|
|
481
|
-
|
|
482
|
-
|
|
483
|
-
|
|
484
|
-
|
|
485
|
-
|
|
486
|
-
|
|
487
|
-
|
|
488
|
-
|
|
489
|
-
|
|
490
|
-
|
|
491
|
-
|
|
492
|
-
|
|
493
|
-
|
|
494
|
-
|
|
495
|
-
|
|
496
|
-
|
|
497
|
-
|
|
498
|
-
|
|
499
|
-
|
|
500
|
-
// ].join("")
|
|
501
|
-
// );
|
|
502
|
-
// const inputZip = await zip.generateAsync({
|
|
503
|
-
// type: 'nodebuffer',
|
|
504
|
-
// streamFiles: true,
|
|
505
|
-
// compression: "DEFLATE",
|
|
506
|
-
// compressionOptions: {
|
|
507
|
-
// level: 9
|
|
508
|
-
// }
|
|
509
|
-
// });
|
|
510
|
-
// fs.writeFileSync([
|
|
511
|
-
// jtffci.config.general.missionFolder,
|
|
512
|
-
// "/",
|
|
513
|
-
// path.parse(env_mission).name,
|
|
514
|
-
// "/",
|
|
515
|
-
// path.basename(env_mission)
|
|
516
|
-
// ].join(""),
|
|
517
|
-
// inputZip);
|
|
518
|
-
tuple = this.mizlib.injectLuaScriptsInMissionObject(
|
|
519
|
-
missionObject['trig'],
|
|
520
|
-
missionObject['trigrules'],
|
|
521
|
-
mapResourceObject,
|
|
522
|
-
'Mission specific',
|
|
523
|
-
['200-mission.lua'],
|
|
524
|
-
30,
|
|
525
|
-
'0xff0000ff'
|
|
445
|
+
scriptsArray.push({
|
|
446
|
+
folder: 'src',
|
|
447
|
+
scriptTitle: 'Mission specific',
|
|
448
|
+
scripts: ['200-mission.lua'],
|
|
449
|
+
timing: 30,
|
|
450
|
+
color: '0xff0000ff',
|
|
451
|
+
fromLibrary: false
|
|
452
|
+
});
|
|
453
|
+
}
|
|
454
|
+
// traitement de la file d'attente des scripts (injection des triggers et des fichiers lua)
|
|
455
|
+
for ( script of scriptsArray) {
|
|
456
|
+
console.log(['adding script',script.scripts.join(' and '),'from',workspacePath + '/' + script.folder, 'folder...'].join(' '));
|
|
457
|
+
let {tuple, zipObject} = await jtffci.mizlib.injectLuaScriptIntoZipObjectAndUpdateWorkspace(
|
|
458
|
+
workspacePath,
|
|
459
|
+
script.folder,
|
|
460
|
+
script.scripts,
|
|
461
|
+
script.scriptTitle,
|
|
462
|
+
mizObject,
|
|
463
|
+
script.timing,
|
|
464
|
+
script.color,
|
|
465
|
+
script.fromLibrary
|
|
526
466
|
);
|
|
527
467
|
missionObject['trig'] = tuple.tObject;
|
|
528
468
|
missionObject['trigrules'] = tuple.trObject;
|
|
529
|
-
mapResourceObject = tuple.mrObject;
|
|
469
|
+
mapResourceObject = _.merge(mapResourceObject,tuple.mrObject);
|
|
470
|
+
mizObject = zipObject;
|
|
530
471
|
}
|
|
472
|
+
// injection des preset radio dans les avions humains
|
|
531
473
|
if ((/^y\b|o\b|yes\b|oui\b/i).test(prompt_result.inject_radio_presets)) {
|
|
532
474
|
// injection des preset radio
|
|
533
|
-
|
|
534
|
-
|
|
535
|
-
|
|
536
|
-
|
|
537
|
-
"/",
|
|
538
|
-
path.basename(env_mission)
|
|
539
|
-
].join("") + ": injecting radio presets declared in resources/radios/" + path.parse(env_mission).name);
|
|
540
|
-
await this.mizlib.mizUpdateRadioPresets(mizObject, 'resources/radios/' + path.parse(env_mission).name);
|
|
541
|
-
}
|
|
542
|
-
//injection du trigger des settings
|
|
543
|
-
for (let settingsObject of settingsArray) {
|
|
544
|
-
fs.copyFileSync(
|
|
545
|
-
[
|
|
546
|
-
'templates/settings/',
|
|
547
|
-
settingsObject.file
|
|
548
|
-
].join(""),
|
|
549
|
-
[
|
|
550
|
-
jtffci.config.general.missionFolder,
|
|
551
|
-
"/",
|
|
552
|
-
path.parse(env_mission).name,
|
|
553
|
-
"/settings/",
|
|
554
|
-
settingsObject.file
|
|
555
|
-
].join("")
|
|
556
|
-
);
|
|
475
|
+
fs.mkdirSync(workspacePath + '/resources/radios/' + missionObject.theatre,{recursive: true});
|
|
476
|
+
fs.cpSync(getInstalledPathSync('@jtff/miztemplate-lib',{local: true}) + '/resources/radios/' + missionObject.theatre,workspacePath + '/resources/radios/' + missionObject.theatre,{recursive: true})
|
|
477
|
+
console.log(destinationMizFilePath + ": injecting radio presets declared in resources/radios/" + missionObject.theatre);
|
|
478
|
+
await jtffci.mizlib.injectRadioPresetsFromFolderIntoZipObject(mizObject, workspacePath + '/resources/radios/' + missionObject.theatre);
|
|
557
479
|
}
|
|
558
|
-
|
|
559
|
-
[
|
|
560
|
-
jtffci.config.general.missionFolder,
|
|
561
|
-
"/",
|
|
562
|
-
path.parse(env_mission).name,
|
|
563
|
-
"/settings"
|
|
564
|
-
].join("")
|
|
565
|
-
);
|
|
480
|
+
// traitement de la file d'attente des settings (injection des triggers et des fichiers lua)
|
|
566
481
|
if (settingsArray.length > 0) {
|
|
567
|
-
|
|
568
|
-
|
|
569
|
-
|
|
570
|
-
|
|
482
|
+
console.log(['adding settings files',settingsArray.map(a => a.file).join(' and '),'from',workspacePath + '/settings', 'folder...'].join(' '));
|
|
483
|
+
let {tuple, zipObject} = await jtffci.mizlib.injectLuaScriptIntoZipObjectAndUpdateWorkspace(
|
|
484
|
+
workspacePath,
|
|
485
|
+
'settings',
|
|
486
|
+
settingsArray.map(a => a.file),
|
|
571
487
|
'Mission Settings',
|
|
572
|
-
|
|
488
|
+
mizObject,
|
|
573
489
|
15,
|
|
574
|
-
'0xffff00ff'
|
|
490
|
+
'0xffff00ff',
|
|
491
|
+
false
|
|
575
492
|
);
|
|
576
493
|
missionObject['trig'] = tuple.tObject;
|
|
577
494
|
missionObject['trigrules'] = tuple.trObject;
|
|
578
|
-
mapResourceObject = tuple.mrObject;
|
|
495
|
+
mapResourceObject = _.merge(mapResourceObject,tuple.mrObject);
|
|
496
|
+
mizObject = zipObject;
|
|
579
497
|
}
|
|
580
|
-
//
|
|
581
|
-
await
|
|
582
|
-
|
|
583
|
-
jtffci.config.general.missionFolder,
|
|
584
|
-
"/",
|
|
585
|
-
path.parse(env_mission).name,
|
|
586
|
-
"/",
|
|
587
|
-
path.basename(env_mission)
|
|
588
|
-
].join(""),
|
|
498
|
+
// réintégration du fichier mission dans l'archive
|
|
499
|
+
await jtffci.mizlib.injectMissionObjectIntoZipObject(
|
|
500
|
+
mizObject,
|
|
589
501
|
{ mission: missionObject }
|
|
590
502
|
);
|
|
591
|
-
await
|
|
592
|
-
|
|
593
|
-
jtffci.config.general.missionFolder,
|
|
594
|
-
"/",
|
|
595
|
-
path.parse(env_mission).name,
|
|
596
|
-
"/",
|
|
597
|
-
path.basename(env_mission)
|
|
598
|
-
].join(""),
|
|
503
|
+
await jtffci.mizlib.injectMapResourceObjectIntoZipObject(
|
|
504
|
+
mizObject,
|
|
599
505
|
{ mapResource: mapResourceObject }
|
|
600
506
|
);
|
|
507
|
+
// creation du fichier miz dans l'espace de travail
|
|
508
|
+
// await fs.closeSync(fs.openSync(destinationMizFilePath, 'a'));
|
|
509
|
+
// On fait une sauvegarde dans le folder de destination
|
|
510
|
+
fs.writeFileSync(destinationMizFilePath, await mizObject.generateAsync({
|
|
511
|
+
type: 'nodebuffer',
|
|
512
|
+
streamFiles: true,
|
|
513
|
+
compression: "DEFLATE",
|
|
514
|
+
compressionOptions: {
|
|
515
|
+
level: 9
|
|
516
|
+
}
|
|
517
|
+
}));
|
|
518
|
+
// generation des outils CI JTFF
|
|
519
|
+
await jtffci.deployCIScriptsFromZipObjectIntoWorkspace(workspacePath, mizObject, env_mission);
|
|
601
520
|
console.log('...Done...');
|
|
602
521
|
return 0;
|
|
603
522
|
});
|
|
604
523
|
}
|
|
605
524
|
|
|
606
|
-
module.exports = injectScripts
|
|
525
|
+
module.exports = injectScripts;
|