@etothepii/satisfactory-file-parser
Version:
A file parser for satisfactory files. Includes save files and blueprint files.
36 lines (35 loc) • 1.58 kB
JavaScript
Object.defineProperty(exports, "__esModule", { value: true });
exports.SaveStreamJsonStringifier = void 0;
const save_stream_writer_class_1 = require("./save-stream-writer.class");
class SaveStreamJsonStringifier {
static async StreamStringifySave(save, output) {
const writer = new save_stream_writer_class_1.SaveStreamWriter(output.getWriter());
await writer.beginSave();
await writer.writeHeader(save.header);
if (save.compressionInfo) {
await writer.writeCompressionInfo(save.compressionInfo);
}
await writer.writeGridHash(save.gridHash);
await writer.writeGrids(save.grids);
await writer.openLevels();
const objectBatchSize = 10000;
for (const level of save.levels) {
await writer.openLevel(level.name);
let i = 0;
for (i; i < level.objects.length; i += objectBatchSize) {
await writer.writeObjects(...level.objects.slice(i, Math.min(i + objectBatchSize, level.objects.length)));
}
await writer.switchInLevelToCollectables();
i = 0;
for (i; i < level.collectables.length; i += objectBatchSize) {
await writer.writeCollectables(...level.collectables.slice(i, Math.min(i + objectBatchSize, level.collectables.length)));
}
await writer.endLevel();
}
await writer.endLevels();
await writer.endSave();
await writer.close();
}
}
exports.SaveStreamJsonStringifier = SaveStreamJsonStringifier;
;