@dcl/asset-packs 0.0.0-20230905214546.commit-bfaa21d

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/README.md ADDED
@@ -0,0 +1,49 @@
1
+ ## asset-packs
2
+
3
+ This repo holds all the asset packs for the Web Editor. When the repo is deployed, all the files are hashed and uploaded to an S3 bucket under `contents/:hash` and the `catalog.json` is regenerated with all the asset packs and assets data. The bucket is accessible through the `builder-items.decentraland.*` via Cloudflare.
4
+
5
+ ### Production
6
+
7
+ - Catalog: `https://builder-items.decentraland.org/catalog.json`
8
+
9
+ - Contents: `https://builder-items.decentraland.org/contents/:hash`
10
+
11
+ ### Development
12
+
13
+ - Catalog: `https://builder-items.decentraland.zone/catalog.json`
14
+
15
+ - Contents: `https://builder-items.decentraland.zone/contents/:hash`
16
+
17
+ ### Deployment
18
+
19
+ Every push to the `main` branch will be deployed to the development environemnt.
20
+
21
+ Every [release](https://github.com/decentraland/asset-packs/releases) will be deployed to the production environment.
22
+
23
+ ### Local Development
24
+
25
+ You can develop this repo locally and test it within the Web Editor by doing the following:
26
+
27
+ Go to this repo in your machine and do this:
28
+ 1. Run `npm run start:lib` to watch for changes.
29
+ 2. Run `npm run start:js` to start running the SDK7 scene locally (by default on port `8000`).
30
+ 3. Run `npm link` to allow other projects to symlink to this one.
31
+ 4. Copy the path to the `bin/index.js` in this repo (something like `/Users/my-user/path/to/asset-packs/bin/index.js`).
32
+
33
+ Go the `builder-server` repo in your machine and do this:
34
+ 1. Set the `DEV_SCENE_JS_PATH` env var in `.env` to the path you copied in the previous section.
35
+ 2. Set the `DEV_SCENE_JS_PORT` to the port where the SDK7 started running (by defualt `8000`).
36
+ 3. Run `npm start` to start the server (by default on port `5000`)
37
+ 4. Run `npx local-ssl-proxy --source 5001 --target 5000`. Now the server can be used via HTTPS on port `5001`. You might need to open the browser on `https://localhost:5001` and acknowledge the warning message you will see there before the browser can make requests to it (this only needs to be done once). This is because the SSL certificate is self-signed and untrusted by default.
38
+
39
+ Go the `js-sdk-toolchain` repo in your machine and do this:
40
+ 1. Run `cd packages/@dcl/inspector`.
41
+ 2. Run `npm link @dcl/asset-packs` to symlink to your local repository
42
+ 3. Run `npm start` to start a local dev server. It should start by default on port `8000` but since we are already using it for the SDK7 scene, it will start on port `8001`.
43
+
44
+ Go to the `builder` repo in your machine and do this:
45
+ 1. Set the `REACT_APP_INSPECTOR_PORT` env var in `.env` to be `8001` (this is the `@dcl/inspector` dev server we started in the previous section).
46
+ 2. Change the `BUILDER_SERVER_URL` in the `src/config/env/dev.json` to be `https://localhost:5001` (this is our local builder server behind the HTTPS proxy).
47
+ 3. Run `npm start` to start the builder local server which should start on port `3000`
48
+
49
+ Now you are all set, you can start developing the SDK7 scene in this repo, use it from the local Builder and test it by previewing the scene, which should use your local Builder Server serving the development javascript files.
@@ -0,0 +1,4 @@
1
+ import { Entity } from '@dcl/sdk/ecs';
2
+ export declare const actions: Map<Entity, Map<string, () => void>>;
3
+ export declare function playAction(entity?: Entity, name?: string): void;
4
+ export declare function actionsSystem(dt: number): void;
@@ -0,0 +1,69 @@
1
+ import { engine, Animator } from '@dcl/sdk/ecs';
2
+ import { Actions } from './components';
3
+ import { ActionType } from './definitions';
4
+ const inited = new Set();
5
+ export const actions = new Map();
6
+ function addAction(entity, name, callback) {
7
+ if (!actions.has(entity)) {
8
+ actions.set(entity, new Map());
9
+ }
10
+ const entityActions = actions.get(entity);
11
+ entityActions.set(name, callback);
12
+ }
13
+ export function playAction(entity, name) {
14
+ if (entity && name) {
15
+ const entityActions = actions.get(entity);
16
+ if (entityActions && entityActions.has(name)) {
17
+ const callback = entityActions.get(name);
18
+ callback();
19
+ }
20
+ }
21
+ }
22
+ export function actionsSystem(dt) {
23
+ const entitiesWithActions = engine.getEntitiesWith(Actions);
24
+ for (const [entity, actions] of entitiesWithActions) {
25
+ if (inited.has(entity)) {
26
+ continue;
27
+ }
28
+ for (const action of actions.value) {
29
+ switch (action.type) {
30
+ case ActionType.PLAY_ANIMATION: {
31
+ initPlayAnimationAction(entity, action);
32
+ break;
33
+ }
34
+ }
35
+ }
36
+ inited.add(entity);
37
+ }
38
+ }
39
+ function initPlayAnimationAction(entity, action) {
40
+ const clipName = action.animation || '';
41
+ if (!Animator.has(entity)) {
42
+ Animator.create(entity, {
43
+ states: [
44
+ {
45
+ name: clipName,
46
+ clip: clipName,
47
+ },
48
+ ],
49
+ });
50
+ }
51
+ else {
52
+ const animator = Animator.getMutable(entity);
53
+ animator.states = [
54
+ ...animator.states,
55
+ {
56
+ name: clipName,
57
+ clip: clipName,
58
+ },
59
+ ];
60
+ }
61
+ addAction(entity, action.name, () => {
62
+ Animator.stopAllAnimations(entity);
63
+ console.log('Animator.getClip(entity, clipName)', entity, clipName);
64
+ const clip = Animator.getClip(entity, clipName);
65
+ clip.playing = true;
66
+ clip.loop = false;
67
+ });
68
+ }
69
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aW9ucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9hY3Rpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQVUsUUFBUSxFQUFFLE1BQU0sY0FBYyxDQUFBO0FBQ3ZELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxjQUFjLENBQUE7QUFDdEMsT0FBTyxFQUFVLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQTtBQUVsRCxNQUFNLE1BQU0sR0FBRyxJQUFJLEdBQUcsRUFBVSxDQUFBO0FBRWhDLE1BQU0sQ0FBQyxNQUFNLE9BQU8sR0FBRyxJQUFJLEdBQUcsRUFBbUMsQ0FBQTtBQUVqRSxTQUFTLFNBQVMsQ0FBQyxNQUFjLEVBQUUsSUFBWSxFQUFFLFFBQW9CO0lBQ25FLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxFQUFFO1FBQ3hCLE9BQU8sQ0FBQyxHQUFHLENBQUMsTUFBTSxFQUFFLElBQUksR0FBRyxFQUFzQixDQUFDLENBQUE7S0FDbkQ7SUFDRCxNQUFNLGFBQWEsR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBRSxDQUFBO0lBQzFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsSUFBSSxFQUFFLFFBQVEsQ0FBQyxDQUFBO0FBQ25DLENBQUM7QUFFRCxNQUFNLFVBQVUsVUFBVSxDQUFDLE1BQWUsRUFBRSxJQUFhO0lBQ3ZELElBQUksTUFBTSxJQUFJLElBQUksRUFBRTtRQUNsQixNQUFNLGFBQWEsR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFBO1FBQ3pDLElBQUksYUFBYSxJQUFJLGFBQWEsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUU7WUFDNUMsTUFBTSxRQUFRLEdBQUcsYUFBYSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUUsQ0FBQTtZQUN6QyxRQUFRLEVBQUUsQ0FBQTtTQUNYO0tBQ0Y7QUFDSCxDQUFDO0FBRUQsTUFBTSxVQUFVLGFBQWEsQ0FBQyxFQUFVO0lBQ3RDLE1BQU0sbUJBQW1CLEdBQUcsTUFBTSxDQUFDLGVBQWUsQ0FBQyxPQUFPLENBQUMsQ0FBQTtJQUMzRCxLQUFLLE1BQU0sQ0FBQyxNQUFNLEVBQUUsT0FBTyxDQUFDLElBQUksbUJBQW1CLEVBQUU7UUFDbkQsSUFBSSxNQUFNLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxFQUFFO1lBQ3RCLFNBQVE7U0FDVDtRQUVELEtBQUssTUFBTSxNQUFNLElBQUksT0FBTyxDQUFDLEtBQUssRUFBRTtZQUNsQyxRQUFRLE1BQU0sQ0FBQyxJQUFJLEVBQUU7Z0JBQ25CLEtBQUssVUFBVSxDQUFDLGNBQWMsQ0FBQyxDQUFDO29CQUM5Qix1QkFBdUIsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUE7b0JBQ3ZDLE1BQUs7aUJBQ047YUFDRjtTQUNGO1FBRUQsTUFBTSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQTtLQUNuQjtBQUNILENBQUM7QUFHRCxTQUFTLHVCQUF1QixDQUFDLE1BQWMsRUFBRSxNQUFjO0lBQzdELE1BQU0sUUFBUSxHQUFHLE1BQU0sQ0FBQyxTQUFTLElBQUksRUFBRSxDQUFBO0lBQ3ZDLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxFQUFFO1FBQ3pCLFFBQVEsQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFO1lBQ3RCLE1BQU0sRUFBRTtnQkFDTjtvQkFDRSxJQUFJLEVBQUUsUUFBUTtvQkFDZCxJQUFJLEVBQUUsUUFBUTtpQkFDZjthQUNGO1NBQ0YsQ0FBQyxDQUFBO0tBQ0g7U0FBTTtRQUNMLE1BQU0sUUFBUSxHQUFHLFFBQVEsQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUE7UUFDNUMsUUFBUSxDQUFDLE1BQU0sR0FBRztZQUNoQixHQUFHLFFBQVEsQ0FBQyxNQUFNO1lBQ2xCO2dCQUNFLElBQUksRUFBRSxRQUFRO2dCQUNkLElBQUksRUFBRSxRQUFRO2FBQ2Y7U0FDRixDQUFBO0tBQ0Y7SUFFRCxTQUFTLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxJQUFJLEVBQUUsR0FBRyxFQUFFO1FBQ2xDLFFBQVEsQ0FBQyxpQkFBaUIsQ0FBQyxNQUFNLENBQUMsQ0FBQTtRQUNsQyxPQUFPLENBQUMsR0FBRyxDQUFDLG9DQUFvQyxFQUFFLE1BQU0sRUFBRSxRQUFRLENBQUMsQ0FBQTtRQUNuRSxNQUFNLElBQUksR0FBRyxRQUFRLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxRQUFRLENBQUMsQ0FBQTtRQUMvQyxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQTtRQUNuQixJQUFJLENBQUMsSUFBSSxHQUFHLEtBQUssQ0FBQTtJQUNuQixDQUFDLENBQUMsQ0FBQTtBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBlbmdpbmUsIEVudGl0eSwgQW5pbWF0b3IgfSBmcm9tICdAZGNsL3Nkay9lY3MnXG5pbXBvcnQgeyBBY3Rpb25zIH0gZnJvbSAnLi9jb21wb25lbnRzJ1xuaW1wb3J0IHsgQWN0aW9uLCBBY3Rpb25UeXBlIH0gZnJvbSAnLi9kZWZpbml0aW9ucydcblxuY29uc3QgaW5pdGVkID0gbmV3IFNldDxFbnRpdHk+KClcblxuZXhwb3J0IGNvbnN0IGFjdGlvbnMgPSBuZXcgTWFwPEVudGl0eSwgTWFwPHN0cmluZywgKCkgPT4gdm9pZD4+KClcblxuZnVuY3Rpb24gYWRkQWN0aW9uKGVudGl0eTogRW50aXR5LCBuYW1lOiBzdHJpbmcsIGNhbGxiYWNrOiAoKSA9PiB2b2lkKSB7XG4gIGlmICghYWN0aW9ucy5oYXMoZW50aXR5KSkge1xuICAgIGFjdGlvbnMuc2V0KGVudGl0eSwgbmV3IE1hcDxzdHJpbmcsICgpID0+IHZvaWQ+KCkpXG4gIH1cbiAgY29uc3QgZW50aXR5QWN0aW9ucyA9IGFjdGlvbnMuZ2V0KGVudGl0eSkhXG4gIGVudGl0eUFjdGlvbnMuc2V0KG5hbWUsIGNhbGxiYWNrKVxufVxuXG5leHBvcnQgZnVuY3Rpb24gcGxheUFjdGlvbihlbnRpdHk/OiBFbnRpdHksIG5hbWU/OiBzdHJpbmcpIHtcbiAgaWYgKGVudGl0eSAmJiBuYW1lKSB7XG4gICAgY29uc3QgZW50aXR5QWN0aW9ucyA9IGFjdGlvbnMuZ2V0KGVudGl0eSlcbiAgICBpZiAoZW50aXR5QWN0aW9ucyAmJiBlbnRpdHlBY3Rpb25zLmhhcyhuYW1lKSkge1xuICAgICAgY29uc3QgY2FsbGJhY2sgPSBlbnRpdHlBY3Rpb25zLmdldChuYW1lKSFcbiAgICAgIGNhbGxiYWNrKClcbiAgICB9XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGFjdGlvbnNTeXN0ZW0oZHQ6IG51bWJlcikge1xuICBjb25zdCBlbnRpdGllc1dpdGhBY3Rpb25zID0gZW5naW5lLmdldEVudGl0aWVzV2l0aChBY3Rpb25zKVxuICBmb3IgKGNvbnN0IFtlbnRpdHksIGFjdGlvbnNdIG9mIGVudGl0aWVzV2l0aEFjdGlvbnMpIHtcbiAgICBpZiAoaW5pdGVkLmhhcyhlbnRpdHkpKSB7XG4gICAgICBjb250aW51ZVxuICAgIH1cblxuICAgIGZvciAoY29uc3QgYWN0aW9uIG9mIGFjdGlvbnMudmFsdWUpIHtcbiAgICAgIHN3aXRjaCAoYWN0aW9uLnR5cGUpIHtcbiAgICAgICAgY2FzZSBBY3Rpb25UeXBlLlBMQVlfQU5JTUFUSU9OOiB7XG4gICAgICAgICAgaW5pdFBsYXlBbmltYXRpb25BY3Rpb24oZW50aXR5LCBhY3Rpb24pXG4gICAgICAgICAgYnJlYWtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIGluaXRlZC5hZGQoZW50aXR5KVxuICB9XG59XG5cbi8vIFBMQVlfQU5JTUFUSU9OXG5mdW5jdGlvbiBpbml0UGxheUFuaW1hdGlvbkFjdGlvbihlbnRpdHk6IEVudGl0eSwgYWN0aW9uOiBBY3Rpb24pIHtcbiAgY29uc3QgY2xpcE5hbWUgPSBhY3Rpb24uYW5pbWF0aW9uIHx8ICcnXG4gIGlmICghQW5pbWF0b3IuaGFzKGVudGl0eSkpIHtcbiAgICBBbmltYXRvci5jcmVhdGUoZW50aXR5LCB7XG4gICAgICBzdGF0ZXM6IFtcbiAgICAgICAge1xuICAgICAgICAgIG5hbWU6IGNsaXBOYW1lLFxuICAgICAgICAgIGNsaXA6IGNsaXBOYW1lLFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICB9KVxuICB9IGVsc2Uge1xuICAgIGNvbnN0IGFuaW1hdG9yID0gQW5pbWF0b3IuZ2V0TXV0YWJsZShlbnRpdHkpXG4gICAgYW5pbWF0b3Iuc3RhdGVzID0gW1xuICAgICAgLi4uYW5pbWF0b3Iuc3RhdGVzLFxuICAgICAge1xuICAgICAgICBuYW1lOiBjbGlwTmFtZSxcbiAgICAgICAgY2xpcDogY2xpcE5hbWUsXG4gICAgICB9LFxuICAgIF1cbiAgfVxuXG4gIGFkZEFjdGlvbihlbnRpdHksIGFjdGlvbi5uYW1lLCAoKSA9PiB7XG4gICAgQW5pbWF0b3Iuc3RvcEFsbEFuaW1hdGlvbnMoZW50aXR5KVxuICAgIGNvbnNvbGUubG9nKCdBbmltYXRvci5nZXRDbGlwKGVudGl0eSwgY2xpcE5hbWUpJywgZW50aXR5LCBjbGlwTmFtZSlcbiAgICBjb25zdCBjbGlwID0gQW5pbWF0b3IuZ2V0Q2xpcChlbnRpdHksIGNsaXBOYW1lKVxuICAgIGNsaXAucGxheWluZyA9IHRydWVcbiAgICBjbGlwLmxvb3AgPSBmYWxzZVxuICB9KVxufVxuIl19
@@ -0,0 +1,13 @@
1
+ export declare const Actions: import("@dcl/sdk/ecs").MapComponentDefinition<import("@dcl/sdk/ecs").MapResult<{
2
+ value: import("@dcl/sdk/ecs").ISchema<import("@dcl/sdk/ecs").MapResult<{
3
+ name: import("@dcl/sdk/ecs").ISchema<string>;
4
+ type: import("@dcl/sdk/ecs").ISchema<import("./definitions").ActionType>;
5
+ animation: import("@dcl/sdk/ecs").ISchema<string | undefined>;
6
+ }>[]>;
7
+ }>>, Triggers: import("@dcl/sdk/ecs").MapComponentDefinition<import("@dcl/sdk/ecs").MapResult<{
8
+ value: import("@dcl/sdk/ecs").ISchema<import("@dcl/sdk/ecs").MapResult<{
9
+ type: import("@dcl/sdk/ecs").ISchema<import("./definitions").TriggerType>;
10
+ entity: import("@dcl/sdk/ecs").ISchema<import("@dcl/sdk/ecs").Entity | undefined>;
11
+ action: import("@dcl/sdk/ecs").ISchema<string | undefined>;
12
+ }>[]>;
13
+ }>>;
@@ -0,0 +1,4 @@
1
+ import { engine } from "@dcl/sdk/ecs";
2
+ import { createComponents } from "./definitions";
3
+ export const { Actions, Triggers } = createComponents(engine);
4
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcG9uZW50cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9jb21wb25lbnRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDdEMsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRWpELE1BQU0sQ0FBQyxNQUFNLEVBQUUsT0FBTyxFQUFFLFFBQVEsRUFBRSxHQUFHLGdCQUFnQixDQUFDLE1BQU0sQ0FBQyxDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZW5naW5lIH0gZnJvbSBcIkBkY2wvc2RrL2Vjc1wiO1xuaW1wb3J0IHsgY3JlYXRlQ29tcG9uZW50cyB9IGZyb20gXCIuL2RlZmluaXRpb25zXCI7XG5cbmV4cG9ydCBjb25zdCB7IEFjdGlvbnMsIFRyaWdnZXJzIH0gPSBjcmVhdGVDb21wb25lbnRzKGVuZ2luZSkiXX0=
@@ -0,0 +1,32 @@
1
+ import { IEngine } from '@dcl/sdk/ecs';
2
+ export declare enum ComponentName {
3
+ ACTIONS = "inspector::Actions",
4
+ TRIGGERS = "inspector::Triggers"
5
+ }
6
+ export declare enum ActionType {
7
+ PLAY_ANIMATION = "play_animation"
8
+ }
9
+ export declare enum TriggerType {
10
+ ON_CLICK = "on_click"
11
+ }
12
+ export declare function createComponents(engine: IEngine): {
13
+ Actions: import("@dcl/sdk/ecs").MapComponentDefinition<import("@dcl/sdk/ecs").MapResult<{
14
+ value: import("@dcl/sdk/ecs").ISchema<import("@dcl/sdk/ecs").MapResult<{
15
+ name: import("@dcl/sdk/ecs").ISchema<string>;
16
+ type: import("@dcl/sdk/ecs").ISchema<ActionType>;
17
+ animation: import("@dcl/sdk/ecs").ISchema<string | undefined>;
18
+ }>[]>;
19
+ }>>;
20
+ Triggers: import("@dcl/sdk/ecs").MapComponentDefinition<import("@dcl/sdk/ecs").MapResult<{
21
+ value: import("@dcl/sdk/ecs").ISchema<import("@dcl/sdk/ecs").MapResult<{
22
+ type: import("@dcl/sdk/ecs").ISchema<TriggerType>;
23
+ entity: import("@dcl/sdk/ecs").ISchema<import("@dcl/sdk/ecs").Entity | undefined>;
24
+ action: import("@dcl/sdk/ecs").ISchema<string | undefined>;
25
+ }>[]>;
26
+ }>>;
27
+ };
28
+ export type Components = ReturnType<typeof createComponents>;
29
+ export type ActionsComponent = Components['Actions'];
30
+ export type Action = ReturnType<ActionsComponent['get']>['value'][0];
31
+ export type TriggersComponent = Components['Triggers'];
32
+ export type Trigger = ReturnType<TriggersComponent['get']>['value'][0];
@@ -0,0 +1,35 @@
1
+ import { Schemas } from '@dcl/sdk/ecs';
2
+ export var ComponentName;
3
+ (function (ComponentName) {
4
+ ComponentName["ACTIONS"] = "inspector::Actions";
5
+ ComponentName["TRIGGERS"] = "inspector::Triggers";
6
+ })(ComponentName || (ComponentName = {}));
7
+ export var ActionType;
8
+ (function (ActionType) {
9
+ ActionType["PLAY_ANIMATION"] = "play_animation";
10
+ })(ActionType || (ActionType = {}));
11
+ export var TriggerType;
12
+ (function (TriggerType) {
13
+ TriggerType["ON_CLICK"] = "on_click";
14
+ })(TriggerType || (TriggerType = {}));
15
+ export function createComponents(engine) {
16
+ const Actions = engine.defineComponent(ComponentName.ACTIONS, {
17
+ value: Schemas.Array(Schemas.Map({
18
+ name: Schemas.String,
19
+ type: Schemas.EnumString(ActionType, ActionType.PLAY_ANIMATION),
20
+ animation: Schemas.Optional(Schemas.String),
21
+ })),
22
+ });
23
+ const Triggers = engine.defineComponent(ComponentName.TRIGGERS, {
24
+ value: Schemas.Array(Schemas.Map({
25
+ type: Schemas.EnumString(TriggerType, TriggerType.ON_CLICK),
26
+ entity: Schemas.Optional(Schemas.Entity),
27
+ action: Schemas.Optional(Schemas.String),
28
+ })),
29
+ });
30
+ return {
31
+ Actions,
32
+ Triggers,
33
+ };
34
+ }
35
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVmaW5pdGlvbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvZGVmaW5pdGlvbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFXLE9BQU8sRUFBRSxNQUFNLGNBQWMsQ0FBQTtBQUUvQyxNQUFNLENBQU4sSUFBWSxhQUdYO0FBSEQsV0FBWSxhQUFhO0lBQ3ZCLCtDQUE4QixDQUFBO0lBQzlCLGlEQUFnQyxDQUFBO0FBQ2xDLENBQUMsRUFIVyxhQUFhLEtBQWIsYUFBYSxRQUd4QjtBQUVELE1BQU0sQ0FBTixJQUFZLFVBRVg7QUFGRCxXQUFZLFVBQVU7SUFDcEIsK0NBQWlDLENBQUE7QUFDbkMsQ0FBQyxFQUZXLFVBQVUsS0FBVixVQUFVLFFBRXJCO0FBRUQsTUFBTSxDQUFOLElBQVksV0FFWDtBQUZELFdBQVksV0FBVztJQUNyQixvQ0FBcUIsQ0FBQTtBQUN2QixDQUFDLEVBRlcsV0FBVyxLQUFYLFdBQVcsUUFFdEI7QUFFRCxNQUFNLFVBQVUsZ0JBQWdCLENBQUMsTUFBZTtJQUM5QyxNQUFNLE9BQU8sR0FBRyxNQUFNLENBQUMsZUFBZSxDQUFDLGFBQWEsQ0FBQyxPQUFPLEVBQUU7UUFDNUQsS0FBSyxFQUFFLE9BQU8sQ0FBQyxLQUFLLENBQ2xCLE9BQU8sQ0FBQyxHQUFHLENBQUM7WUFDVixJQUFJLEVBQUUsT0FBTyxDQUFDLE1BQU07WUFDcEIsSUFBSSxFQUFFLE9BQU8sQ0FBQyxVQUFVLENBQ3RCLFVBQVUsRUFDVixVQUFVLENBQUMsY0FBYyxDQUMxQjtZQUNELFNBQVMsRUFBRSxPQUFPLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUM7U0FDNUMsQ0FBQyxDQUNIO0tBQ0YsQ0FBQyxDQUFBO0lBRUYsTUFBTSxRQUFRLEdBQUcsTUFBTSxDQUFDLGVBQWUsQ0FBQyxhQUFhLENBQUMsUUFBUSxFQUFFO1FBQzlELEtBQUssRUFBRSxPQUFPLENBQUMsS0FBSyxDQUNsQixPQUFPLENBQUMsR0FBRyxDQUFDO1lBQ1YsSUFBSSxFQUFFLE9BQU8sQ0FBQyxVQUFVLENBQ3RCLFdBQVcsRUFDWCxXQUFXLENBQUMsUUFBUSxDQUNyQjtZQUNELE1BQU0sRUFBRSxPQUFPLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUM7WUFDeEMsTUFBTSxFQUFFLE9BQU8sQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQztTQUN6QyxDQUFDLENBQ0g7S0FDRixDQUFDLENBQUE7SUFFRixPQUFPO1FBQ0wsT0FBTztRQUNQLFFBQVE7S0FDVCxDQUFBO0FBQ0gsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IElFbmdpbmUsIFNjaGVtYXMgfSBmcm9tICdAZGNsL3Nkay9lY3MnXG5cbmV4cG9ydCBlbnVtIENvbXBvbmVudE5hbWUge1xuICBBQ1RJT05TID0gJ2luc3BlY3Rvcjo6QWN0aW9ucycsXG4gIFRSSUdHRVJTID0gJ2luc3BlY3Rvcjo6VHJpZ2dlcnMnLFxufVxuXG5leHBvcnQgZW51bSBBY3Rpb25UeXBlIHtcbiAgUExBWV9BTklNQVRJT04gPSAncGxheV9hbmltYXRpb24nLFxufVxuXG5leHBvcnQgZW51bSBUcmlnZ2VyVHlwZSB7XG4gIE9OX0NMSUNLID0gJ29uX2NsaWNrJyxcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZUNvbXBvbmVudHMoZW5naW5lOiBJRW5naW5lKSB7XG4gIGNvbnN0IEFjdGlvbnMgPSBlbmdpbmUuZGVmaW5lQ29tcG9uZW50KENvbXBvbmVudE5hbWUuQUNUSU9OUywge1xuICAgIHZhbHVlOiBTY2hlbWFzLkFycmF5KFxuICAgICAgU2NoZW1hcy5NYXAoe1xuICAgICAgICBuYW1lOiBTY2hlbWFzLlN0cmluZyxcbiAgICAgICAgdHlwZTogU2NoZW1hcy5FbnVtU3RyaW5nPEFjdGlvblR5cGU+KFxuICAgICAgICAgIEFjdGlvblR5cGUsXG4gICAgICAgICAgQWN0aW9uVHlwZS5QTEFZX0FOSU1BVElPTixcbiAgICAgICAgKSxcbiAgICAgICAgYW5pbWF0aW9uOiBTY2hlbWFzLk9wdGlvbmFsKFNjaGVtYXMuU3RyaW5nKSxcbiAgICAgIH0pLFxuICAgICksXG4gIH0pXG5cbiAgY29uc3QgVHJpZ2dlcnMgPSBlbmdpbmUuZGVmaW5lQ29tcG9uZW50KENvbXBvbmVudE5hbWUuVFJJR0dFUlMsIHtcbiAgICB2YWx1ZTogU2NoZW1hcy5BcnJheShcbiAgICAgIFNjaGVtYXMuTWFwKHtcbiAgICAgICAgdHlwZTogU2NoZW1hcy5FbnVtU3RyaW5nPFRyaWdnZXJUeXBlPihcbiAgICAgICAgICBUcmlnZ2VyVHlwZSxcbiAgICAgICAgICBUcmlnZ2VyVHlwZS5PTl9DTElDSyxcbiAgICAgICAgKSxcbiAgICAgICAgZW50aXR5OiBTY2hlbWFzLk9wdGlvbmFsKFNjaGVtYXMuRW50aXR5KSxcbiAgICAgICAgYWN0aW9uOiBTY2hlbWFzLk9wdGlvbmFsKFNjaGVtYXMuU3RyaW5nKSxcbiAgICAgIH0pLFxuICAgICksXG4gIH0pXG5cbiAgcmV0dXJuIHtcbiAgICBBY3Rpb25zLFxuICAgIFRyaWdnZXJzLFxuICB9XG59XG5cbmV4cG9ydCB0eXBlIENvbXBvbmVudHMgPSBSZXR1cm5UeXBlPHR5cGVvZiBjcmVhdGVDb21wb25lbnRzPlxuXG5leHBvcnQgdHlwZSBBY3Rpb25zQ29tcG9uZW50ID0gQ29tcG9uZW50c1snQWN0aW9ucyddXG5leHBvcnQgdHlwZSBBY3Rpb24gPSBSZXR1cm5UeXBlPEFjdGlvbnNDb21wb25lbnRbJ2dldCddPlsndmFsdWUnXVswXVxuXG5leHBvcnQgdHlwZSBUcmlnZ2Vyc0NvbXBvbmVudCA9IENvbXBvbmVudHNbJ1RyaWdnZXJzJ11cbmV4cG9ydCB0eXBlIFRyaWdnZXIgPSBSZXR1cm5UeXBlPFRyaWdnZXJzQ29tcG9uZW50WydnZXQnXT5bJ3ZhbHVlJ11bMF1cbiJdfQ==
@@ -0,0 +1 @@
1
+ export declare function main(): void;
package/dist/index.js ADDED
@@ -0,0 +1,8 @@
1
+ import { engine } from '@dcl/sdk/ecs';
2
+ import { actionsSystem } from './actions';
3
+ import { triggersSystem } from './triggers';
4
+ export function main() {
5
+ engine.addSystem(actionsSystem);
6
+ engine.addSystem(triggersSystem);
7
+ }
8
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFHLE1BQU0sRUFBRSxNQUFNLGNBQWMsQ0FBQTtBQUN0QyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sV0FBVyxDQUFBO0FBQ3pDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxZQUFZLENBQUE7QUFFM0MsTUFBTSxVQUFVLElBQUk7SUFDbEIsTUFBTSxDQUFDLFNBQVMsQ0FBQyxhQUFhLENBQUMsQ0FBQTtJQUMvQixNQUFNLENBQUMsU0FBUyxDQUFDLGNBQWMsQ0FBQyxDQUFBO0FBQ2xDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyAgZW5naW5lIH0gZnJvbSAnQGRjbC9zZGsvZWNzJ1xuaW1wb3J0IHsgYWN0aW9uc1N5c3RlbSB9IGZyb20gJy4vYWN0aW9ucydcbmltcG9ydCB7IHRyaWdnZXJzU3lzdGVtIH0gZnJvbSAnLi90cmlnZ2VycydcblxuZXhwb3J0IGZ1bmN0aW9uIG1haW4oKSB7XG4gIGVuZ2luZS5hZGRTeXN0ZW0oYWN0aW9uc1N5c3RlbSlcbiAgZW5naW5lLmFkZFN5c3RlbSh0cmlnZ2Vyc1N5c3RlbSlcbn1cbiJdfQ==
@@ -0,0 +1 @@
1
+ export declare function triggersSystem(_dt: number): void;
@@ -0,0 +1,32 @@
1
+ import { engine, pointerEventsSystem } from '@dcl/sdk/ecs';
2
+ import { Triggers } from './components';
3
+ import { TriggerType } from './definitions';
4
+ import { playAction } from './actions';
5
+ const inited = new Set();
6
+ export function triggersSystem(_dt) {
7
+ const entitiesWithTriggers = engine.getEntitiesWith(Triggers);
8
+ for (const [entity, triggers] of entitiesWithTriggers) {
9
+ if (inited.has(entity)) {
10
+ continue;
11
+ }
12
+ for (const trigger of triggers.value) {
13
+ console.log('trigger', trigger, trigger);
14
+ switch (trigger.type) {
15
+ case TriggerType.ON_CLICK: {
16
+ initOnClickTrigger(entity, trigger);
17
+ break;
18
+ }
19
+ }
20
+ }
21
+ inited.add(entity);
22
+ }
23
+ }
24
+ function initOnClickTrigger(entity, trigger) {
25
+ pointerEventsSystem.onPointerDown({
26
+ entity,
27
+ opts: { button: 0, hoverText: 'Click' },
28
+ }, function () {
29
+ playAction(trigger.entity, trigger.action);
30
+ });
31
+ }
32
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJpZ2dlcnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvdHJpZ2dlcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBVSxtQkFBbUIsRUFBZSxNQUFNLGNBQWMsQ0FBQTtBQUMvRSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sY0FBYyxDQUFBO0FBQ3ZDLE9BQU8sRUFBVyxXQUFXLEVBQUUsTUFBTSxlQUFlLENBQUE7QUFDcEQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLFdBQVcsQ0FBQTtBQUV0QyxNQUFNLE1BQU0sR0FBRyxJQUFJLEdBQUcsRUFBVSxDQUFBO0FBRWhDLE1BQU0sVUFBVSxjQUFjLENBQUMsR0FBVztJQUN4QyxNQUFNLG9CQUFvQixHQUFHLE1BQU0sQ0FBQyxlQUFlLENBQUMsUUFBUSxDQUFDLENBQUE7SUFDN0QsS0FBSyxNQUFNLENBQUMsTUFBTSxFQUFFLFFBQVEsQ0FBQyxJQUFJLG9CQUFvQixFQUFFO1FBQ3JELElBQUksTUFBTSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsRUFBRTtZQUN0QixTQUFRO1NBQ1Q7UUFFRCxLQUFLLE1BQU0sT0FBTyxJQUFJLFFBQVEsQ0FBQyxLQUFLLEVBQUU7WUFDcEMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxTQUFTLEVBQUUsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFBO1lBQ3hDLFFBQVEsT0FBTyxDQUFDLElBQUksRUFBRTtnQkFDcEIsS0FBSyxXQUFXLENBQUMsUUFBUSxDQUFDLENBQUM7b0JBQ3pCLGtCQUFrQixDQUFDLE1BQU0sRUFBRSxPQUFPLENBQUMsQ0FBQTtvQkFDbkMsTUFBSztpQkFDTjthQUNGO1NBQ0Y7UUFFRCxNQUFNLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFBO0tBQ25CO0FBQ0gsQ0FBQztBQUdELFNBQVMsa0JBQWtCLENBQUMsTUFBYyxFQUFFLE9BQWdCO0lBQzFELG1CQUFtQixDQUFDLGFBQWEsQ0FDL0I7UUFDRSxNQUFNO1FBQ04sSUFBSSxFQUFFLEVBQUUsTUFBTSxHQUF3QixFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUU7S0FDN0QsRUFDRDtRQUNFLFVBQVUsQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQTtJQUM1QyxDQUFDLENBQ0YsQ0FBQTtBQUNILENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBlbmdpbmUsIEVudGl0eSwgcG9pbnRlckV2ZW50c1N5c3RlbSwgSW5wdXRBY3Rpb24gfSBmcm9tICdAZGNsL3Nkay9lY3MnXG5pbXBvcnQgeyBUcmlnZ2VycyB9IGZyb20gJy4vY29tcG9uZW50cydcbmltcG9ydCB7IFRyaWdnZXIsIFRyaWdnZXJUeXBlIH0gZnJvbSAnLi9kZWZpbml0aW9ucydcbmltcG9ydCB7IHBsYXlBY3Rpb24gfSBmcm9tICcuL2FjdGlvbnMnXG5cbmNvbnN0IGluaXRlZCA9IG5ldyBTZXQ8RW50aXR5PigpXG5cbmV4cG9ydCBmdW5jdGlvbiB0cmlnZ2Vyc1N5c3RlbShfZHQ6IG51bWJlcikge1xuICBjb25zdCBlbnRpdGllc1dpdGhUcmlnZ2VycyA9IGVuZ2luZS5nZXRFbnRpdGllc1dpdGgoVHJpZ2dlcnMpXG4gIGZvciAoY29uc3QgW2VudGl0eSwgdHJpZ2dlcnNdIG9mIGVudGl0aWVzV2l0aFRyaWdnZXJzKSB7XG4gICAgaWYgKGluaXRlZC5oYXMoZW50aXR5KSkge1xuICAgICAgY29udGludWVcbiAgICB9XG5cbiAgICBmb3IgKGNvbnN0IHRyaWdnZXIgb2YgdHJpZ2dlcnMudmFsdWUpIHtcbiAgICAgIGNvbnNvbGUubG9nKCd0cmlnZ2VyJywgdHJpZ2dlciwgdHJpZ2dlcilcbiAgICAgIHN3aXRjaCAodHJpZ2dlci50eXBlKSB7XG4gICAgICAgIGNhc2UgVHJpZ2dlclR5cGUuT05fQ0xJQ0s6IHtcbiAgICAgICAgICBpbml0T25DbGlja1RyaWdnZXIoZW50aXR5LCB0cmlnZ2VyKVxuICAgICAgICAgIGJyZWFrXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICBpbml0ZWQuYWRkKGVudGl0eSlcbiAgfVxufVxuXG4vLyBPTl9DTElDS1xuZnVuY3Rpb24gaW5pdE9uQ2xpY2tUcmlnZ2VyKGVudGl0eTogRW50aXR5LCB0cmlnZ2VyOiBUcmlnZ2VyKSB7XG4gIHBvaW50ZXJFdmVudHNTeXN0ZW0ub25Qb2ludGVyRG93bihcbiAgICB7XG4gICAgICBlbnRpdHksXG4gICAgICBvcHRzOiB7IGJ1dHRvbjogSW5wdXRBY3Rpb24uSUFfUE9JTlRFUiwgaG92ZXJUZXh0OiAnQ2xpY2snIH0sXG4gICAgfSxcbiAgICBmdW5jdGlvbiAoKSB7XG4gICAgICBwbGF5QWN0aW9uKHRyaWdnZXIuZW50aXR5LCB0cmlnZ2VyLmFjdGlvbilcbiAgICB9LFxuICApXG59XG4iXX0=
package/package.json ADDED
@@ -0,0 +1,56 @@
1
+ {
2
+ "name": "@dcl/asset-packs",
3
+ "version": "0.0.0-20230905214546.commit-bfaa21d",
4
+ "description": "",
5
+ "main": "dist/definitions.js",
6
+ "typings": "dist/definitions.d.ts",
7
+ "scripts": {
8
+ "download": "ts-node --project tsconfig.scripts.json ./scripts/download.ts",
9
+ "validate": "ts-node --project tsconfig.scripts.json ./scripts/validate.ts",
10
+ "upload": "ts-node --project tsconfig.scripts.json ./scripts/upload.ts",
11
+ "catalog": "ts-node --project tsconfig.scripts.json ./scripts/catalog.ts",
12
+ "start": "npm run start:js & npm run start:lib",
13
+ "start:js": "sdk-commands start",
14
+ "start:lib": "npm run build:lib -- --watch",
15
+ "build:js": "sdk-commands build",
16
+ "build:lib": "tsc --project tsconfig.lib.json",
17
+ "build": "npm run build:js && npm run build:lib"
18
+ },
19
+ "repository": {
20
+ "type": "git",
21
+ "url": "git+https://github.com/decentraland/asset-packs.git"
22
+ },
23
+ "keywords": [],
24
+ "author": "",
25
+ "license": "ISC",
26
+ "bugs": {
27
+ "url": "https://github.com/decentraland/asset-packs/issues"
28
+ },
29
+ "homepage": "https://github.com/decentraland/asset-packs#readme",
30
+ "devDependencies": {
31
+ "@dcl/js-runtime": "7.3.12",
32
+ "@types/mime-types": "^2.1.1",
33
+ "@types/node-fetch": "^2.6.4",
34
+ "prettier": "^3.0.2",
35
+ "ts-node": "^10.9.1",
36
+ "typescript": "^5.1.6"
37
+ },
38
+ "dependencies": {
39
+ "@aws-sdk/client-s3": "^3.395.0",
40
+ "@aws-sdk/lib-storage": "^3.398.0",
41
+ "@dcl/hashing": "^3.0.4",
42
+ "@dcl/sdk": "^7.3.12",
43
+ "dotenv": "^16.3.1",
44
+ "fp-future": "^1.0.1",
45
+ "mime-types": "^2.1.35",
46
+ "node-fetch": "^2.6.13",
47
+ "p-queue": "^7.3.4",
48
+ "rimraf": "^5.0.1"
49
+ },
50
+ "prettier": {
51
+ "singleQuote": true,
52
+ "semi": false,
53
+ "printWidth": 80
54
+ },
55
+ "commit": "bfaa21d32b51c819f19ab07050aaead293f00400"
56
+ }