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