@needle-tools/networking
Version:
Networking backend functionality for Needle Engine
34 lines (31 loc) • 980 B
JavaScript
const Flatbuffers = require("flatbuffers");
const STRS = require("./schemes/synced-transform-model");
// function applyBuffer(obj, target){
// console.dir(obj);
// const names = Object.getOwnPropertyNames(obj);
// for(const key in names){
// // const val = obj[key];
// console.log(key, names[key]);
// }
// }
module.exports.unpackBinaryIntoPayload = function (binary) {
const bb = new Flatbuffers.ByteBuffer(binary);
const key = bb.getBufferIdentifier();
const payload = { key: key };
switch (key) {
case "STRS":
const obj = STRS.SyncedTransformModel.getRootAsSyncedTransformModel(bb);
payload.guid = obj.guid();
break;
case "VRUS": // WebXRUser
case "SCAM": // SyncedCamera
payload.dontSave = true;
break;
default:
console.warn("Unknown datatype: " + key);
// console.log(JSON.stringify(binary));
break;
}
// console.log(payload);
return payload;
}