-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathextract.js
69 lines (59 loc) · 1.68 KB
/
extract.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
require("dotenv").config();
const { FileProvider, FGuid, Ue4Version, Oodle } = require("unreal.js");
const fs = require("fs-extra");
const GAMEPATH = process.env.PAKS_FOLDER;
const AES_KEY = process.env.AES_KEY;
const folderPatch = "./gamefiles/";
(async () => {
await Oodle.downloadDLL();
const provider = new FileProvider(GAMEPATH, Ue4Version.GAME_UE4_27);
provider.mappingsProvider.reload();
provider.ioStoreTocReadOptions = 0;
await provider.initialize();
await provider.submitKey(FGuid.mainGuid, AES_KEY);
let techTreeFiles = provider.files.filter(
(file) => file.path && file.path.includes("Content/Mist/Data/TechTree")
);
if (techTreeFiles) {
techTreeFiles.each((file) => {
let package = provider.loadGameFile(file);
console.log(package.toJson());
/*
let path = file.getPathWithoutExtension().trim();
fs.outputFile(
folderPatch + path + ".json",
pkg.toString(),
function (err) {
if (err) {
console.error(err);
}
}
);
*/
});
}
let itemsFiles = provider.files.filter(
(file) => file.path && file.path.includes("Content/Mist/Data/Items")
);
const saveGameFiles = (files) => {
if (files) {
files.each((file) => {
let buffer = provider.saveGameFile(file);
console.log(buffer.toString());
/*
let path = file.getPathWithoutExtension().trim();
fs.outputFile(
folderPatch + path + ".json",
pkg.toString(),
function (err) {
if (err) {
console.error(err);
}
}
);
*/
});
}
};
//aveGameFiles(itemsFiles);
})();