@dcl/sdk 7.1.10-4831521012.commit-a2ec881 → 7.1.10-4833748310.commit-e77b3d0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/composite-provider.d.ts +1 -1
- package/composite-provider.js +21 -33
- package/index.js +11 -4
- package/package.json +10 -6
- package/src/composite-provider.ts +21 -34
- package/src/index.ts +14 -4
- package/src/with-composite.ts +0 -19
- package/with-composite.d.ts +0 -2
- package/with-composite.js +0 -13
package/composite-provider.d.ts
CHANGED
@@ -1,2 +1,2 @@
|
|
1
1
|
import { Composite } from '@dcl/ecs';
|
2
|
-
export declare
|
2
|
+
export declare const compositeProvider: Composite.Provider;
|
package/composite-provider.js
CHANGED
@@ -1,38 +1,26 @@
|
|
1
|
+
import { compositeFromLoader } from '~sdk/all-composites';
|
1
2
|
import { Composite } from '@dcl/ecs';
|
2
|
-
|
3
|
-
export
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
const composite = Composite.fromBinary(compositeBinaryData);
|
17
|
-
return { src, composite };
|
3
|
+
const composites = [];
|
4
|
+
export const compositeProvider = {
|
5
|
+
getCompositeOrNull(src, _currentPath) {
|
6
|
+
const fromLoader = compositeFromLoader[src];
|
7
|
+
if (fromLoader) {
|
8
|
+
try {
|
9
|
+
if (src.endsWith('.bin') && fromLoader instanceof Uint8Array) {
|
10
|
+
const composite = Composite.fromBinary(fromLoader);
|
11
|
+
composites.push({ src, composite });
|
12
|
+
}
|
13
|
+
else if (typeof fromLoader === 'string') {
|
14
|
+
const composite = Composite.fromJson(JSON.parse(fromLoader));
|
15
|
+
composites.push({ src, composite });
|
16
|
+
}
|
18
17
|
}
|
19
|
-
|
20
|
-
|
21
|
-
const composite = Composite.fromJson(compositeJson);
|
22
|
-
return { src, composite };
|
18
|
+
catch (err) {
|
19
|
+
console.error(err);
|
23
20
|
}
|
21
|
+
delete compositeFromLoader[src];
|
24
22
|
}
|
25
|
-
|
26
|
-
console.error(`Error loading composite ${compositeUrl}: ${err.toString()}`);
|
27
|
-
return null;
|
28
|
-
}
|
23
|
+
return composites.find((item) => item.src === src) || null;
|
29
24
|
}
|
30
|
-
|
31
|
-
|
32
|
-
return {
|
33
|
-
getCompositeOrNull(src, _currentPath) {
|
34
|
-
return composites.find((item) => item.src === src) || null;
|
35
|
-
}
|
36
|
-
};
|
37
|
-
}
|
38
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcG9zaXRlLXByb3ZpZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsic3JjL2NvbXBvc2l0ZS1wcm92aWRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sVUFBVSxDQUFBO0FBQ3BDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxlQUFlLENBQUE7QUFHNUMsTUFBTSxDQUFDLEtBQUssVUFBVSxtQ0FBbUM7SUFDdkQsTUFBTSxLQUFLLEdBQUcsTUFBTSxZQUFZLENBQUMsRUFBRSxDQUFDLENBQUE7SUFDcEMsTUFBTSxpQkFBaUIsR0FBRyxLQUFLLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFO1FBQ3ZELE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUE7UUFDcEMsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLFlBQVksQ0FBQyxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsZ0JBQWdCLENBQUMsQ0FBQTtJQUN2RSxDQUFDLENBQUMsQ0FBQTtJQUVGLEtBQUssVUFBVSxjQUFjLENBQUMsSUFBb0M7UUFDaEUsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQTtRQUNuQyxNQUFNLFlBQVksR0FBRyxHQUFHLEtBQUssQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFBO1FBQ25ELElBQUk7WUFDRixNQUFNLFFBQVEsR0FBRyxNQUFNLEtBQUssQ0FBQyxZQUFZLENBQUMsQ0FBQTtZQUMxQyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxFQUFFO2dCQUM5QixNQUFNLG1CQUFtQixHQUFlLE1BQU8sUUFBZ0IsQ0FBQyxXQUFXLEVBQUUsQ0FBQTtnQkFDN0UsTUFBTSxTQUFTLEdBQUcsU0FBUyxDQUFDLFVBQVUsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFBO2dCQUMzRCxPQUFPLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxDQUFBO2FBQzFCO2lCQUFNO2dCQUNMLE1BQU0sYUFBYSxHQUFHLE1BQU0sUUFBUSxDQUFDLElBQUksRUFBRSxDQUFBO2dCQUMzQyxNQUFNLFNBQVMsR0FBRyxTQUFTLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxDQUFBO2dCQUNuRCxPQUFPLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxDQUFBO2FBQzFCO1NBQ0Y7UUFBQyxPQUFPLEdBQUcsRUFBRTtZQUNaLE9BQU8sQ0FBQyxLQUFLLENBQUMsMkJBQTJCLFlBQVksS0FBTSxHQUFXLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQyxDQUFBO1lBQ3BGLE9BQU8sSUFBSSxDQUFBO1NBQ1o7SUFDSCxDQUFDO0lBRUQsTUFBTSxpQkFBaUIsR0FBRyxpQkFBaUIsQ0FBQyxHQUFHLENBQUMsY0FBYyxDQUFDLENBQUE7SUFFL0QsTUFBTSxVQUFVLEdBQUcsQ0FBQyxNQUFNLE9BQU8sQ0FBQyxHQUFHLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBeUIsQ0FBQTtJQUUxRyxPQUFPO1FBQ0wsa0JBQWtCLENBQUMsR0FBVyxFQUFFLFlBQXFCO1lBR25ELE9BQU8sVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLEdBQUcsS0FBSyxHQUFHLENBQUMsSUFBSSxJQUFJLENBQUE7UUFDNUQsQ0FBQztLQUNGLENBQUE7QUFDSCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9zaXRlIH0gZnJvbSAnQGRjbC9lY3MnXG5pbXBvcnQgeyBnZXRTY2VuZUluZm8gfSBmcm9tICd+c3lzdGVtL1NjZW5lJ1xuXG4vLyBAcHVibGljXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gY3JlYXRlQ29udGVudEZldGNoQ29tcG9zaXRlUHJvdmlkZXIoKTogUHJvbWlzZTxDb21wb3NpdGUuUHJvdmlkZXI+IHtcbiAgY29uc3Qgc2NlbmUgPSBhd2FpdCBnZXRTY2VuZUluZm8oe30pXG4gIGNvbnN0IGNvbXBvc2l0ZXNDb250ZW50ID0gc2NlbmUuY29udGVudHMuZmlsdGVyKChpdGVtKSA9PiB7XG4gICAgY29uc3QgcGF0aCA9IGl0ZW0uZmlsZS50b0xvd2VyQ2FzZSgpXG4gICAgcmV0dXJuIHBhdGguZW5kc1dpdGgoJy5jb21wb3NpdGUnKSB8fCBwYXRoLmVuZHNXaXRoKCcuY29tcG9zaXRlLmJpbicpXG4gIH0pXG5cbiAgYXN5bmMgZnVuY3Rpb24gZmV0Y2hDb21wb3NpdGUoaXRlbTogeyBoYXNoOiBzdHJpbmc7IGZpbGU6IHN0cmluZyB9KTogUHJvbWlzZTxDb21wb3NpdGUuUmVzb3VyY2UgfCBudWxsPiB7XG4gICAgY29uc3Qgc3JjID0gaXRlbS5maWxlLnRvTG93ZXJDYXNlKClcbiAgICBjb25zdCBjb21wb3NpdGVVcmwgPSBgJHtzY2VuZS5iYXNlVXJsfSR7aXRlbS5oYXNofWBcbiAgICB0cnkge1xuICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBmZXRjaChjb21wb3NpdGVVcmwpXG4gICAgICBpZiAoaXRlbS5maWxlLmVuZHNXaXRoKCcuYmluJykpIHtcbiAgICAgICAgY29uc3QgY29tcG9zaXRlQmluYXJ5RGF0YTogVWludDhBcnJheSA9IGF3YWl0IChyZXNwb25zZSBhcyBhbnkpLmFycmF5QnVmZmVyKClcbiAgICAgICAgY29uc3QgY29tcG9zaXRlID0gQ29tcG9zaXRlLmZyb21CaW5hcnkoY29tcG9zaXRlQmluYXJ5RGF0YSlcbiAgICAgICAgcmV0dXJuIHsgc3JjLCBjb21wb3NpdGUgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY29uc3QgY29tcG9zaXRlSnNvbiA9IGF3YWl0IHJlc3BvbnNlLmpzb24oKVxuICAgICAgICBjb25zdCBjb21wb3NpdGUgPSBDb21wb3NpdGUuZnJvbUpzb24oY29tcG9zaXRlSnNvbilcbiAgICAgICAgcmV0dXJuIHsgc3JjLCBjb21wb3NpdGUgfVxuICAgICAgfVxuICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgY29uc29sZS5lcnJvcihgRXJyb3IgbG9hZGluZyBjb21wb3NpdGUgJHtjb21wb3NpdGVVcmx9OiAkeyhlcnIgYXMgYW55KS50b1N0cmluZygpfWApXG4gICAgICByZXR1cm4gbnVsbFxuICAgIH1cbiAgfVxuXG4gIGNvbnN0IGNvbXBvc2l0ZVByb21pc2VzID0gY29tcG9zaXRlc0NvbnRlbnQubWFwKGZldGNoQ29tcG9zaXRlKVxuXG4gIGNvbnN0IGNvbXBvc2l0ZXMgPSAoYXdhaXQgUHJvbWlzZS5hbGwoY29tcG9zaXRlUHJvbWlzZXMpKS5maWx0ZXIoKGl0ZW0pID0+ICEhaXRlbSkgYXMgQ29tcG9zaXRlLlJlc291cmNlW11cblxuICByZXR1cm4ge1xuICAgIGdldENvbXBvc2l0ZU9yTnVsbChzcmM6IHN0cmluZywgX2N1cnJlbnRQYXRoPzogc3RyaW5nKSB7XG4gICAgICAvLyBUT0RPOiByZXNvbHZlIHBhdGggZnJvbSBzcmMgYW5kIGN1cnJlbnRQYXRoXG5cbiAgICAgIHJldHVybiBjb21wb3NpdGVzLmZpbmQoKGl0ZW0pID0+IGl0ZW0uc3JjID09PSBzcmMpIHx8IG51bGxcbiAgICB9XG4gIH1cbn1cbiJdfQ==
|
25
|
+
};
|
26
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcG9zaXRlLXByb3ZpZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsic3JjL2NvbXBvc2l0ZS1wcm92aWRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQTtBQUN6RCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sVUFBVSxDQUFBO0FBRXBDLE1BQU0sVUFBVSxHQUF5QixFQUFFLENBQUE7QUFHM0MsTUFBTSxDQUFDLE1BQU0saUJBQWlCLEdBQXVCO0lBQ25ELGtCQUFrQixDQUFDLEdBQVcsRUFBRSxZQUFxQjtRQUduRCxNQUFNLFVBQVUsR0FBRyxtQkFBbUIsQ0FBQyxHQUFHLENBQUMsQ0FBQTtRQUMzQyxJQUFJLFVBQVUsRUFBRTtZQUNkLElBQUk7Z0JBQ0YsSUFBSSxHQUFHLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxJQUFJLFVBQVUsWUFBWSxVQUFVLEVBQUU7b0JBQzVELE1BQU0sU0FBUyxHQUFHLFNBQVMsQ0FBQyxVQUFVLENBQUMsVUFBVSxDQUFDLENBQUE7b0JBQ2xELFVBQVUsQ0FBQyxJQUFJLENBQUMsRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLENBQUMsQ0FBQTtpQkFDcEM7cUJBQU0sSUFBSSxPQUFPLFVBQVUsS0FBSyxRQUFRLEVBQUU7b0JBQ3pDLE1BQU0sU0FBUyxHQUFHLFNBQVMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFBO29CQUM1RCxVQUFVLENBQUMsSUFBSSxDQUFDLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxDQUFDLENBQUE7aUJBQ3BDO2FBQ0Y7WUFBQyxPQUFPLEdBQUcsRUFBRTtnQkFDWixPQUFPLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFBO2FBQ25CO1lBRUQsT0FBTyxtQkFBbUIsQ0FBQyxHQUFHLENBQUMsQ0FBQTtTQUNoQztRQUVELE9BQU8sVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLEdBQUcsS0FBSyxHQUFHLENBQUMsSUFBSSxJQUFJLENBQUE7SUFDNUQsQ0FBQztDQUNGLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjb21wb3NpdGVGcm9tTG9hZGVyIH0gZnJvbSAnfnNkay9hbGwtY29tcG9zaXRlcydcbmltcG9ydCB7IENvbXBvc2l0ZSB9IGZyb20gJ0BkY2wvZWNzJ1xuXG5jb25zdCBjb21wb3NpdGVzOiBDb21wb3NpdGUuUmVzb3VyY2VbXSA9IFtdXG5cbi8vIEBwdWJsaWNcbmV4cG9ydCBjb25zdCBjb21wb3NpdGVQcm92aWRlcjogQ29tcG9zaXRlLlByb3ZpZGVyID0ge1xuICBnZXRDb21wb3NpdGVPck51bGwoc3JjOiBzdHJpbmcsIF9jdXJyZW50UGF0aD86IHN0cmluZykge1xuICAgIC8vIFRPRE86IHJlc29sdmUgcGF0aCBmcm9tIHNyYyBhbmQgY3VycmVudFBhdGhcblxuICAgIGNvbnN0IGZyb21Mb2FkZXIgPSBjb21wb3NpdGVGcm9tTG9hZGVyW3NyY11cbiAgICBpZiAoZnJvbUxvYWRlcikge1xuICAgICAgdHJ5IHtcbiAgICAgICAgaWYgKHNyYy5lbmRzV2l0aCgnLmJpbicpICYmIGZyb21Mb2FkZXIgaW5zdGFuY2VvZiBVaW50OEFycmF5KSB7XG4gICAgICAgICAgY29uc3QgY29tcG9zaXRlID0gQ29tcG9zaXRlLmZyb21CaW5hcnkoZnJvbUxvYWRlcilcbiAgICAgICAgICBjb21wb3NpdGVzLnB1c2goeyBzcmMsIGNvbXBvc2l0ZSB9KVxuICAgICAgICB9IGVsc2UgaWYgKHR5cGVvZiBmcm9tTG9hZGVyID09PSAnc3RyaW5nJykge1xuICAgICAgICAgIGNvbnN0IGNvbXBvc2l0ZSA9IENvbXBvc2l0ZS5mcm9tSnNvbihKU09OLnBhcnNlKGZyb21Mb2FkZXIpKVxuICAgICAgICAgIGNvbXBvc2l0ZXMucHVzaCh7IHNyYywgY29tcG9zaXRlIH0pXG4gICAgICAgIH1cbiAgICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgICBjb25zb2xlLmVycm9yKGVycilcbiAgICAgIH1cblxuICAgICAgZGVsZXRlIGNvbXBvc2l0ZUZyb21Mb2FkZXJbc3JjXVxuICAgIH1cblxuICAgIHJldHVybiBjb21wb3NpdGVzLmZpbmQoKGl0ZW0pID0+IGl0ZW0uc3JjID09PSBzcmMpIHx8IG51bGxcbiAgfVxufVxuIl19
|
package/index.js
CHANGED
@@ -1,16 +1,23 @@
|
|
1
|
-
import { engine } from '@dcl/ecs';
|
1
|
+
import { Composite, engine } from '@dcl/ecs';
|
2
2
|
import { crdtGetState, crdtSendToRenderer, sendBatch } from '~system/EngineApi';
|
3
3
|
import { createRendererTransport } from './internal/transports/rendererTransport';
|
4
4
|
import { pollEvents } from './observables';
|
5
|
-
|
5
|
+
import { compositeProvider } from './composite-provider';
|
6
|
+
export const rendererTransport = createRendererTransport({ crdtSendToRenderer });
|
6
7
|
engine.addTransport(rendererTransport);
|
7
8
|
export async function onUpdate(deltaTime) {
|
9
|
+
engine.seal();
|
8
10
|
await engine.update(deltaTime);
|
9
11
|
await pollEvents(sendBatch);
|
10
12
|
}
|
11
13
|
export async function onStart() {
|
12
|
-
await engine.seal();
|
13
14
|
const response = await crdtGetState({ data: new Uint8Array() });
|
15
|
+
if (!response.hasEntities) {
|
16
|
+
const mainComposite = compositeProvider.getCompositeOrNull('main.composite');
|
17
|
+
if (mainComposite) {
|
18
|
+
Composite.instance(engine, mainComposite, compositeProvider);
|
19
|
+
}
|
20
|
+
}
|
14
21
|
if (!!rendererTransport.onmessage) {
|
15
22
|
if (response && response.data && response.data.length) {
|
16
23
|
for (const byteArray of response.data) {
|
@@ -19,4 +26,4 @@ export async function onStart() {
|
|
19
26
|
}
|
20
27
|
}
|
21
28
|
}
|
22
|
-
//# sourceMappingURL=data:application/json;base64,
|
29
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJzcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsTUFBTSxVQUFVLENBQUE7QUFDNUMsT0FBTyxFQUFFLFlBQVksRUFBRSxrQkFBa0IsRUFBRSxTQUFTLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQTtBQUMvRSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQTtBQUNqRixPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFBO0FBQzFDLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHNCQUFzQixDQUFBO0FBSXhELE1BQU0sQ0FBQyxNQUFNLGlCQUFpQixHQUFHLHVCQUF1QixDQUFDLEVBQUUsa0JBQWtCLEVBQUUsQ0FBQyxDQUFBO0FBQ2hGLE1BQU0sQ0FBQyxZQUFZLENBQUMsaUJBQWlCLENBQUMsQ0FBQTtBQUV0QyxNQUFNLENBQUMsS0FBSyxVQUFVLFFBQVEsQ0FBQyxTQUFpQjtJQUM5QyxNQUFNLENBQUMsSUFBSSxFQUFFLENBQUE7SUFDYixNQUFNLE1BQU0sQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUE7SUFDOUIsTUFBTSxVQUFVLENBQUMsU0FBUyxDQUFDLENBQUE7QUFDN0IsQ0FBQztBQU1ELE1BQU0sQ0FBQyxLQUFLLFVBQVUsT0FBTztJQUMzQixNQUFNLFFBQVEsR0FBRyxNQUFNLFlBQVksQ0FBQyxFQUFFLElBQUksRUFBRSxJQUFJLFVBQVUsRUFBRSxFQUFFLENBQUMsQ0FBQTtJQUcvRCxJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsRUFBRTtRQUN6QixNQUFNLGFBQWEsR0FBRyxpQkFBaUIsQ0FBQyxrQkFBa0IsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFBO1FBQzVFLElBQUksYUFBYSxFQUFFO1lBQ2pCLFNBQVMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLGFBQWEsRUFBRSxpQkFBaUIsQ0FBQyxDQUFBO1NBQzdEO0tBQ0Y7SUFFRCxJQUFJLENBQUMsQ0FBQyxpQkFBaUIsQ0FBQyxTQUFTLEVBQUU7UUFDakMsSUFBSSxRQUFRLElBQUksUUFBUSxDQUFDLElBQUksSUFBSSxRQUFRLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRTtZQUNyRCxLQUFLLE1BQU0sU0FBUyxJQUFJLFFBQVEsQ0FBQyxJQUFJLEVBQUU7Z0JBQ3JDLGlCQUFpQixDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsQ0FBQTthQUN2QztTQUNGO0tBQ0Y7QUFDSCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqIEBhbHBoYSBUSElTIEZJTEUgSU5JVElBTElaRVMgVEhFIERFQ0VOVFJBTEFORCBSVU5USU1FLiBXSUxMIENIQU5HRSBTT09OICovXG5pbXBvcnQgeyBDb21wb3NpdGUsIGVuZ2luZSB9IGZyb20gJ0BkY2wvZWNzJ1xuaW1wb3J0IHsgY3JkdEdldFN0YXRlLCBjcmR0U2VuZFRvUmVuZGVyZXIsIHNlbmRCYXRjaCB9IGZyb20gJ35zeXN0ZW0vRW5naW5lQXBpJ1xuaW1wb3J0IHsgY3JlYXRlUmVuZGVyZXJUcmFuc3BvcnQgfSBmcm9tICcuL2ludGVybmFsL3RyYW5zcG9ydHMvcmVuZGVyZXJUcmFuc3BvcnQnXG5pbXBvcnQgeyBwb2xsRXZlbnRzIH0gZnJvbSAnLi9vYnNlcnZhYmxlcydcbmltcG9ydCB7IGNvbXBvc2l0ZVByb3ZpZGVyIH0gZnJvbSAnLi9jb21wb3NpdGUtcHJvdmlkZXInXG5cbi8vIEF0dGFjaCBDUkRUIHRyYW5zcG9ydFxuLy8gQGludGVybmFsXG5leHBvcnQgY29uc3QgcmVuZGVyZXJUcmFuc3BvcnQgPSBjcmVhdGVSZW5kZXJlclRyYW5zcG9ydCh7IGNyZHRTZW5kVG9SZW5kZXJlciB9KVxuZW5naW5lLmFkZFRyYW5zcG9ydChyZW5kZXJlclRyYW5zcG9ydClcblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIG9uVXBkYXRlKGRlbHRhVGltZTogbnVtYmVyKSB7XG4gIGVuZ2luZS5zZWFsKClcbiAgYXdhaXQgZW5naW5lLnVwZGF0ZShkZWx0YVRpbWUpXG4gIGF3YWl0IHBvbGxFdmVudHMoc2VuZEJhdGNoKVxufVxuXG4vKipcbiAqIEBpbnRlcm5hbFxuICogRnVuY3Rpb24gdGhhdCBpcyBjYWxsZWQgYmVmb3JlIHRoZSBmaXJzdCB1cGRhdGUgYW5kIGFmdGVyIHRoZSBldmFsdWF0aW9uIG9mIHRoZSBjb2RlLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gb25TdGFydCgpIHtcbiAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBjcmR0R2V0U3RhdGUoeyBkYXRhOiBuZXcgVWludDhBcnJheSgpIH0pXG5cbiAgLy8gd2hlbiB0aGlzIGNvbmRpdGlvbiBpcyB0cnVlIHNvbWV0aGluZyBsaWtlIGBtYWluLmNyZHRgIHdhcyBwcmUtbG9hZGVkIGZyb20gdGhlIHJ1bnRpbWUsIHdlIGRvbid0IG5lZWQgdG8gaW5zdGFuY2UgdGhlIG1haW4uY29tcG9zaXRlXG4gIGlmICghcmVzcG9uc2UuaGFzRW50aXRpZXMpIHtcbiAgICBjb25zdCBtYWluQ29tcG9zaXRlID0gY29tcG9zaXRlUHJvdmlkZXIuZ2V0Q29tcG9zaXRlT3JOdWxsKCdtYWluLmNvbXBvc2l0ZScpXG4gICAgaWYgKG1haW5Db21wb3NpdGUpIHtcbiAgICAgIENvbXBvc2l0ZS5pbnN0YW5jZShlbmdpbmUsIG1haW5Db21wb3NpdGUsIGNvbXBvc2l0ZVByb3ZpZGVyKVxuICAgIH1cbiAgfVxuXG4gIGlmICghIXJlbmRlcmVyVHJhbnNwb3J0Lm9ubWVzc2FnZSkge1xuICAgIGlmIChyZXNwb25zZSAmJiByZXNwb25zZS5kYXRhICYmIHJlc3BvbnNlLmRhdGEubGVuZ3RoKSB7XG4gICAgICBmb3IgKGNvbnN0IGJ5dGVBcnJheSBvZiByZXNwb25zZS5kYXRhKSB7XG4gICAgICAgIHJlbmRlcmVyVHJhbnNwb3J0Lm9ubWVzc2FnZShieXRlQXJyYXkpXG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iXX0=
|
package/package.json
CHANGED
@@ -1,20 +1,24 @@
|
|
1
1
|
{
|
2
2
|
"name": "@dcl/sdk",
|
3
3
|
"description": "",
|
4
|
-
"version": "7.1.10-
|
4
|
+
"version": "7.1.10-4833748310.commit-e77b3d0",
|
5
5
|
"author": "Decentraland",
|
6
6
|
"dependencies": {
|
7
|
-
"@dcl/ecs": "7.1.10-
|
7
|
+
"@dcl/ecs": "7.1.10-4833748310.commit-e77b3d0",
|
8
8
|
"@dcl/ecs-math": "2.0.1-20221129185242.commit-40495c1",
|
9
9
|
"@dcl/explorer": "1.0.106064-20230424164124.commit-fdcdf1a",
|
10
|
-
"@dcl/js-runtime": "7.1.10-
|
11
|
-
"@dcl/react-ecs": "7.1.10-
|
12
|
-
"@dcl/sdk-commands": "7.1.10-
|
10
|
+
"@dcl/js-runtime": "7.1.10-4833748310.commit-e77b3d0",
|
11
|
+
"@dcl/react-ecs": "7.1.10-4833748310.commit-e77b3d0",
|
12
|
+
"@dcl/sdk-commands": "7.1.10-4833748310.commit-e77b3d0"
|
13
13
|
},
|
14
14
|
"keywords": [],
|
15
15
|
"license": "Apache-2.0",
|
16
16
|
"main": "./index.js",
|
17
17
|
"minCliVersion": "3.14.1",
|
18
|
+
"repository": {
|
19
|
+
"url": "git+https://github.com/decentraland/js-sdk-toolchain",
|
20
|
+
"directory": "packages/@dcl/sdk"
|
21
|
+
},
|
18
22
|
"scripts": {
|
19
23
|
"build": "tsc -p tsconfig.json",
|
20
24
|
"start": "npm run build && tsc -p tsconfig.json --watch"
|
@@ -30,5 +34,5 @@
|
|
30
34
|
},
|
31
35
|
"types": "./index.d.ts",
|
32
36
|
"typings": "./index.d.ts",
|
33
|
-
"commit": "
|
37
|
+
"commit": "e77b3d02266c6d43f2f3cbcd5bfbd4a375507f1d"
|
34
38
|
}
|
@@ -1,43 +1,30 @@
|
|
1
|
+
import { compositeFromLoader } from '~sdk/all-composites'
|
1
2
|
import { Composite } from '@dcl/ecs'
|
2
|
-
|
3
|
+
|
4
|
+
const composites: Composite.Resource[] = []
|
3
5
|
|
4
6
|
// @public
|
5
|
-
export
|
6
|
-
|
7
|
-
|
8
|
-
const path = item.file.toLowerCase()
|
9
|
-
return path.endsWith('.composite') || path.endsWith('.composite.bin')
|
10
|
-
})
|
7
|
+
export const compositeProvider: Composite.Provider = {
|
8
|
+
getCompositeOrNull(src: string, _currentPath?: string) {
|
9
|
+
// TODO: resolve path from src and currentPath
|
11
10
|
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
return { src, composite }
|
11
|
+
const fromLoader = compositeFromLoader[src]
|
12
|
+
if (fromLoader) {
|
13
|
+
try {
|
14
|
+
if (src.endsWith('.bin') && fromLoader instanceof Uint8Array) {
|
15
|
+
const composite = Composite.fromBinary(fromLoader)
|
16
|
+
composites.push({ src, composite })
|
17
|
+
} else if (typeof fromLoader === 'string') {
|
18
|
+
const composite = Composite.fromJson(JSON.parse(fromLoader))
|
19
|
+
composites.push({ src, composite })
|
20
|
+
}
|
21
|
+
} catch (err) {
|
22
|
+
console.error(err)
|
25
23
|
}
|
26
|
-
} catch (err) {
|
27
|
-
console.error(`Error loading composite ${compositeUrl}: ${(err as any).toString()}`)
|
28
|
-
return null
|
29
|
-
}
|
30
|
-
}
|
31
|
-
|
32
|
-
const compositePromises = compositesContent.map(fetchComposite)
|
33
24
|
|
34
|
-
|
35
|
-
|
36
|
-
return {
|
37
|
-
getCompositeOrNull(src: string, _currentPath?: string) {
|
38
|
-
// TODO: resolve path from src and currentPath
|
39
|
-
|
40
|
-
return composites.find((item) => item.src === src) || null
|
25
|
+
delete compositeFromLoader[src]
|
41
26
|
}
|
27
|
+
|
28
|
+
return composites.find((item) => item.src === src) || null
|
42
29
|
}
|
43
30
|
}
|
package/src/index.ts
CHANGED
@@ -1,14 +1,17 @@
|
|
1
1
|
/** @alpha THIS FILE INITIALIZES THE DECENTRALAND RUNTIME. WILL CHANGE SOON */
|
2
|
-
import { engine } from '@dcl/ecs'
|
2
|
+
import { Composite, engine } from '@dcl/ecs'
|
3
3
|
import { crdtGetState, crdtSendToRenderer, sendBatch } from '~system/EngineApi'
|
4
4
|
import { createRendererTransport } from './internal/transports/rendererTransport'
|
5
5
|
import { pollEvents } from './observables'
|
6
|
+
import { compositeProvider } from './composite-provider'
|
6
7
|
|
7
8
|
// Attach CRDT transport
|
8
|
-
|
9
|
+
// @internal
|
10
|
+
export const rendererTransport = createRendererTransport({ crdtSendToRenderer })
|
9
11
|
engine.addTransport(rendererTransport)
|
10
12
|
|
11
13
|
export async function onUpdate(deltaTime: number) {
|
14
|
+
engine.seal()
|
12
15
|
await engine.update(deltaTime)
|
13
16
|
await pollEvents(sendBatch)
|
14
17
|
}
|
@@ -18,9 +21,16 @@ export async function onUpdate(deltaTime: number) {
|
|
18
21
|
* Function that is called before the first update and after the evaluation of the code.
|
19
22
|
*/
|
20
23
|
export async function onStart() {
|
21
|
-
await engine.seal()
|
22
|
-
|
23
24
|
const response = await crdtGetState({ data: new Uint8Array() })
|
25
|
+
|
26
|
+
// when this condition is true something like `main.crdt` was pre-loaded from the runtime, we don't need to instance the main.composite
|
27
|
+
if (!response.hasEntities) {
|
28
|
+
const mainComposite = compositeProvider.getCompositeOrNull('main.composite')
|
29
|
+
if (mainComposite) {
|
30
|
+
Composite.instance(engine, mainComposite, compositeProvider)
|
31
|
+
}
|
32
|
+
}
|
33
|
+
|
24
34
|
if (!!rendererTransport.onmessage) {
|
25
35
|
if (response && response.data && response.data.length) {
|
26
36
|
for (const byteArray of response.data) {
|
package/src/with-composite.ts
DELETED
@@ -1,19 +0,0 @@
|
|
1
|
-
import { engine, Composite } from '@dcl/ecs'
|
2
|
-
import { createContentFetchCompositeProvider } from './composite-provider'
|
3
|
-
import { onStart as basicOnStart, onUpdate as basicOnUpdate } from './index'
|
4
|
-
|
5
|
-
export const onUpdate = basicOnUpdate
|
6
|
-
|
7
|
-
/**
|
8
|
-
* @internal
|
9
|
-
* Function that is called before the first update and after the evaluation of the code.
|
10
|
-
*/
|
11
|
-
/* @__PURE__ */ export async function onStart() {
|
12
|
-
const compositeProvider = await createContentFetchCompositeProvider()
|
13
|
-
const mainComposite = compositeProvider.getCompositeOrNull('main.composite')
|
14
|
-
if (mainComposite) {
|
15
|
-
Composite.instance(engine, mainComposite, compositeProvider)
|
16
|
-
}
|
17
|
-
|
18
|
-
await basicOnStart()
|
19
|
-
}
|
package/with-composite.d.ts
DELETED
package/with-composite.js
DELETED
@@ -1,13 +0,0 @@
|
|
1
|
-
import { engine, Composite } from '@dcl/ecs';
|
2
|
-
import { createContentFetchCompositeProvider } from './composite-provider';
|
3
|
-
import { onStart as basicOnStart, onUpdate as basicOnUpdate } from './index';
|
4
|
-
export const onUpdate = basicOnUpdate;
|
5
|
-
export async function onStart() {
|
6
|
-
const compositeProvider = await createContentFetchCompositeProvider();
|
7
|
-
const mainComposite = compositeProvider.getCompositeOrNull('main.composite');
|
8
|
-
if (mainComposite) {
|
9
|
-
Composite.instance(engine, mainComposite, compositeProvider);
|
10
|
-
}
|
11
|
-
await basicOnStart();
|
12
|
-
}
|
13
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2l0aC1jb21wb3NpdGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJzcmMvd2l0aC1jb21wb3NpdGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsTUFBTSxVQUFVLENBQUE7QUFDNUMsT0FBTyxFQUFFLG1DQUFtQyxFQUFFLE1BQU0sc0JBQXNCLENBQUE7QUFDMUUsT0FBTyxFQUFFLE9BQU8sSUFBSSxZQUFZLEVBQUUsUUFBUSxJQUFJLGFBQWEsRUFBRSxNQUFNLFNBQVMsQ0FBQTtBQUU1RSxNQUFNLENBQUMsTUFBTSxRQUFRLEdBQUcsYUFBYSxDQUFBO0FBTXJCLE1BQU0sQ0FBQyxLQUFLLFVBQVUsT0FBTztJQUMzQyxNQUFNLGlCQUFpQixHQUFHLE1BQU0sbUNBQW1DLEVBQUUsQ0FBQTtJQUNyRSxNQUFNLGFBQWEsR0FBRyxpQkFBaUIsQ0FBQyxrQkFBa0IsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFBO0lBQzVFLElBQUksYUFBYSxFQUFFO1FBQ2pCLFNBQVMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLGFBQWEsRUFBRSxpQkFBaUIsQ0FBQyxDQUFBO0tBQzdEO0lBRUQsTUFBTSxZQUFZLEVBQUUsQ0FBQTtBQUN0QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZW5naW5lLCBDb21wb3NpdGUgfSBmcm9tICdAZGNsL2VjcydcbmltcG9ydCB7IGNyZWF0ZUNvbnRlbnRGZXRjaENvbXBvc2l0ZVByb3ZpZGVyIH0gZnJvbSAnLi9jb21wb3NpdGUtcHJvdmlkZXInXG5pbXBvcnQgeyBvblN0YXJ0IGFzIGJhc2ljT25TdGFydCwgb25VcGRhdGUgYXMgYmFzaWNPblVwZGF0ZSB9IGZyb20gJy4vaW5kZXgnXG5cbmV4cG9ydCBjb25zdCBvblVwZGF0ZSA9IGJhc2ljT25VcGRhdGVcblxuLyoqXG4gKiBAaW50ZXJuYWxcbiAqIEZ1bmN0aW9uIHRoYXQgaXMgY2FsbGVkIGJlZm9yZSB0aGUgZmlyc3QgdXBkYXRlIGFuZCBhZnRlciB0aGUgZXZhbHVhdGlvbiBvZiB0aGUgY29kZS5cbiAqL1xuLyogQF9fUFVSRV9fICovIGV4cG9ydCBhc3luYyBmdW5jdGlvbiBvblN0YXJ0KCkge1xuICBjb25zdCBjb21wb3NpdGVQcm92aWRlciA9IGF3YWl0IGNyZWF0ZUNvbnRlbnRGZXRjaENvbXBvc2l0ZVByb3ZpZGVyKClcbiAgY29uc3QgbWFpbkNvbXBvc2l0ZSA9IGNvbXBvc2l0ZVByb3ZpZGVyLmdldENvbXBvc2l0ZU9yTnVsbCgnbWFpbi5jb21wb3NpdGUnKVxuICBpZiAobWFpbkNvbXBvc2l0ZSkge1xuICAgIENvbXBvc2l0ZS5pbnN0YW5jZShlbmdpbmUsIG1haW5Db21wb3NpdGUsIGNvbXBvc2l0ZVByb3ZpZGVyKVxuICB9XG5cbiAgYXdhaXQgYmFzaWNPblN0YXJ0KClcbn1cbiJdfQ==
|