UNPKG

@etothepii/satisfactory-file-parser

Version:

A file parser for satisfactory files. Includes save files and blueprint files.

36 lines (35 loc) 1.58 kB
"use strict"; 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;