@jtff/miztemplate-lib 3.0.0-rc1 → 3.0.0-rc10
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 -2
- package/lib/jtff-lib-ci.js +3 -1
- package/lib/mizlib.js +270 -285
- package/package.json +1 -1
- package/scripts/build.js +1 -2
- package/scripts/inject-scripts.js +33 -34
- package/scripts/template-update.js +1 -1
package/index.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
const MizTemplateCI = require("./lib/jtff-lib-ci.js");
|
|
2
|
-
const
|
|
2
|
+
const Mizlib = require("./lib/mizlib.js");
|
|
3
3
|
const build = require("./scripts/build.js");
|
|
4
4
|
const clean = require("./scripts/clean.js");
|
|
5
5
|
const ftpupload = require("./scripts/ftpupload.js");
|
|
@@ -13,6 +13,7 @@ const templateUpdate = require("./scripts/template-update.js");
|
|
|
13
13
|
|
|
14
14
|
module.exports = {
|
|
15
15
|
MizTemplateCI: MizTemplateCI,
|
|
16
|
+
Mizlib: Mizlib,
|
|
16
17
|
build:build,
|
|
17
18
|
clean:clean,
|
|
18
19
|
ftpupload:ftpupload,
|
|
@@ -24,5 +25,4 @@ module.exports = {
|
|
|
24
25
|
nextversionPrepare:nextversionPrepare,
|
|
25
26
|
release:release,
|
|
26
27
|
templateUpdate:templateUpdate,
|
|
27
|
-
mizlib: mizlib,
|
|
28
28
|
};
|
package/lib/jtff-lib-ci.js
CHANGED
|
@@ -4,10 +4,12 @@ const fs = require("fs");
|
|
|
4
4
|
const path = require("path");
|
|
5
5
|
const { google } = require("googleapis");
|
|
6
6
|
const ftpClient = require('ftp');
|
|
7
|
+
const Mizlib = require("./mizlib");
|
|
7
8
|
|
|
8
9
|
class MizTemplateCI{
|
|
9
10
|
constructor(config) {
|
|
10
|
-
this.config = config
|
|
11
|
+
this.config = config;
|
|
12
|
+
this.mizlib = new Mizlib();
|
|
11
13
|
}
|
|
12
14
|
|
|
13
15
|
getVersion() {
|
package/lib/mizlib.js
CHANGED
|
@@ -1,336 +1,321 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
const jszip = require("jszip");
|
|
4
|
-
const lstat = promisify(fs.lstat);
|
|
5
4
|
const path = require("path");
|
|
6
5
|
const {format, parse} = require("lua-json");
|
|
7
6
|
const {promisify} = require("util");
|
|
7
|
+
const fs = require("fs");
|
|
8
|
+
const lstat = promisify(fs.lstat);
|
|
8
9
|
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
tObject['actions'] = {};
|
|
13
|
-
tObject['func'] = {};
|
|
14
|
-
tObject['conditions'] = {};
|
|
15
|
-
tObject['flag'] = {};
|
|
16
|
-
trObject = {};
|
|
10
|
+
class Mizlib {
|
|
11
|
+
constructor() {
|
|
12
|
+
// no need for initialization
|
|
17
13
|
}
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
14
|
+
|
|
15
|
+
injectLuaScriptsInMissionObject(tObject, trObject, mrObject, strTitle, scriptFilesArray, timingInSeconds, hexColor) {
|
|
16
|
+
let nextIndex = Object.keys(trObject).length + 1;
|
|
17
|
+
if (nextIndex === 1) {
|
|
18
|
+
tObject['actions'] = {};
|
|
19
|
+
tObject['func'] = {};
|
|
20
|
+
tObject['conditions'] = {};
|
|
21
|
+
tObject['flag'] = {};
|
|
22
|
+
trObject = {};
|
|
23
|
+
}
|
|
24
|
+
let actionSentence = "";
|
|
25
|
+
let actionsObject = {};
|
|
26
|
+
for (const [index, scriptFile] of scriptFilesArray.entries()) {
|
|
27
|
+
actionSentence += "a_do_script_file(getValueResourceByKey(\"" + scriptFile + "\")); "
|
|
28
|
+
actionsObject[index + 1] = {
|
|
29
|
+
file: scriptFile,
|
|
30
|
+
predicate: 'a_do_script_file',
|
|
31
|
+
};
|
|
32
|
+
mrObject[scriptFile] = scriptFile;
|
|
33
|
+
}
|
|
34
|
+
actionSentence += "mission.trig.func[" + nextIndex + "]=nil;"
|
|
35
|
+
tObject['actions'][nextIndex] = actionSentence;
|
|
36
|
+
tObject['func'][nextIndex] = "if mission.trig.conditions[" + nextIndex + "]() then mission.trig.actions[" + nextIndex + "]() end";
|
|
37
|
+
tObject['conditions'][nextIndex] = "return(c_time_after(" + timingInSeconds + ") )";
|
|
38
|
+
tObject['flag'][nextIndex] = true;
|
|
39
|
+
trObject[nextIndex] = {
|
|
40
|
+
rules: {
|
|
41
|
+
1: {
|
|
42
|
+
coalitionlist: 'red',
|
|
43
|
+
seconds: timingInSeconds,
|
|
44
|
+
predicate: 'c_time_after',
|
|
45
|
+
zone: ''
|
|
46
|
+
}
|
|
47
|
+
},
|
|
48
|
+
eventlist: '',
|
|
49
|
+
comment: strTitle,
|
|
50
|
+
actions: actionsObject,
|
|
51
|
+
predicate: 'triggerOnce',
|
|
52
|
+
colorItem: hexColor
|
|
25
53
|
};
|
|
26
|
-
mrObject
|
|
54
|
+
return {tObject: tObject, trObject: trObject, mrObject: mrObject};
|
|
27
55
|
}
|
|
28
|
-
actionSentence += "mission.trig.func[" + nextIndex + "]=nil;"
|
|
29
|
-
tObject['actions'][nextIndex] = actionSentence;
|
|
30
|
-
tObject['func'][nextIndex] = "if mission.trig.conditions[" + nextIndex + "]() then mission.trig.actions[" + nextIndex + "]() end";
|
|
31
|
-
tObject['conditions'][nextIndex] = "return(c_time_after(" + timingInSeconds + ") )";
|
|
32
|
-
tObject['flag'][nextIndex] = true;
|
|
33
|
-
trObject[nextIndex] = {
|
|
34
|
-
rules: {
|
|
35
|
-
1: {
|
|
36
|
-
coalitionlist: 'red',
|
|
37
|
-
seconds: timingInSeconds,
|
|
38
|
-
predicate: 'c_time_after',
|
|
39
|
-
zone: ''
|
|
40
|
-
}
|
|
41
|
-
},
|
|
42
|
-
eventlist: '',
|
|
43
|
-
comment: strTitle,
|
|
44
|
-
actions: actionsObject,
|
|
45
|
-
predicate: 'triggerOnce',
|
|
46
|
-
colorItem: hexColor
|
|
47
|
-
};
|
|
48
|
-
return { tObject: tObject, trObject: trObject, mrObject: mrObject };
|
|
49
|
-
}
|
|
50
56
|
|
|
51
|
-
async
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
}
|
|
56
|
-
|
|
57
|
-
async function mizUpdate(mizPath, copyPath, strTheatreSettings) {
|
|
58
|
-
const zip = await getZipObjectFromMizPath(mizPath);
|
|
59
|
-
injectLuaFilesFromFolderIntoZipObject(zip,'src');
|
|
60
|
-
injectLuaFilesFromFolderIntoZipObject(zip,'lib');
|
|
61
|
-
if (strTheatreSettings === null) {
|
|
62
|
-
// TODO: Inject fake data
|
|
63
|
-
console.log("NO THEATRE SPECIFIED. RADIO PRESETS WILL NOT BE AVAILABLE !");
|
|
64
|
-
} else {
|
|
65
|
-
await mizUpdateRadioPresets(zip, 'resources/radios/' + strTheatreSettings);
|
|
57
|
+
async getZipObjectFromMizPath(mizPath) {
|
|
58
|
+
var MizFile = new jszip();
|
|
59
|
+
const mizData = fs.readFileSync(mizPath);
|
|
60
|
+
return MizFile.loadAsync(mizData);
|
|
66
61
|
}
|
|
67
|
-
mizUpdateSettingsLuaFiles(zip, strTheatreSettings);
|
|
68
|
-
await mizUpdateSoundFolders(zip);
|
|
69
|
-
const inputZip = await zip.generateAsync({
|
|
70
|
-
type: 'nodebuffer',
|
|
71
|
-
streamFiles: true,
|
|
72
|
-
compression: "DEFLATE",
|
|
73
|
-
compressionOptions: {
|
|
74
|
-
level: 9
|
|
75
|
-
}
|
|
76
|
-
});
|
|
77
|
-
fs.writeFileSync(copyPath ? copyPath : mizPath, inputZip);
|
|
78
|
-
}
|
|
79
|
-
|
|
80
|
-
async function mizInjectMissionDataFile(mizPath, missionObject) {
|
|
81
|
-
const zip = await getZipObjectFromMizPath(mizPath);
|
|
82
|
-
mizUpdateMissionDataFile(zip, missionObject);
|
|
83
|
-
const inputZip = await zip.generateAsync({
|
|
84
|
-
type: 'nodebuffer',
|
|
85
|
-
streamFiles: true,
|
|
86
|
-
compression: "DEFLATE",
|
|
87
|
-
compressionOptions: {
|
|
88
|
-
level: 9
|
|
89
|
-
}
|
|
90
|
-
});
|
|
91
|
-
fs.writeFileSync(mizPath, inputZip);
|
|
92
|
-
}
|
|
93
62
|
|
|
94
|
-
async
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
63
|
+
async mizUpdate(mizPath, copyPath, strTheatreSettings) {
|
|
64
|
+
const zip = await this.getZipObjectFromMizPath(mizPath);
|
|
65
|
+
this.injectLuaFilesFromFolderIntoZipObject(zip, 'src');
|
|
66
|
+
this.injectLuaFilesFromFolderIntoZipObject(zip, 'lib');
|
|
67
|
+
if (strTheatreSettings === null) {
|
|
68
|
+
// TODO: Inject fake data
|
|
69
|
+
console.log("NO THEATRE SPECIFIED. RADIO PRESETS WILL NOT BE AVAILABLE !");
|
|
70
|
+
} else {
|
|
71
|
+
await this.mizUpdateRadioPresets(zip, 'resources/radios/' + strTheatreSettings);
|
|
103
72
|
}
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
73
|
+
this.mizUpdateSettingsLuaFiles(zip, strTheatreSettings);
|
|
74
|
+
await this.mizUpdateSoundFolders(zip);
|
|
75
|
+
const inputZip = await zip.generateAsync({
|
|
76
|
+
type: 'nodebuffer',
|
|
77
|
+
streamFiles: true,
|
|
78
|
+
compression: "DEFLATE",
|
|
79
|
+
compressionOptions: {
|
|
80
|
+
level: 9
|
|
81
|
+
}
|
|
82
|
+
});
|
|
83
|
+
fs.writeFileSync(copyPath ? copyPath : mizPath, inputZip);
|
|
84
|
+
}
|
|
107
85
|
|
|
108
|
-
async
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
86
|
+
async mizInjectMissionDataFile(mizPath, missionObject) {
|
|
87
|
+
const zip = await this.getZipObjectFromMizPath(mizPath);
|
|
88
|
+
this.mizUpdateMissionDataFile(zip, missionObject);
|
|
89
|
+
const inputZip = await zip.generateAsync({
|
|
90
|
+
type: 'nodebuffer',
|
|
91
|
+
streamFiles: true,
|
|
92
|
+
compression: "DEFLATE",
|
|
93
|
+
compressionOptions: {
|
|
94
|
+
level: 9
|
|
95
|
+
}
|
|
96
|
+
});
|
|
97
|
+
fs.writeFileSync(mizPath, inputZip);
|
|
114
98
|
}
|
|
115
|
-
}
|
|
116
99
|
|
|
100
|
+
async injectLuaSettingsFromFolderPathToMizPath(mizPath, settingsFolder) {
|
|
101
|
+
const zip = await this.getZipObjectFromMizPath(mizPath);
|
|
102
|
+
await this.injectLuaSettingsFromFolderPathToZipObject(zip, settingsFolder);
|
|
103
|
+
const outputZip = await zip.generateAsync({
|
|
104
|
+
type: 'nodebuffer',
|
|
105
|
+
streamFiles: true,
|
|
106
|
+
compression: "DEFLATE",
|
|
107
|
+
compressionOptions: {
|
|
108
|
+
level: 9
|
|
109
|
+
}
|
|
110
|
+
});
|
|
111
|
+
fs.writeFileSync(mizPath, outputZip);
|
|
112
|
+
}
|
|
117
113
|
|
|
118
|
-
async
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
compression: "DEFLATE",
|
|
125
|
-
compressionOptions: {
|
|
126
|
-
level: 9
|
|
114
|
+
async injectLuaSettingsFromFolderPathToZipObject(zip, settingsFolder) {
|
|
115
|
+
for (let file of fs.readdirSync(settingsFolder).filter(file => file.endsWith(".lua"))) {
|
|
116
|
+
this.injectFileIntoZipObject(zip, [
|
|
117
|
+
settingsFolder,
|
|
118
|
+
"/",
|
|
119
|
+
file].join(""));
|
|
127
120
|
}
|
|
128
|
-
}
|
|
129
|
-
fs.writeFileSync(mizPath, inputZip);
|
|
130
|
-
}
|
|
121
|
+
}
|
|
131
122
|
|
|
132
|
-
function injectFileIntoZipObject(zip, filePath) {
|
|
133
|
-
zip.remove("l10n/DEFAULT/" + path.basename(filePath));
|
|
134
|
-
var stream = fs.createReadStream(filePath);
|
|
135
|
-
zip.file("l10n/DEFAULT/" + path.basename(filePath), stream);
|
|
136
|
-
}
|
|
137
123
|
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
}
|
|
124
|
+
async mizInjectMapResourceFile(mizPath, mapResourceObject) {
|
|
125
|
+
const zip = await this.getZipObjectFromMizPath(mizPath);
|
|
126
|
+
this.mizUpdateMapResourceFile(zip, mapResourceObject);
|
|
127
|
+
const inputZip = await zip.generateAsync({
|
|
128
|
+
type: 'nodebuffer',
|
|
129
|
+
streamFiles: true,
|
|
130
|
+
compression: "DEFLATE",
|
|
131
|
+
compressionOptions: {
|
|
132
|
+
level: 9
|
|
133
|
+
}
|
|
134
|
+
});
|
|
135
|
+
fs.writeFileSync(mizPath, inputZip);
|
|
136
|
+
}
|
|
149
137
|
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
.slice(1, -1)
|
|
156
|
-
.join('\n')
|
|
157
|
-
.slice(0, -1)
|
|
158
|
-
.replace(/\[\"(\d+)\"\] = /g, "[$1] = ");
|
|
159
|
-
zip.file("l10n/DEFAULT/mapResource", mapResourceLuaT);
|
|
160
|
-
}
|
|
138
|
+
injectFileIntoZipObject(zip, filePath) {
|
|
139
|
+
zip.remove("l10n/DEFAULT/" + path.basename(filePath));
|
|
140
|
+
var stream = fs.createReadStream(filePath);
|
|
141
|
+
zip.file("l10n/DEFAULT/" + path.basename(filePath), stream);
|
|
142
|
+
}
|
|
161
143
|
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
}
|
|
144
|
+
mizUpdateMissionDataFile(zip, missionObject) {
|
|
145
|
+
zip.remove("mission");
|
|
146
|
+
let missionLuaT = format(missionObject, {singleQuote: false})
|
|
147
|
+
missionLuaT = missionLuaT
|
|
148
|
+
.split('\n')
|
|
149
|
+
.slice(1, -1)
|
|
150
|
+
.join('\n')
|
|
151
|
+
.slice(0, -1)
|
|
152
|
+
.replace(/\[\"(\d+)\"\] = /g, "[$1] = ");
|
|
153
|
+
zip.file("mission", missionLuaT);
|
|
154
|
+
}
|
|
165
155
|
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
}
|
|
156
|
+
mizUpdateMapResourceFile(zip, mapResourceObject) {
|
|
157
|
+
zip.remove("l10n/DEFAULT/mapResource");
|
|
158
|
+
let mapResourceLuaT = format(mapResourceObject, {singleQuote: false})
|
|
159
|
+
mapResourceLuaT = mapResourceLuaT
|
|
160
|
+
.split('\n')
|
|
161
|
+
.slice(1, -1)
|
|
162
|
+
.join('\n')
|
|
163
|
+
.slice(0, -1)
|
|
164
|
+
.replace(/\[\"(\d+)\"\] = /g, "[$1] = ");
|
|
165
|
+
zip.file("l10n/DEFAULT/mapResource", mapResourceLuaT);
|
|
166
|
+
}
|
|
169
167
|
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
168
|
+
getMissionLuaStringFromZipObject(zipStream) {
|
|
169
|
+
return zipStream.file("mission").async("string");
|
|
170
|
+
}
|
|
171
|
+
|
|
172
|
+
getMapResourceLuaStringFromZipObject(zipStream) {
|
|
173
|
+
return zipStream.file("l10n/DEFAULT/mapResource").async("string");
|
|
174
|
+
}
|
|
175
|
+
|
|
176
|
+
injectLuaFilesFromFolderIntoZipObject(zip, folderPath) {
|
|
177
|
+
for (let file of fs.readdirSync(folderPath).filter(file => file.endsWith(".lua"))) {
|
|
178
|
+
console.log('injecting up2date ' + folderPath + '/' + file + ' file in archive');
|
|
179
|
+
this.injectFileIntoZipObject(zip, folderPath + "/" + file);
|
|
180
|
+
}
|
|
181
|
+
;
|
|
182
|
+
}
|
|
176
183
|
|
|
177
184
|
|
|
178
|
-
async
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
185
|
+
async mizUpdateRadioPresets(zip, preset_folder) {
|
|
186
|
+
// Create folder Avionics to make sure it exists then delete it to remove any old preset in the template
|
|
187
|
+
// Allows adding presets for A-10C
|
|
188
|
+
zip.folder("Avionics");
|
|
189
|
+
zip.remove("Avionics");
|
|
183
190
|
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
191
|
+
const mission_object = await this.getMissionObjectFromZipObject(zip);
|
|
192
|
+
for (let file of fs.readdirSync(preset_folder).filter(file => file.endsWith(".lua"))) {
|
|
193
|
+
const file_data = fs.readFileSync(preset_folder + '/' + file).toString();
|
|
194
|
+
const lua_string = file_data.substring(0, file_data.indexOf("radio_descriptor_table =") - 1);
|
|
195
|
+
const radio_descriptor_table = parse("return {" + lua_string + "}").descriptor;
|
|
189
196
|
|
|
190
|
-
|
|
191
|
-
|
|
197
|
+
console.log('updating radio presets (aircraft: ' + radio_descriptor_table["aircraft"] + ', group_name: ' + radio_descriptor_table["group_name"] + ') with preset in ' + preset_folder + ' folder');
|
|
198
|
+
const dcs_radio_presets = file_data.substring(file_data.indexOf("radio_descriptor_table =") + 24);
|
|
192
199
|
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
200
|
+
for (const coalition_key in mission_object.coalition) {
|
|
201
|
+
const coalition = mission_object.coalition[coalition_key];
|
|
202
|
+
for (const country_list_key in coalition) {
|
|
203
|
+
if (country_list_key != "country") continue;
|
|
204
|
+
const country_list = coalition[country_list_key];
|
|
205
|
+
for (const country_key in country_list) {
|
|
206
|
+
const country = country_list[country_key];
|
|
207
|
+
for (const plane_key in country["plane"]) {
|
|
208
|
+
const plane = country["plane"][plane_key];
|
|
209
|
+
for (const group_key in plane) {
|
|
210
|
+
const group = plane[group_key];
|
|
211
|
+
if (group["name"].match(radio_descriptor_table["group_name"]) == null) continue;
|
|
212
|
+
for (const unit_key in group) {
|
|
213
|
+
if (unit_key != "units") continue;
|
|
214
|
+
const unit = group[unit_key];
|
|
215
|
+
for (const sub_unit_key in unit) {
|
|
216
|
+
const sub_unit = unit[sub_unit_key];
|
|
217
|
+
if (sub_unit["skill"] != "Client") continue;
|
|
218
|
+
// Aircraft is an A10CII, use A10C mode by creating files in the root with the unit id
|
|
219
|
+
// if (radio_descriptor_table["aircraft"] == 'A-10C_2') {
|
|
220
|
+
// const unit_id = sub_unit["unitId"];
|
|
221
|
+
// ["UHF_RADIO", "VHF_AM_RADIO", "VHF_FM_RADIO"].forEach(folder => {
|
|
222
|
+
// var zip_folder = zip.folder("Avionics/A-10C_2/" + unit_id + "/" + folder);
|
|
223
|
+
// var file = parse("return " + dcs_radio_presets)[folder];
|
|
224
|
+
// file = format(file, { singleQuote: false });
|
|
225
|
+
// file = file
|
|
226
|
+
// .split('\n')
|
|
227
|
+
// .slice(1, -1)
|
|
228
|
+
// .join('\n')
|
|
229
|
+
// .slice(0, -1)
|
|
230
|
+
// .replace(/\[\"(\d+)\"\] = /g, "[$1] = ");
|
|
231
|
+
// zip_folder.file("SETTINGS.lua", file);
|
|
232
|
+
// });
|
|
233
|
+
// continue;
|
|
234
|
+
// }
|
|
235
|
+
if (sub_unit["type"] != radio_descriptor_table["aircraft"]) continue;
|
|
236
|
+
// GROUP FOUND, SET RADIOS
|
|
237
|
+
sub_unit["Radio"] = parse("return " + dcs_radio_presets)
|
|
238
|
+
}
|
|
231
239
|
}
|
|
232
240
|
}
|
|
233
241
|
}
|
|
234
242
|
}
|
|
235
243
|
}
|
|
236
244
|
}
|
|
237
|
-
}
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
}
|
|
245
|
+
};
|
|
246
|
+
this.mizUpdateMissionDataFile(zip, {mission: mission_object});
|
|
247
|
+
}
|
|
241
248
|
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
249
|
+
mizUpdateSettingsLuaFiles(zip, strTheatre) {
|
|
250
|
+
for (let file of fs.readdirSync('settings/' + strTheatre).filter(file => file.endsWith(".lua"))) {
|
|
251
|
+
console.log('updating settings/' + strTheatre + '/' + file + ' file in miz file');
|
|
252
|
+
this.injectFileIntoZipObject(zip, 'settings/' + strTheatre + '/' + file);
|
|
253
|
+
}
|
|
254
|
+
;
|
|
255
|
+
}
|
|
248
256
|
|
|
249
|
-
async
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
257
|
+
async mizUpdateSoundFolders(zip) {
|
|
258
|
+
if (fs.existsSync('resources/sounds') && fs.lstatSync('resources/sounds').isDirectory()) {
|
|
259
|
+
const folderArray = fs.readdirSync('resources/sounds');
|
|
260
|
+
for (const folder of folderArray) {
|
|
261
|
+
await this.mizUpdateSingleSoundFolder(zip, folder);
|
|
262
|
+
}
|
|
254
263
|
}
|
|
255
264
|
}
|
|
256
|
-
}
|
|
257
265
|
|
|
258
|
-
async
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
266
|
+
async mizUpdateSingleSoundFolder(zip, folder) {
|
|
267
|
+
if (fs.existsSync('resources/sounds/' + folder) && fs.lstatSync('resources/sounds/' + folder).isDirectory()) {
|
|
268
|
+
console.log('adding sound files from resources/sounds/' + folder + ' folder...');
|
|
269
|
+
zip = zip.remove(folder).folder(folder);
|
|
270
|
+
await this.addFilesToZip(zip, 'resources/sounds/' + folder, fs.readdirSync('resources/sounds/' + folder));
|
|
271
|
+
}
|
|
263
272
|
}
|
|
264
|
-
}
|
|
265
273
|
|
|
266
|
-
async
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
274
|
+
async addFilesToZip(zip, directoryPath, filesToInclude) {
|
|
275
|
+
const promiseArr = await filesToInclude.map(async file => {
|
|
276
|
+
const filePath = path.join(directoryPath, file)
|
|
277
|
+
try {
|
|
278
|
+
const fileStats = await lstat(filePath)
|
|
279
|
+
const isDirectory = fileStats.isDirectory()
|
|
280
|
+
if (isDirectory) {
|
|
281
|
+
const directory = zip.remove(file).folder(file)
|
|
282
|
+
const subFiles = fs.readdirSync(filePath)
|
|
283
|
+
return this.addFilesToZip(directory, filePath, subFiles)
|
|
284
|
+
} else {
|
|
285
|
+
// console.log('added file : '+file);
|
|
286
|
+
return zip.file(file, fs.createReadStream(filePath))
|
|
287
|
+
}
|
|
288
|
+
} catch (err) {
|
|
289
|
+
console.log(err)
|
|
290
|
+
return Promise.resolve()
|
|
279
291
|
}
|
|
280
|
-
}
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
}
|
|
284
|
-
})
|
|
285
|
-
return Promise.all(promiseArr)
|
|
286
|
-
}
|
|
292
|
+
})
|
|
293
|
+
return Promise.all(promiseArr)
|
|
294
|
+
}
|
|
287
295
|
|
|
288
|
-
async
|
|
289
|
-
|
|
290
|
-
}
|
|
296
|
+
async copyMiz(srcMizPath, dstMizPath) {
|
|
297
|
+
await fs.createReadStream(srcMizPath).pipe(fs.createWriteStream(dstMizPath));
|
|
298
|
+
}
|
|
291
299
|
|
|
292
|
-
async
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
}
|
|
300
|
+
async getMissionObjectFromMizPath(MizPath) {
|
|
301
|
+
let luaTable = 'return { \n' + await this.getMissionLuaStringFromZipObject(await this.getZipObjectFromMizPath(MizPath)) + ' }';
|
|
302
|
+
return parse(luaTable).mission;
|
|
303
|
+
}
|
|
296
304
|
|
|
297
|
-
async
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
}
|
|
305
|
+
async getMissionObjectFromZipObject(zip) {
|
|
306
|
+
let luaTable = 'return { \n' + await this.getMissionLuaStringFromZipObject(zip) + ' }';
|
|
307
|
+
return parse(luaTable).mission;
|
|
308
|
+
}
|
|
301
309
|
|
|
302
|
-
async
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
}
|
|
310
|
+
async getMapResourceObjectFromMizPath(MizPath) {
|
|
311
|
+
let luaTable = 'return { \n' + await this.getMapResourceLuaStringFromZipObject(await this.getZipObjectFromMizPath(MizPath)) + ' }';
|
|
312
|
+
return parse(luaTable).mapResource;
|
|
313
|
+
}
|
|
306
314
|
|
|
307
|
-
async
|
|
308
|
-
|
|
309
|
-
|
|
315
|
+
async getMapResourceObjectFromZipObject(zip) {
|
|
316
|
+
let luaTable = 'return { \n' + await this.getMapResourceLuaStringFromZipObject(zip) + ' }';
|
|
317
|
+
return parse(luaTable).mapResource;
|
|
318
|
+
}
|
|
310
319
|
}
|
|
311
320
|
|
|
312
|
-
module.exports =
|
|
313
|
-
injectLuaScriptsInMissionObject: injectLuaScriptsInMissionObject,
|
|
314
|
-
getZipObjectFromMizPath: getZipObjectFromMizPath,
|
|
315
|
-
mizUpdate: mizUpdate,
|
|
316
|
-
mizInjectMissionDataFile: mizInjectMissionDataFile,
|
|
317
|
-
injectLuaSettingsFromFolderPathToMizPath: injectLuaSettingsFromFolderPathToMizPath,
|
|
318
|
-
injectLuaSettingsFromFolderPathToZipObject: injectLuaSettingsFromFolderPathToZipObject,
|
|
319
|
-
mizInjectMapResourceFile: mizInjectMapResourceFile,
|
|
320
|
-
injectFileIntoZipObject: injectFileIntoZipObject,
|
|
321
|
-
mizUpdateMissionDataFile: mizUpdateMissionDataFile,
|
|
322
|
-
mizUpdateMapResourceFile: mizUpdateMapResourceFile,
|
|
323
|
-
getMissionLuaStringFromZipObject: getMissionLuaStringFromZipObject,
|
|
324
|
-
getMapResourceLuaStringFromZipObject: getMapResourceLuaStringFromZipObject,
|
|
325
|
-
mizUpdateRadioPresets: mizUpdateRadioPresets,
|
|
326
|
-
mizUpdateSettingsLuaFiles: mizUpdateSettingsLuaFiles,
|
|
327
|
-
mizUpdateSoundFolders: mizUpdateSoundFolders,
|
|
328
|
-
mizUpdateSingleSoundFolder: mizUpdateSingleSoundFolder,
|
|
329
|
-
addFilesToZip: addFilesToZip,
|
|
330
|
-
copyMiz: copyMiz,
|
|
331
|
-
getMissionObjectFromMizPath: getMissionObjectFromMizPath,
|
|
332
|
-
getMissionObjectFromZipObject: getMissionObjectFromZipObject,
|
|
333
|
-
getMapResourceObjectFromMizPath: getMapResourceObjectFromMizPath,
|
|
334
|
-
getMapResourceObjectFromZipObject: getMapResourceObjectFromZipObject,
|
|
335
|
-
injectLuaFilesFromFolderIntoZipObject: injectLuaFilesFromFolderIntoZipObject
|
|
336
|
-
};
|
|
321
|
+
module.exports = Mizlib
|
package/package.json
CHANGED
package/scripts/build.js
CHANGED
|
@@ -1,10 +1,9 @@
|
|
|
1
1
|
const fs = require("fs");
|
|
2
|
-
const mizlib = require("./lib/mizlib.js");
|
|
3
2
|
|
|
4
3
|
function build(jtffci) {
|
|
5
4
|
fs.mkdirSync(jtffci.config.general.missionFolder, { recursive: true });
|
|
6
5
|
jtffci.config.missionTemplates.forEach(async missionTemplate => {
|
|
7
|
-
await mizlib.mizUpdate([
|
|
6
|
+
await this.mizlib.mizUpdate([
|
|
8
7
|
missionTemplate.prefix,
|
|
9
8
|
'_',
|
|
10
9
|
missionTemplate.theatre,
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
const fs = require('fs');
|
|
2
2
|
const path = require("path");
|
|
3
3
|
const prompt = require('prompt');
|
|
4
|
-
const mizlib = require("./lib/mizlib.js");
|
|
5
4
|
|
|
6
5
|
function injectScripts(jtffci, env_mission) {
|
|
7
6
|
// create mission folder in dist (general) folder
|
|
@@ -121,13 +120,13 @@ function injectScripts(jtffci, env_mission) {
|
|
|
121
120
|
console.log(' inject_radio_presets scripts: ' + (/^y\b|o\b|yes\b|oui\b/i).test(prompt_result.inject_radio_presets));
|
|
122
121
|
|
|
123
122
|
// open the miz input file for reading
|
|
124
|
-
const mizObject = await mizlib.getZipObjectFromMizPath(env_mission);
|
|
123
|
+
const mizObject = await jtffci.mizlib.getZipObjectFromMizPath(env_mission);
|
|
125
124
|
// inject all the lua files in the src folder into the source zip object
|
|
126
|
-
mizlib.injectLuaFilesFromFolderIntoZipObject(mizObject, "src");
|
|
125
|
+
jtffci.mizlib.injectLuaFilesFromFolderIntoZipObject(mizObject, "src");
|
|
127
126
|
// inject all the lua files in the lib folder into the source zip object
|
|
128
|
-
mizlib.injectLuaFilesFromFolderIntoZipObject(mizObject, "lib");
|
|
127
|
+
jtffci.mizlib.injectLuaFilesFromFolderIntoZipObject(mizObject, "lib");
|
|
129
128
|
// injection des fichiers son Généraux si repertoire resources/sounds/General present
|
|
130
|
-
await mizlib.mizUpdateSingleSoundFolder(mizObject, 'General');
|
|
129
|
+
await jtffci.mizlib.mizUpdateSingleSoundFolder(mizObject, 'General');
|
|
131
130
|
// On fait une sauvegarde dans le folder de destination
|
|
132
131
|
// fs.writeFileSync([
|
|
133
132
|
// jtffci.config.general.missionFolder,
|
|
@@ -146,7 +145,7 @@ function injectScripts(jtffci, env_mission) {
|
|
|
146
145
|
// })
|
|
147
146
|
// );
|
|
148
147
|
// injection des fichiers son Misc si repertoire resources/sounds/Misc present
|
|
149
|
-
await mizlib.mizUpdateSingleSoundFolder(mizObject, 'Misc');
|
|
148
|
+
await jtffci.mizlib.mizUpdateSingleSoundFolder(mizObject, 'Misc');
|
|
150
149
|
// On fait une sauvegarde dans le folder de destination
|
|
151
150
|
// fs.writeFileSync([
|
|
152
151
|
// jtffci.config.general.missionFolder,
|
|
@@ -164,8 +163,8 @@ function injectScripts(jtffci, env_mission) {
|
|
|
164
163
|
// }
|
|
165
164
|
// })
|
|
166
165
|
// );
|
|
167
|
-
const missionObject = await mizlib.getMissionObjectFromZipObject(mizObject);
|
|
168
|
-
let mapResourceObject = await mizlib.getMapResourceObjectFromZipObject(mizObject);
|
|
166
|
+
const missionObject = await jtffci.mizlib.getMissionObjectFromZipObject(mizObject);
|
|
167
|
+
let mapResourceObject = await jtffci.mizlib.getMapResourceObjectFromZipObject(mizObject);
|
|
169
168
|
let settingsArray = [];
|
|
170
169
|
if (Array.isArray(mapResourceObject)) {
|
|
171
170
|
if (mapResourceObject.length === 0) {
|
|
@@ -173,7 +172,7 @@ function injectScripts(jtffci, env_mission) {
|
|
|
173
172
|
}
|
|
174
173
|
}
|
|
175
174
|
// injection SplashDamage
|
|
176
|
-
let tuple = mizlib.injectLuaScriptsInMissionObject(
|
|
175
|
+
let tuple = jtffci.mizlib.injectLuaScriptsInMissionObject(
|
|
177
176
|
missionObject['trig'],
|
|
178
177
|
missionObject['trigrules'],
|
|
179
178
|
mapResourceObject,
|
|
@@ -186,7 +185,7 @@ function injectScripts(jtffci, env_mission) {
|
|
|
186
185
|
missionObject['trigrules'] = tuple.trObject;
|
|
187
186
|
mapResourceObject = tuple.mrObject;
|
|
188
187
|
// injection Moose
|
|
189
|
-
tuple = mizlib.injectLuaScriptsInMissionObject(
|
|
188
|
+
tuple = jtffci.mizlib.injectLuaScriptsInMissionObject(
|
|
190
189
|
missionObject['trig'],
|
|
191
190
|
missionObject['trigrules'],
|
|
192
191
|
mapResourceObject,
|
|
@@ -199,7 +198,7 @@ function injectScripts(jtffci, env_mission) {
|
|
|
199
198
|
missionObject['trigrules'] = tuple.trObject;
|
|
200
199
|
mapResourceObject = tuple.mrObject;
|
|
201
200
|
// injection Mist
|
|
202
|
-
tuple = mizlib.injectLuaScriptsInMissionObject(
|
|
201
|
+
tuple = jtffci.mizlib.injectLuaScriptsInMissionObject(
|
|
203
202
|
missionObject['trig'],
|
|
204
203
|
missionObject['trigrules'],
|
|
205
204
|
mapResourceObject,
|
|
@@ -212,7 +211,7 @@ function injectScripts(jtffci, env_mission) {
|
|
|
212
211
|
missionObject['trigrules'] = tuple.trObject;
|
|
213
212
|
mapResourceObject = tuple.mrObject;
|
|
214
213
|
// injection Skynet
|
|
215
|
-
tuple = mizlib.injectLuaScriptsInMissionObject(
|
|
214
|
+
tuple = jtffci.mizlib.injectLuaScriptsInMissionObject(
|
|
216
215
|
missionObject['trig'],
|
|
217
216
|
missionObject['trigrules'],
|
|
218
217
|
mapResourceObject,
|
|
@@ -233,7 +232,7 @@ function injectScripts(jtffci, env_mission) {
|
|
|
233
232
|
file: "settings-global.lua",
|
|
234
233
|
},
|
|
235
234
|
);
|
|
236
|
-
tuple = mizlib.injectLuaScriptsInMissionObject(
|
|
235
|
+
tuple = jtffci.mizlib.injectLuaScriptsInMissionObject(
|
|
237
236
|
missionObject['trig'],
|
|
238
237
|
missionObject['trigrules'],
|
|
239
238
|
mapResourceObject,
|
|
@@ -247,7 +246,7 @@ function injectScripts(jtffci, env_mission) {
|
|
|
247
246
|
mapResourceObject = tuple.mrObject;
|
|
248
247
|
|
|
249
248
|
// injection de la gestion des Set_Clients
|
|
250
|
-
tuple = mizlib.injectLuaScriptsInMissionObject(
|
|
249
|
+
tuple = jtffci.mizlib.injectLuaScriptsInMissionObject(
|
|
251
250
|
missionObject['trig'],
|
|
252
251
|
missionObject['trigrules'],
|
|
253
252
|
mapResourceObject,
|
|
@@ -271,7 +270,7 @@ function injectScripts(jtffci, env_mission) {
|
|
|
271
270
|
objectName: "OnDemandTankersConfig"
|
|
272
271
|
},
|
|
273
272
|
);
|
|
274
|
-
tuple = mizlib.injectLuaScriptsInMissionObject(
|
|
273
|
+
tuple = jtffci.mizlib.injectLuaScriptsInMissionObject(
|
|
275
274
|
missionObject['trig'],
|
|
276
275
|
missionObject['trigrules'],
|
|
277
276
|
mapResourceObject,
|
|
@@ -286,7 +285,7 @@ function injectScripts(jtffci, env_mission) {
|
|
|
286
285
|
}
|
|
287
286
|
if ((/^y\b|o\b|yes\b|oui\b/i).test(prompt_result.inject_airboss)) {
|
|
288
287
|
// injection des fichiers son Airboss
|
|
289
|
-
// await mizlib.mizUpdateSingleSoundFolder(mizObject, 'AIRBOSS');
|
|
288
|
+
// await jtffci.mizlib.mizUpdateSingleSoundFolder(mizObject, 'AIRBOSS');
|
|
290
289
|
settingsArray.push(
|
|
291
290
|
{
|
|
292
291
|
file: "settings-airboss.lua",
|
|
@@ -297,7 +296,7 @@ function injectScripts(jtffci, env_mission) {
|
|
|
297
296
|
objectName: "PedrosConfig"
|
|
298
297
|
},
|
|
299
298
|
);
|
|
300
|
-
tuple = mizlib.injectLuaScriptsInMissionObject(
|
|
299
|
+
tuple = jtffci.mizlib.injectLuaScriptsInMissionObject(
|
|
301
300
|
missionObject['trig'],
|
|
302
301
|
missionObject['trigrules'],
|
|
303
302
|
mapResourceObject,
|
|
@@ -317,7 +316,7 @@ function injectScripts(jtffci, env_mission) {
|
|
|
317
316
|
objectName: "BeaconsConfig"
|
|
318
317
|
},
|
|
319
318
|
);
|
|
320
|
-
tuple = mizlib.injectLuaScriptsInMissionObject(
|
|
319
|
+
tuple = jtffci.mizlib.injectLuaScriptsInMissionObject(
|
|
321
320
|
missionObject['trig'],
|
|
322
321
|
missionObject['trigrules'],
|
|
323
322
|
mapResourceObject,
|
|
@@ -341,7 +340,7 @@ function injectScripts(jtffci, env_mission) {
|
|
|
341
340
|
objectName: "AwacsOnDemandConfig"
|
|
342
341
|
},
|
|
343
342
|
);
|
|
344
|
-
tuple = mizlib.injectLuaScriptsInMissionObject(
|
|
343
|
+
tuple = jtffci.mizlib.injectLuaScriptsInMissionObject(
|
|
345
344
|
missionObject['trig'],
|
|
346
345
|
missionObject['trigrules'],
|
|
347
346
|
mapResourceObject,
|
|
@@ -356,14 +355,14 @@ function injectScripts(jtffci, env_mission) {
|
|
|
356
355
|
}
|
|
357
356
|
if ((/^y\b|o\b|yes\b|oui\b/i).test(prompt_result.inject_atis)) {
|
|
358
357
|
// injection des fichiers son ATIS
|
|
359
|
-
// await mizlib.mizUpdateSingleSoundFolder(mizObject, 'ATIS');
|
|
358
|
+
// await jtffci.mizlib.mizUpdateSingleSoundFolder(mizObject, 'ATIS');
|
|
360
359
|
settingsArray.push(
|
|
361
360
|
{
|
|
362
361
|
file: "settings-atis.lua",
|
|
363
362
|
objectName: "AtisConfig"
|
|
364
363
|
},
|
|
365
364
|
);
|
|
366
|
-
tuple = mizlib.injectLuaScriptsInMissionObject(
|
|
365
|
+
tuple = jtffci.mizlib.injectLuaScriptsInMissionObject(
|
|
367
366
|
missionObject['trig'],
|
|
368
367
|
missionObject['trigrules'],
|
|
369
368
|
mapResourceObject,
|
|
@@ -399,7 +398,7 @@ function injectScripts(jtffci, env_mission) {
|
|
|
399
398
|
objectName: "InterceptConfig"
|
|
400
399
|
},
|
|
401
400
|
);
|
|
402
|
-
tuple = mizlib.injectLuaScriptsInMissionObject(
|
|
401
|
+
tuple = jtffci.mizlib.injectLuaScriptsInMissionObject(
|
|
403
402
|
missionObject['trig'],
|
|
404
403
|
missionObject['trigrules'],
|
|
405
404
|
mapResourceObject,
|
|
@@ -414,14 +413,14 @@ function injectScripts(jtffci, env_mission) {
|
|
|
414
413
|
}
|
|
415
414
|
if ((/^y\b|o\b|yes\b|oui\b/i).test(prompt_result.inject_Logistics)) {
|
|
416
415
|
// injection des fichiers son CTLD
|
|
417
|
-
await mizlib.mizUpdateSingleSoundFolder(mizObject, 'CTLD');
|
|
416
|
+
await jtffci.mizlib.mizUpdateSingleSoundFolder(mizObject, 'CTLD');
|
|
418
417
|
settingsArray.push(
|
|
419
418
|
{
|
|
420
419
|
file: "settings-logistics.lua",
|
|
421
420
|
objectName: "CTLDConfig"
|
|
422
421
|
},
|
|
423
422
|
);
|
|
424
|
-
tuple = mizlib.injectLuaScriptsInMissionObject(
|
|
423
|
+
tuple = jtffci.mizlib.injectLuaScriptsInMissionObject(
|
|
425
424
|
missionObject['trig'],
|
|
426
425
|
missionObject['trigrules'],
|
|
427
426
|
mapResourceObject,
|
|
@@ -436,7 +435,7 @@ function injectScripts(jtffci, env_mission) {
|
|
|
436
435
|
}
|
|
437
436
|
if ((/^y\b|o\b|yes\b|oui\b/i).test(prompt_result.inject_A2G)) {
|
|
438
437
|
// injection des fichiers son Range
|
|
439
|
-
// await mizlib.mizUpdateSingleSoundFolder(mizObject, 'RANGE');
|
|
438
|
+
// await jtffci.mizlib.mizUpdateSingleSoundFolder(mizObject, 'RANGE');
|
|
440
439
|
settingsArray.push(
|
|
441
440
|
{
|
|
442
441
|
file: "settings-ranges.lua",
|
|
@@ -463,7 +462,7 @@ function injectScripts(jtffci, env_mission) {
|
|
|
463
462
|
objectName: "SkynetConfig"
|
|
464
463
|
},
|
|
465
464
|
);
|
|
466
|
-
tuple = mizlib.injectLuaScriptsInMissionObject(
|
|
465
|
+
tuple = jtffci.mizlib.injectLuaScriptsInMissionObject(
|
|
467
466
|
missionObject['trig'],
|
|
468
467
|
missionObject['trigrules'],
|
|
469
468
|
mapResourceObject,
|
|
@@ -485,7 +484,7 @@ function injectScripts(jtffci, env_mission) {
|
|
|
485
484
|
// "/src/200-mission.lua"
|
|
486
485
|
// ].join("")
|
|
487
486
|
// );
|
|
488
|
-
// const zip = await mizlib.getZipObjectFromMizPath([
|
|
487
|
+
// const zip = await jtffci.mizlib.getZipObjectFromMizPath([
|
|
489
488
|
// jtffci.config.general.missionFolder,
|
|
490
489
|
// "/",
|
|
491
490
|
// path.parse(env_mission).name,
|
|
@@ -493,7 +492,7 @@ function injectScripts(jtffci, env_mission) {
|
|
|
493
492
|
// path.basename(env_mission)
|
|
494
493
|
// ].join(""));
|
|
495
494
|
//
|
|
496
|
-
// mizlib.injectFileIntoZipObject(zip, [
|
|
495
|
+
// jtffci.mizlib.injectFileIntoZipObject(zip, [
|
|
497
496
|
// jtffci.config.general.missionFolder,
|
|
498
497
|
// "/",
|
|
499
498
|
// path.parse(env_mission).name,
|
|
@@ -516,7 +515,7 @@ function injectScripts(jtffci, env_mission) {
|
|
|
516
515
|
// path.basename(env_mission)
|
|
517
516
|
// ].join(""),
|
|
518
517
|
// inputZip);
|
|
519
|
-
tuple = mizlib.injectLuaScriptsInMissionObject(
|
|
518
|
+
tuple = jtffci.mizlib.injectLuaScriptsInMissionObject(
|
|
520
519
|
missionObject['trig'],
|
|
521
520
|
missionObject['trigrules'],
|
|
522
521
|
mapResourceObject,
|
|
@@ -538,7 +537,7 @@ function injectScripts(jtffci, env_mission) {
|
|
|
538
537
|
"/",
|
|
539
538
|
path.basename(env_mission)
|
|
540
539
|
].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);
|
|
540
|
+
await jtffci.mizlib.mizUpdateRadioPresets(mizObject, 'resources/radios/' + path.parse(env_mission).name);
|
|
542
541
|
}
|
|
543
542
|
//injection du trigger des settings
|
|
544
543
|
for (let settingsObject of settingsArray) {
|
|
@@ -556,7 +555,7 @@ function injectScripts(jtffci, env_mission) {
|
|
|
556
555
|
].join("")
|
|
557
556
|
);
|
|
558
557
|
}
|
|
559
|
-
await mizlib.injectLuaSettingsFromFolderPathToZipObject(mizObject,
|
|
558
|
+
await jtffci.mizlib.injectLuaSettingsFromFolderPathToZipObject(mizObject,
|
|
560
559
|
[
|
|
561
560
|
jtffci.config.general.missionFolder,
|
|
562
561
|
"/",
|
|
@@ -565,7 +564,7 @@ function injectScripts(jtffci, env_mission) {
|
|
|
565
564
|
].join("")
|
|
566
565
|
);
|
|
567
566
|
if (settingsArray.length > 0) {
|
|
568
|
-
tuple = mizlib.injectLuaScriptsInMissionObject(
|
|
567
|
+
tuple = jtffci.mizlib.injectLuaScriptsInMissionObject(
|
|
569
568
|
missionObject['trig'],
|
|
570
569
|
missionObject['trigrules'],
|
|
571
570
|
mapResourceObject,
|
|
@@ -579,7 +578,7 @@ function injectScripts(jtffci, env_mission) {
|
|
|
579
578
|
mapResourceObject = tuple.mrObject;
|
|
580
579
|
}
|
|
581
580
|
// Sauvegarde de la mission avec scripts injectés
|
|
582
|
-
await mizlib.mizInjectMissionDataFile(
|
|
581
|
+
await jtffci.mizlib.mizInjectMissionDataFile(
|
|
583
582
|
[
|
|
584
583
|
jtffci.config.general.missionFolder,
|
|
585
584
|
"/",
|
|
@@ -589,7 +588,7 @@ function injectScripts(jtffci, env_mission) {
|
|
|
589
588
|
].join(""),
|
|
590
589
|
{ mission: missionObject }
|
|
591
590
|
);
|
|
592
|
-
await mizlib.mizInjectMapResourceFile(
|
|
591
|
+
await jtffci.mizlib.mizInjectMapResourceFile(
|
|
593
592
|
[
|
|
594
593
|
jtffci.config.general.missionFolder,
|
|
595
594
|
"/",
|
|
@@ -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 mizlib.mizUpdate([
|
|
6
|
+
await this.mizlib.mizUpdate([
|
|
7
7
|
missionTemplate.prefix,
|
|
8
8
|
'_',
|
|
9
9
|
missionTemplate.theatre,
|