/** * @alpha * This file initialization is an alpha one. This is based on the old-ecs * init and it'll be changing. */ import { Engine } from './engine' import { createRendererTransport } from './systems/crdt/transports/rendererTransport' import { createNetworkTransport } from './systems/crdt/transports/networkTransport' const rendererTransport = createRendererTransport() export const engine = Engine({ transports: [rendererTransport, createNetworkTransport()] }) if (dcl) { dcl.loadModule('@decentraland/ExperimentalAPI', {}).catch(dcl.error) async function pullRendererMessages() { const response = await dcl.callRpc( '@decentraland/ExperimentalAPI', 'messageFromRenderer', [] ) if (response.data?.length) { if (rendererTransport.onmessage) { for (const byteArray of response.data) { rendererTransport.onmessage(byteArray) } } } } dcl.onUpdate((dt: number) => { pullRendererMessages() .catch(dcl.error) .finally(() => engine.update(dt)) }) }