Compress compressedNbt on write

This commit is contained in:
deathcap 2016-02-16 00:31:00 -08:00
parent dc0159e5e3
commit d8b95d7755

View File

@ -73,14 +73,26 @@ function writeCompressedNbt(value, buffer, offset) {
buffer.writeInt16BE(-1,offset);
return offset+2;
}
buffer.writeInt16BE(sizeOfNbt(value),offset);
return nbt.proto.write(value,buffer,offset+2,"nbt");
const nbtBuffer = new Buffer(sizeOfNbt(value));
nbt.proto.write(value,nbtBuffer,0,"nbt");
const compressedNbt = zlib.gzipSync(nbtBuffer); // TODO: async
buffer.writeInt16BE(compressedNbt.length,offset);
compressedNbt.copy(buffer,offset+2);
return offset+2+compressedNbt.length;
}
function sizeOfCompressedNbt(value) {
if(value==undefined)
return 2;
return 2+nbt.proto.sizeOf(value,"nbt");
const nbtBuffer = new Buffer(sizeOfNbt(value,"nbt"));
nbt.proto.write(value,nbtBuffer,0,"nbt");
const compressedNbt = zlib.gzipSync(nbtBuffer); // TODO: async
return 2+compressedNbt.length;
}