export class Synchronizer { constructor(children) { this.children = children; this.childrenPacketsForUpdate = this.children.map((child) => { return child.packetsForUpdate.bind(child); }); } acceptPacket(packet) { for (let i = 0; i < this.children.length; i++) { this.children[i].acceptPacket(packet); } } addChild(child) { this.children.push(child); this.childrenPacketsForUpdate.push(child.packetsForUpdate.bind(child)); } packetsForUpdate(force = false) { const packetsForUpdate = []; for (let i = 0; i < this.childrenPacketsForUpdate.length; i++) { const childPacketsForUpdate = this.childrenPacketsForUpdate[i](force); for (let j = 0; j < childPacketsForUpdate.length; j++) { packetsForUpdate.push(childPacketsForUpdate[j]); } } return packetsForUpdate; } }