UNPKG

unreal.js

Version:

A pak reader for games like VALORANT & Fortnite written in Node.JS

38 lines (37 loc) 1.66 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.FManifestData = void 0; const FManifestHeader_1 = require("./FManifestHeader"); const FManifestMeta_1 = require("./FManifestMeta"); const FChunkDataList_1 = require("./FChunkDataList"); const FFileManifestList_1 = require("./FFileManifestList"); const FCustomFields_1 = require("./FCustomFields"); const Compression_1 = require("../../../compression/Compression"); const FByteArchive_1 = require("../../reader/FByteArchive"); /** * FManifestData */ class FManifestData { /** * Creates an instance using an UE4 Reader * @param {FArchive} Ar UE4 Reader to use * @constructor * @public */ constructor(Ar) { const startPos = Ar.pos; this.header = new FManifestHeader_1.FManifestHeader(Ar); let manifestRawData = Ar.read(this.header.dataSizeCompressed); if (this.header.storedAs & 1) { //Compressed, only compression format is ZLib manifestRawData = Compression_1.Compression.uncompress0("Zlib", manifestRawData, this.header.dataSizeUncompressed); } const rawAr = new FByteArchive_1.FByteArchive(manifestRawData); this.meta = new FManifestMeta_1.FManifestMeta(rawAr); this.chunkDataList = new FChunkDataList_1.FChunkDataList(rawAr); this.fileManifestList = new FFileManifestList_1.FFileManifestList(rawAr); this.customFields = new FCustomFields_1.FCustomFields(rawAr); Ar.pos = startPos + this.header.headerSize + this.header.dataSizeCompressed; } } exports.FManifestData = FManifestData;