@dcl/ecs 7.10.3-17918694201.commit-b983b3b → 7.10.3-18106625709.commit-1bcaa4a

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.
Files changed (53) hide show
  1. package/dist/components/extended/TriggerArea.d.ts +22 -0
  2. package/dist/components/extended/TriggerArea.js +27 -0
  3. package/dist/components/generated/TriggerArea.gen.d.ts +1 -0
  4. package/dist/components/generated/TriggerArea.gen.js +25 -0
  5. package/dist/components/generated/TriggerAreaResult.gen.d.ts +1 -0
  6. package/dist/components/generated/TriggerAreaResult.gen.js +25 -0
  7. package/dist/components/generated/component-names.gen.js +2 -0
  8. package/dist/components/generated/global.gen.d.ts +4 -0
  9. package/dist/components/generated/global.gen.js +2 -0
  10. package/dist/components/generated/index.gen.d.ts +8 -0
  11. package/dist/components/generated/index.gen.js +12 -0
  12. package/dist/components/generated/pb/decentraland/sdk/components/mesh_collider.gen.d.ts +2 -1
  13. package/dist/components/generated/pb/decentraland/sdk/components/mesh_collider.gen.js +2 -1
  14. package/dist/components/generated/pb/decentraland/sdk/components/trigger_area.gen.d.ts +32 -0
  15. package/dist/components/generated/pb/decentraland/sdk/components/trigger_area.gen.js +58 -0
  16. package/dist/components/generated/pb/decentraland/sdk/components/trigger_area_result.gen.d.ts +60 -0
  17. package/dist/components/generated/pb/decentraland/sdk/components/trigger_area_result.gen.js +177 -0
  18. package/dist/components/index.d.ts +2 -0
  19. package/dist/components/index.js +3 -0
  20. package/dist/components/types.d.ts +1 -0
  21. package/dist/index.d.ts +3 -1
  22. package/dist/index.js +2 -0
  23. package/dist/runtime/initialization/index.d.ts +7 -0
  24. package/dist/runtime/initialization/index.js +6 -0
  25. package/dist/systems/triggerArea.d.ts +50 -0
  26. package/dist/systems/triggerArea.js +113 -0
  27. package/dist-cjs/components/extended/TriggerArea.d.ts +22 -0
  28. package/dist-cjs/components/extended/TriggerArea.js +31 -0
  29. package/dist-cjs/components/generated/TriggerArea.gen.d.ts +1 -0
  30. package/dist-cjs/components/generated/TriggerArea.gen.js +28 -0
  31. package/dist-cjs/components/generated/TriggerAreaResult.gen.d.ts +1 -0
  32. package/dist-cjs/components/generated/TriggerAreaResult.gen.js +28 -0
  33. package/dist-cjs/components/generated/component-names.gen.js +2 -0
  34. package/dist-cjs/components/generated/global.gen.d.ts +4 -0
  35. package/dist-cjs/components/generated/global.gen.js +3 -1
  36. package/dist-cjs/components/generated/index.gen.d.ts +8 -0
  37. package/dist-cjs/components/generated/index.gen.js +16 -1
  38. package/dist-cjs/components/generated/pb/decentraland/sdk/components/mesh_collider.gen.d.ts +2 -1
  39. package/dist-cjs/components/generated/pb/decentraland/sdk/components/mesh_collider.gen.js +2 -1
  40. package/dist-cjs/components/generated/pb/decentraland/sdk/components/trigger_area.gen.d.ts +32 -0
  41. package/dist-cjs/components/generated/pb/decentraland/sdk/components/trigger_area.gen.js +64 -0
  42. package/dist-cjs/components/generated/pb/decentraland/sdk/components/trigger_area_result.gen.d.ts +60 -0
  43. package/dist-cjs/components/generated/pb/decentraland/sdk/components/trigger_area_result.gen.js +183 -0
  44. package/dist-cjs/components/index.d.ts +2 -0
  45. package/dist-cjs/components/index.js +5 -1
  46. package/dist-cjs/components/types.d.ts +1 -0
  47. package/dist-cjs/index.d.ts +3 -1
  48. package/dist-cjs/index.js +3 -1
  49. package/dist-cjs/runtime/initialization/index.d.ts +7 -0
  50. package/dist-cjs/runtime/initialization/index.js +7 -1
  51. package/dist-cjs/systems/triggerArea.d.ts +50 -0
  52. package/dist-cjs/systems/triggerArea.js +140 -0
  53. package/package.json +2 -2
package/dist/index.js CHANGED
@@ -10,6 +10,7 @@ export * from './systems/raycast';
10
10
  export * from './systems/videoEvents';
11
11
  export * from './systems/async-task';
12
12
  export * from './systems/tween';
13
+ export * from './systems/triggerArea';
13
14
  export * from './engine/entity';
14
15
  export * from './components/types';
15
16
  // @internal
@@ -31,6 +32,7 @@ export const Tween = /* @__PURE__*/ components.Tween(engine);
31
32
  export const VirtualCamera = /* @__PURE__*/ components.VirtualCamera(engine);
32
33
  export const InputModifier = /* @__PURE__*/ components.InputModifier(engine);
33
34
  export const LightSource = /* @__PURE__*/ components.LightSource(engine);
35
+ export const TriggerArea = /* @__PURE__*/ components.TriggerArea(engine);
34
36
  /**
35
37
  * @alpha
36
38
  * This is going to be used for sync components through a server.
@@ -9,6 +9,7 @@ import { IInputSystem } from './../../engine/input';
9
9
  import { RaycastSystem } from '../../systems/raycast';
10
10
  import { VideoEventsSystem } from '../../systems/videoEvents';
11
11
  import { TweenSystem } from '../../systems/tween';
12
+ import { TriggerAreaEventsSystem } from '../../systems/triggerArea';
12
13
  /**
13
14
  * @public
14
15
  * The engine is the part of the scene that sits in the middle and manages all of the other parts.
@@ -56,6 +57,12 @@ export { VideoEventsSystem };
56
57
  */
57
58
  export declare const tweenSystem: TweenSystem;
58
59
  export { TweenSystem };
60
+ /**
61
+ * @public
62
+ * Register callback functions for trigger area results.
63
+ */
64
+ export declare const triggerAreaEventsSystem: TriggerAreaEventsSystem;
65
+ export { TriggerAreaEventsSystem };
59
66
  /**
60
67
  * @public
61
68
  * Runs an async function
@@ -10,6 +10,7 @@ import { createRaycastSystem } from '../../systems/raycast';
10
10
  import { createVideoEventsSystem } from '../../systems/videoEvents';
11
11
  import { createTweenSystem } from '../../systems/tween';
12
12
  import { pointerEventColliderChecker } from '../../systems/pointer-event-collider-checker';
13
+ import { createTriggerAreaEventsSystem } from '../../systems/triggerArea';
13
14
  /**
14
15
  * @public
15
16
  * The engine is the part of the scene that sits in the middle and manages all of the other parts.
@@ -52,6 +53,11 @@ export const videoEventsSystem = /* @__PURE__ */ createVideoEventsSystem(engine)
52
53
  * Register callback functions to a particular entity on video events.
53
54
  */
54
55
  export const tweenSystem = createTweenSystem(engine);
56
+ /**
57
+ * @public
58
+ * Register callback functions for trigger area results.
59
+ */
60
+ export const triggerAreaEventsSystem = /* @__PURE__ */ createTriggerAreaEventsSystem(engine);
55
61
  /**
56
62
  * Adds pointer event collider system only in DEV env
57
63
  */
@@ -0,0 +1,50 @@
1
+ import { DeepReadonlyObject, Entity } from '../engine';
2
+ import { PBTriggerAreaResult } from '../components';
3
+ /**
4
+ * @public
5
+ */
6
+ export type TriggerAreaEventSystemCallback = (result: DeepReadonlyObject<PBTriggerAreaResult>) => void;
7
+ /**
8
+ * @public
9
+ */
10
+ export interface TriggerAreaEventsSystem {
11
+ /**
12
+ * @public
13
+ * Execute callback when an entity enters the Trigger Area
14
+ * @param entity - The entity that already has the TriggerArea component
15
+ * @param cb - Function to execute the 'Enter' type of result is detected
16
+ */
17
+ onTriggerEnter(entity: Entity, cb: TriggerAreaEventSystemCallback): void;
18
+ /**
19
+ * @public
20
+ * Remove the callback for Trigger Area 'Enter' type of result
21
+ * @param entity - Entity where the Trigger Area was attached
22
+ */
23
+ removeOnTriggerEnter(entity: Entity): void;
24
+ /**
25
+ * @public
26
+ * Execute callback when an entity stays in the Trigger Area
27
+ * @param entity - The entity that already has the TriggerArea component
28
+ * @param cb - Function to execute the 'Stay' type of result is detected
29
+ */
30
+ onTriggerStay(entity: Entity, cb: TriggerAreaEventSystemCallback): void;
31
+ /**
32
+ * @public
33
+ * Remove the callback for Trigger Area 'Stay' type of result
34
+ * @param entity - Entity where the Trigger Area was attached
35
+ */
36
+ removeOnTriggerStay(entity: Entity): void;
37
+ /**
38
+ * @public
39
+ * Execute callback when an entity exits the Trigger Area
40
+ * @param entity - The entity that already has the TriggerArea component
41
+ * @param cb - Function to execute the 'Exit' type of result is detected
42
+ */
43
+ onTriggerExit(entity: Entity, cb: TriggerAreaEventSystemCallback): void;
44
+ /**
45
+ * @public
46
+ * Remove the callback for Trigger Area 'Exit' type of result
47
+ * @param entity - Entity where the Trigger Area was attached
48
+ */
49
+ removeOnTriggerExit(entity: Entity): void;
50
+ }
@@ -0,0 +1,113 @@
1
+ import * as components from '../components';
2
+ import { EntityState } from '../engine/entity';
3
+ /**
4
+ * @internal
5
+ */
6
+ export function createTriggerAreaEventsSystem(engine) {
7
+ const triggerAreaResultComponent = components.TriggerAreaResult(engine);
8
+ const entitiesMap = new Map();
9
+ function hasCallbacksMap(entity) {
10
+ return entitiesMap.has(entity) && entitiesMap.get(entity) !== undefined;
11
+ }
12
+ function addEntityCallback(entity, triggerType, callback) {
13
+ if (hasCallbacksMap(entity)) {
14
+ entitiesMap.get(entity).triggerCallbackMap.set(triggerType, callback);
15
+ }
16
+ else {
17
+ entitiesMap.set(entity, {
18
+ triggerCallbackMap: new Map([[triggerType, callback]]),
19
+ lastConsumedTimestamp: -1
20
+ });
21
+ }
22
+ }
23
+ function removeEntityCallback(entity, triggerType) {
24
+ if (!entitiesMap.has(entity) || !entitiesMap.get(entity).triggerCallbackMap.has(triggerType))
25
+ return;
26
+ const triggerCallbackMap = entitiesMap.get(entity).triggerCallbackMap;
27
+ triggerCallbackMap.delete(triggerType);
28
+ // Remove entity if no more trigger callbacks are registered
29
+ if (triggerCallbackMap.size === 0)
30
+ entitiesMap.delete(entity);
31
+ }
32
+ function onTriggerEnter(entity, cb) {
33
+ addEntityCallback(entity, 0 /* TriggerAreaEventType.TAET_ENTER */, cb);
34
+ }
35
+ function removeOnTriggerEnter(entity) {
36
+ removeEntityCallback(entity, 0 /* TriggerAreaEventType.TAET_ENTER */);
37
+ }
38
+ function onTriggerStay(entity, cb) {
39
+ addEntityCallback(entity, 1 /* TriggerAreaEventType.TAET_STAY */, cb);
40
+ }
41
+ function removeOnTriggerStay(entity) {
42
+ removeEntityCallback(entity, 1 /* TriggerAreaEventType.TAET_STAY */);
43
+ }
44
+ function onTriggerExit(entity, cb) {
45
+ addEntityCallback(entity, 2 /* TriggerAreaEventType.TAET_EXIT */, cb);
46
+ }
47
+ function removeOnTriggerExit(entity) {
48
+ removeEntityCallback(entity, 2 /* TriggerAreaEventType.TAET_EXIT */);
49
+ }
50
+ engine.addSystem(function TriggerAreaResultSystem() {
51
+ const garbageEntries = [];
52
+ for (const [entity, data] of entitiesMap) {
53
+ if (engine.getEntityState(entity) === EntityState.Removed) {
54
+ garbageEntries.push(entity);
55
+ continue;
56
+ }
57
+ const result = triggerAreaResultComponent.get(entity);
58
+ // The Explorer may be taking time before the result component is put
59
+ if (result.size === 0)
60
+ continue;
61
+ const values = Array.from(result.values());
62
+ // determine starting index for new values (more than one could be added between System updates)
63
+ // search backwards to find the anchor at lastConsumedTimestamp
64
+ let startIndex = 0;
65
+ if (data.lastConsumedTimestamp >= 0) {
66
+ const newestTimestamp = values[values.length - 1].timestamp;
67
+ // if nothing new, skip processing
68
+ if (newestTimestamp <= data.lastConsumedTimestamp) {
69
+ continue;
70
+ }
71
+ // Find index of value with the lastConsumedTimestamp
72
+ let i = values.length - 2;
73
+ while (i >= 0 && values[i].timestamp > data.lastConsumedTimestamp)
74
+ i--;
75
+ // Mark the following value index as the starting point to trigger all the new value callbacks
76
+ startIndex = i + 1;
77
+ }
78
+ if (startIndex >= values.length)
79
+ continue;
80
+ // Trigger callbacks for all the new values
81
+ for (let i = startIndex; i < values.length; i++) {
82
+ switch (values[i].eventType) {
83
+ case 0 /* TriggerAreaEventType.TAET_ENTER */:
84
+ if (!data.triggerCallbackMap.has(0 /* TriggerAreaEventType.TAET_ENTER */))
85
+ continue;
86
+ data.triggerCallbackMap.get(0 /* TriggerAreaEventType.TAET_ENTER */)(values[i]);
87
+ break;
88
+ case 1 /* TriggerAreaEventType.TAET_STAY */:
89
+ if (!data.triggerCallbackMap.has(1 /* TriggerAreaEventType.TAET_STAY */))
90
+ continue;
91
+ data.triggerCallbackMap.get(1 /* TriggerAreaEventType.TAET_STAY */)(values[i]);
92
+ break;
93
+ case 2 /* TriggerAreaEventType.TAET_EXIT */:
94
+ if (!data.triggerCallbackMap.has(2 /* TriggerAreaEventType.TAET_EXIT */))
95
+ continue;
96
+ data.triggerCallbackMap.get(2 /* TriggerAreaEventType.TAET_EXIT */)(values[i]);
97
+ break;
98
+ }
99
+ }
100
+ data.lastConsumedTimestamp = values[values.length - 1].timestamp;
101
+ }
102
+ // Clean up garbage entries
103
+ garbageEntries.forEach((garbageEntity) => entitiesMap.delete(garbageEntity));
104
+ });
105
+ return {
106
+ onTriggerEnter,
107
+ removeOnTriggerEnter,
108
+ onTriggerStay,
109
+ removeOnTriggerStay,
110
+ onTriggerExit,
111
+ removeOnTriggerExit
112
+ };
113
+ }
@@ -0,0 +1,22 @@
1
+ import { Entity, IEngine, LastWriteWinElementSetComponentDefinition } from '../../engine';
2
+ import { ColliderLayer, PBTriggerArea } from '../generated/index.gen';
3
+ /**
4
+ * @public
5
+ */
6
+ export interface TriggerAreaComponentDefinitionExtended extends LastWriteWinElementSetComponentDefinition<PBTriggerArea> {
7
+ /**
8
+ * @public
9
+ * Set a box in the MeshCollider component
10
+ * @param entity - entity to create or replace the TriggerArea component
11
+ * @param collisionMask - the collision layers mask for the trigger to react, default: Player
12
+ */
13
+ setBox(entity: Entity, collisionMask?: ColliderLayer | ColliderLayer[]): void;
14
+ /**
15
+ * @public
16
+ * Set a sphere in the MeshCollider component
17
+ * @param entity - entity to create or replace the TriggerArea component
18
+ * @param collisionMask - the collision layers mask for the trigger to react, default: Player
19
+ */
20
+ setSphere(entity: Entity, collisionMask?: ColliderLayer | ColliderLayer[]): void;
21
+ }
22
+ export declare function defineTriggerAreaComponent(engine: Pick<IEngine, 'defineComponentFromSchema'>): TriggerAreaComponentDefinitionExtended;
@@ -0,0 +1,31 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.defineTriggerAreaComponent = void 0;
4
+ const index_gen_1 = require("../generated/index.gen");
5
+ function defineTriggerAreaComponent(engine) {
6
+ const theComponent = (0, index_gen_1.TriggerArea)(engine);
7
+ function getCollisionMask(layers) {
8
+ if (Array.isArray(layers)) {
9
+ return layers.map((item) => item).reduce((prev, item) => prev | item, 0);
10
+ }
11
+ else if (layers) {
12
+ return layers;
13
+ }
14
+ }
15
+ return {
16
+ ...theComponent,
17
+ setBox(entity, collisionMask) {
18
+ theComponent.createOrReplace(entity, {
19
+ mesh: 0 /* TriggerAreaMeshType.TAMT_BOX */,
20
+ collisionMask: getCollisionMask(collisionMask)
21
+ });
22
+ },
23
+ setSphere(entity, collisionMask) {
24
+ theComponent.createOrReplace(entity, {
25
+ mesh: 1 /* TriggerAreaMeshType.TAMT_SPHERE */,
26
+ collisionMask: getCollisionMask(collisionMask)
27
+ });
28
+ }
29
+ };
30
+ }
31
+ exports.defineTriggerAreaComponent = defineTriggerAreaComponent;
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,28 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.TriggerAreaSchema = void 0;
4
+ const trigger_area_gen_1 = require("./pb/decentraland/sdk/components/trigger_area.gen");
5
+ /**
6
+ * @internal
7
+ */
8
+ exports.TriggerAreaSchema = {
9
+ COMPONENT_ID: 1060,
10
+ serialize(value, builder) {
11
+ const writer = trigger_area_gen_1.PBTriggerArea.encode(value);
12
+ const buffer = new Uint8Array(writer.finish(), 0, writer.len);
13
+ builder.writeBuffer(buffer, false);
14
+ },
15
+ deserialize(reader) {
16
+ return trigger_area_gen_1.PBTriggerArea.decode(reader.buffer(), reader.remainingBytes());
17
+ },
18
+ create() {
19
+ // TODO: this is a hack.
20
+ return trigger_area_gen_1.PBTriggerArea.decode(new Uint8Array());
21
+ },
22
+ jsonSchema: {
23
+ type: "object",
24
+ properties: {},
25
+ serializationType: "protocol-buffer",
26
+ protocolBuffer: "PBTriggerArea"
27
+ }
28
+ };
@@ -0,0 +1,28 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.TriggerAreaResultSchema = void 0;
4
+ const trigger_area_result_gen_1 = require("./pb/decentraland/sdk/components/trigger_area_result.gen");
5
+ /**
6
+ * @internal
7
+ */
8
+ exports.TriggerAreaResultSchema = {
9
+ COMPONENT_ID: 1061,
10
+ serialize(value, builder) {
11
+ const writer = trigger_area_result_gen_1.PBTriggerAreaResult.encode(value);
12
+ const buffer = new Uint8Array(writer.finish(), 0, writer.len);
13
+ builder.writeBuffer(buffer, false);
14
+ },
15
+ deserialize(reader) {
16
+ return trigger_area_result_gen_1.PBTriggerAreaResult.decode(reader.buffer(), reader.remainingBytes());
17
+ },
18
+ create() {
19
+ // TODO: this is a hack.
20
+ return trigger_area_result_gen_1.PBTriggerAreaResult.decode(new Uint8Array());
21
+ },
22
+ jsonSchema: {
23
+ type: "object",
24
+ properties: {},
25
+ serializationType: "protocol-buffer",
26
+ protocolBuffer: "PBTriggerAreaResult"
27
+ }
28
+ };
@@ -41,6 +41,8 @@ exports.coreComponentMappings = {
41
41
  "core::RealmInfo": 1106,
42
42
  "core::SkyboxTime": 1210,
43
43
  "core::TextShape": 1030,
44
+ "core::TriggerArea": 1060,
45
+ "core::TriggerAreaResult": 1061,
44
46
  "core::Tween": 1102,
45
47
  "core::TweenSequence": 1104,
46
48
  "core::TweenState": 1103,
@@ -30,6 +30,8 @@ import { PBRaycastResult } from './pb/decentraland/sdk/components/raycast_result
30
30
  import { PBRealmInfo } from './pb/decentraland/sdk/components/realm_info.gen';
31
31
  import { PBSkyboxTime } from './pb/decentraland/sdk/components/skybox_time.gen';
32
32
  import { PBTextShape } from './pb/decentraland/sdk/components/text_shape.gen';
33
+ import { PBTriggerArea } from './pb/decentraland/sdk/components/trigger_area.gen';
34
+ import { PBTriggerAreaResult } from './pb/decentraland/sdk/components/trigger_area_result.gen';
33
35
  import { PBTweenSequence } from './pb/decentraland/sdk/components/tween_sequence.gen';
34
36
  import { PBTweenState } from './pb/decentraland/sdk/components/tween_state.gen';
35
37
  import { PBUiBackground } from './pb/decentraland/sdk/components/ui_background.gen';
@@ -74,6 +76,8 @@ import { PBVisibilityComponent } from './pb/decentraland/sdk/components/visibili
74
76
  /** @public */ export declare const RealmInfo: LastWriteWinElementSetComponentDefinition<PBRealmInfo>;
75
77
  /** @public */ export declare const SkyboxTime: LastWriteWinElementSetComponentDefinition<PBSkyboxTime>;
76
78
  /** @public */ export declare const TextShape: LastWriteWinElementSetComponentDefinition<PBTextShape>;
79
+ /** @public */ export declare const TriggerArea: LastWriteWinElementSetComponentDefinition<PBTriggerArea>;
80
+ /** @public */ export declare const TriggerAreaResult: GrowOnlyValueSetComponentDefinition<PBTriggerAreaResult>;
77
81
  /** @public */ export declare const TweenSequence: LastWriteWinElementSetComponentDefinition<PBTweenSequence>;
78
82
  /** @public */ export declare const TweenState: LastWriteWinElementSetComponentDefinition<PBTweenState>;
79
83
  /** @public */ export declare const UiBackground: LastWriteWinElementSetComponentDefinition<PBUiBackground>;
@@ -26,7 +26,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
26
26
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
27
27
  };
28
28
  Object.defineProperty(exports, "__esModule", { value: true });
29
- exports.VisibilityComponent = exports.VirtualCamera = exports.VideoPlayer = exports.VideoEvent = exports.UiTransform = exports.UiText = exports.UiInputResult = exports.UiInput = exports.UiDropdownResult = exports.UiDropdown = exports.UiCanvasInformation = exports.UiBackground = exports.TweenState = exports.TweenSequence = exports.TextShape = exports.SkyboxTime = exports.RealmInfo = exports.RaycastResult = exports.Raycast = exports.PrimaryPointerInfo = exports.PointerLock = exports.PointerEventsResult = exports.PointerEvents = exports.PlayerIdentityData = exports.NftShape = exports.MainCamera = exports.LightSource = exports.InputModifier = exports.GltfNodeModifiers = exports.GltfContainerLoadingState = exports.GltfContainer = exports.EngineInfo = exports.CameraModeArea = exports.CameraMode = exports.Billboard = exports.AvatarShape = exports.AvatarModifierArea = exports.AvatarEquippedData = exports.AvatarEmoteCommand = exports.AvatarBase = exports.AvatarAttach = exports.AudioStream = exports.AudioSource = exports.AudioEvent = void 0;
29
+ exports.VisibilityComponent = exports.VirtualCamera = exports.VideoPlayer = exports.VideoEvent = exports.UiTransform = exports.UiText = exports.UiInputResult = exports.UiInput = exports.UiDropdownResult = exports.UiDropdown = exports.UiCanvasInformation = exports.UiBackground = exports.TweenState = exports.TweenSequence = exports.TriggerAreaResult = exports.TriggerArea = exports.TextShape = exports.SkyboxTime = exports.RealmInfo = exports.RaycastResult = exports.Raycast = exports.PrimaryPointerInfo = exports.PointerLock = exports.PointerEventsResult = exports.PointerEvents = exports.PlayerIdentityData = exports.NftShape = exports.MainCamera = exports.LightSource = exports.InputModifier = exports.GltfNodeModifiers = exports.GltfContainerLoadingState = exports.GltfContainer = exports.EngineInfo = exports.CameraModeArea = exports.CameraMode = exports.Billboard = exports.AvatarShape = exports.AvatarModifierArea = exports.AvatarEquippedData = exports.AvatarEmoteCommand = exports.AvatarBase = exports.AvatarAttach = exports.AudioStream = exports.AudioSource = exports.AudioEvent = void 0;
30
30
  const initialization_1 = require("../../runtime/initialization");
31
31
  const components = __importStar(require("./index.gen"));
32
32
  __exportStar(require("./index.gen"), exports);
@@ -60,6 +60,8 @@ __exportStar(require("./index.gen"), exports);
60
60
  /** @public */ exports.RealmInfo = components.RealmInfo(initialization_1.engine);
61
61
  /** @public */ exports.SkyboxTime = components.SkyboxTime(initialization_1.engine);
62
62
  /** @public */ exports.TextShape = components.TextShape(initialization_1.engine);
63
+ /** @public */ exports.TriggerArea = components.TriggerArea(initialization_1.engine);
64
+ /** @public */ exports.TriggerAreaResult = components.TriggerAreaResult(initialization_1.engine);
63
65
  /** @public */ exports.TweenSequence = components.TweenSequence(initialization_1.engine);
64
66
  /** @public */ exports.TweenState = components.TweenState(initialization_1.engine);
65
67
  /** @public */ exports.UiBackground = components.UiBackground(initialization_1.engine);
@@ -34,6 +34,8 @@ import { PBRaycastResult } from './pb/decentraland/sdk/components/raycast_result
34
34
  import { PBRealmInfo } from './pb/decentraland/sdk/components/realm_info.gen';
35
35
  import { PBSkyboxTime } from './pb/decentraland/sdk/components/skybox_time.gen';
36
36
  import { PBTextShape } from './pb/decentraland/sdk/components/text_shape.gen';
37
+ import { PBTriggerArea } from './pb/decentraland/sdk/components/trigger_area.gen';
38
+ import { PBTriggerAreaResult } from './pb/decentraland/sdk/components/trigger_area_result.gen';
37
39
  import { PBTween } from './pb/decentraland/sdk/components/tween.gen';
38
40
  import { PBTweenSequence } from './pb/decentraland/sdk/components/tween_sequence.gen';
39
41
  import { PBTweenState } from './pb/decentraland/sdk/components/tween_state.gen';
@@ -83,6 +85,8 @@ export * from './pb/decentraland/sdk/components/raycast_result.gen';
83
85
  export * from './pb/decentraland/sdk/components/realm_info.gen';
84
86
  export * from './pb/decentraland/sdk/components/skybox_time.gen';
85
87
  export * from './pb/decentraland/sdk/components/text_shape.gen';
88
+ export * from './pb/decentraland/sdk/components/trigger_area.gen';
89
+ export * from './pb/decentraland/sdk/components/trigger_area_result.gen';
86
90
  export * from './pb/decentraland/sdk/components/tween.gen';
87
91
  export * from './pb/decentraland/sdk/components/tween_sequence.gen';
88
92
  export * from './pb/decentraland/sdk/components/tween_state.gen';
@@ -134,6 +138,8 @@ export type GSetComponentGetter<T extends GrowOnlyValueSetComponentDefinition<an
134
138
  /** @public */ export declare const RealmInfo: LwwComponentGetter<LastWriteWinElementSetComponentDefinition<PBRealmInfo>>;
135
139
  /** @public */ export declare const SkyboxTime: LwwComponentGetter<LastWriteWinElementSetComponentDefinition<PBSkyboxTime>>;
136
140
  /** @public */ export declare const TextShape: LwwComponentGetter<LastWriteWinElementSetComponentDefinition<PBTextShape>>;
141
+ /** @public */ export declare const TriggerArea: LwwComponentGetter<LastWriteWinElementSetComponentDefinition<PBTriggerArea>>;
142
+ /** @public */ export declare const TriggerAreaResult: GSetComponentGetter<GrowOnlyValueSetComponentDefinition<PBTriggerAreaResult>>;
137
143
  /** @public */ export declare const Tween: LwwComponentGetter<LastWriteWinElementSetComponentDefinition<PBTween>>;
138
144
  /** @public */ export declare const TweenSequence: LwwComponentGetter<LastWriteWinElementSetComponentDefinition<PBTweenSequence>>;
139
145
  /** @public */ export declare const TweenState: LwwComponentGetter<LastWriteWinElementSetComponentDefinition<PBTweenState>>;
@@ -185,6 +191,8 @@ export declare const componentDefinitionByName: {
185
191
  "core::RealmInfo": LwwComponentGetter<LastWriteWinElementSetComponentDefinition<PBRealmInfo>>;
186
192
  "core::SkyboxTime": LwwComponentGetter<LastWriteWinElementSetComponentDefinition<PBSkyboxTime>>;
187
193
  "core::TextShape": LwwComponentGetter<LastWriteWinElementSetComponentDefinition<PBTextShape>>;
194
+ "core::TriggerArea": LwwComponentGetter<LastWriteWinElementSetComponentDefinition<PBTriggerArea>>;
195
+ "core::TriggerAreaResult": GSetComponentGetter<GrowOnlyValueSetComponentDefinition<PBTriggerAreaResult>>;
188
196
  "core::Tween": LwwComponentGetter<LastWriteWinElementSetComponentDefinition<PBTween>>;
189
197
  "core::TweenSequence": LwwComponentGetter<LastWriteWinElementSetComponentDefinition<PBTweenSequence>>;
190
198
  "core::TweenState": LwwComponentGetter<LastWriteWinElementSetComponentDefinition<PBTweenState>>;
@@ -14,7 +14,8 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
14
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
- exports.componentDefinitionByName = exports.VisibilityComponent = exports.VirtualCamera = exports.VideoPlayer = exports.VideoEvent = exports.UiTransform = exports.UiText = exports.UiInputResult = exports.UiInput = exports.UiDropdownResult = exports.UiDropdown = exports.UiCanvasInformation = exports.UiBackground = exports.TweenState = exports.TweenSequence = exports.Tween = exports.TextShape = exports.SkyboxTime = exports.RealmInfo = exports.RaycastResult = exports.Raycast = exports.PrimaryPointerInfo = exports.PointerLock = exports.PointerEventsResult = exports.PointerEvents = exports.PlayerIdentityData = exports.NftShape = exports.MeshRenderer = exports.MeshCollider = exports.Material = exports.MainCamera = exports.LightSource = exports.InputModifier = exports.GltfNodeModifiers = exports.GltfContainerLoadingState = exports.GltfContainer = exports.EngineInfo = exports.CameraModeArea = exports.CameraMode = exports.Billboard = exports.AvatarShape = exports.AvatarModifierArea = exports.AvatarEquippedData = exports.AvatarEmoteCommand = exports.AvatarBase = exports.AvatarAttach = exports.AudioStream = exports.AudioSource = exports.AudioEvent = exports.Animator = void 0;
17
+ exports.VirtualCamera = exports.VideoPlayer = exports.VideoEvent = exports.UiTransform = exports.UiText = exports.UiInputResult = exports.UiInput = exports.UiDropdownResult = exports.UiDropdown = exports.UiCanvasInformation = exports.UiBackground = exports.TweenState = exports.TweenSequence = exports.Tween = exports.TriggerAreaResult = exports.TriggerArea = exports.TextShape = exports.SkyboxTime = exports.RealmInfo = exports.RaycastResult = exports.Raycast = exports.PrimaryPointerInfo = exports.PointerLock = exports.PointerEventsResult = exports.PointerEvents = exports.PlayerIdentityData = exports.NftShape = exports.MeshRenderer = exports.MeshCollider = exports.Material = exports.MainCamera = exports.LightSource = exports.InputModifier = exports.GltfNodeModifiers = exports.GltfContainerLoadingState = exports.GltfContainer = exports.EngineInfo = exports.CameraModeArea = exports.CameraMode = exports.Billboard = exports.AvatarShape = exports.AvatarModifierArea = exports.AvatarEquippedData = exports.AvatarEmoteCommand = exports.AvatarBase = exports.AvatarAttach = exports.AudioStream = exports.AudioSource = exports.AudioEvent = exports.Animator = void 0;
18
+ exports.componentDefinitionByName = exports.VisibilityComponent = void 0;
18
19
  const Animator_gen_1 = require("./Animator.gen");
19
20
  const AudioEvent_gen_1 = require("./AudioEvent.gen");
20
21
  const AudioSource_gen_1 = require("./AudioSource.gen");
@@ -49,6 +50,8 @@ const RaycastResult_gen_1 = require("./RaycastResult.gen");
49
50
  const RealmInfo_gen_1 = require("./RealmInfo.gen");
50
51
  const SkyboxTime_gen_1 = require("./SkyboxTime.gen");
51
52
  const TextShape_gen_1 = require("./TextShape.gen");
53
+ const TriggerArea_gen_1 = require("./TriggerArea.gen");
54
+ const TriggerAreaResult_gen_1 = require("./TriggerAreaResult.gen");
52
55
  const Tween_gen_1 = require("./Tween.gen");
53
56
  const TweenSequence_gen_1 = require("./TweenSequence.gen");
54
57
  const TweenState_gen_1 = require("./TweenState.gen");
@@ -98,6 +101,8 @@ __exportStar(require("./pb/decentraland/sdk/components/raycast_result.gen"), exp
98
101
  __exportStar(require("./pb/decentraland/sdk/components/realm_info.gen"), exports);
99
102
  __exportStar(require("./pb/decentraland/sdk/components/skybox_time.gen"), exports);
100
103
  __exportStar(require("./pb/decentraland/sdk/components/text_shape.gen"), exports);
104
+ __exportStar(require("./pb/decentraland/sdk/components/trigger_area.gen"), exports);
105
+ __exportStar(require("./pb/decentraland/sdk/components/trigger_area_result.gen"), exports);
101
106
  __exportStar(require("./pb/decentraland/sdk/components/tween.gen"), exports);
102
107
  __exportStar(require("./pb/decentraland/sdk/components/tween_sequence.gen"), exports);
103
108
  __exportStar(require("./pb/decentraland/sdk/components/tween_state.gen"), exports);
@@ -221,6 +226,14 @@ exports.SkyboxTime = SkyboxTime;
221
226
  /** @public */ const TextShape = engine =>
222
227
  /* @__PURE__ */ engine.defineComponentFromSchema("core::TextShape", TextShape_gen_1.TextShapeSchema);
223
228
  exports.TextShape = TextShape;
229
+ /** @public */ const TriggerArea = engine =>
230
+ /* @__PURE__ */ engine.defineComponentFromSchema("core::TriggerArea", TriggerArea_gen_1.TriggerAreaSchema);
231
+ exports.TriggerArea = TriggerArea;
232
+ /** @public */ const TriggerAreaResult = (engine) => /* @__PURE__ */ engine.defineValueSetComponentFromSchema("core::TriggerAreaResult", TriggerAreaResult_gen_1.TriggerAreaResultSchema, {
233
+ timestampFunction: (t) => t.timestamp,
234
+ maxElements: 100
235
+ });
236
+ exports.TriggerAreaResult = TriggerAreaResult;
224
237
  /** @public */ const Tween = engine =>
225
238
  /* @__PURE__ */ engine.defineComponentFromSchema("core::Tween", Tween_gen_1.TweenSchema);
226
239
  exports.Tween = Tween;
@@ -304,6 +317,8 @@ exports.componentDefinitionByName = {
304
317
  "core::RealmInfo": exports.RealmInfo,
305
318
  "core::SkyboxTime": exports.SkyboxTime,
306
319
  "core::TextShape": exports.TextShape,
320
+ "core::TriggerArea": exports.TriggerArea,
321
+ "core::TriggerAreaResult": exports.TriggerAreaResult,
307
322
  "core::Tween": exports.Tween,
308
323
  "core::TweenSequence": exports.TweenSequence,
309
324
  "core::TweenState": exports.TweenState,
@@ -10,7 +10,8 @@ export declare const enum ColliderLayer {
10
10
  CL_POINTER = 1,
11
11
  /** CL_PHYSICS - collision affecting your player's physics i.e. walls, floor, moving platfroms */
12
12
  CL_PHYSICS = 2,
13
- CL_RESERVED1 = 4,
13
+ /** CL_PLAYER - layer corresponding to any player avatar */
14
+ CL_PLAYER = 4,
14
15
  CL_RESERVED2 = 8,
15
16
  CL_RESERVED3 = 16,
16
17
  CL_RESERVED4 = 32,
@@ -19,7 +19,8 @@ var ColliderLayer;
19
19
  ColliderLayer[ColliderLayer["CL_POINTER"] = 1] = "CL_POINTER";
20
20
  /** CL_PHYSICS - collision affecting your player's physics i.e. walls, floor, moving platfroms */
21
21
  ColliderLayer[ColliderLayer["CL_PHYSICS"] = 2] = "CL_PHYSICS";
22
- ColliderLayer[ColliderLayer["CL_RESERVED1"] = 4] = "CL_RESERVED1";
22
+ /** CL_PLAYER - layer corresponding to any player avatar */
23
+ ColliderLayer[ColliderLayer["CL_PLAYER"] = 4] = "CL_PLAYER";
23
24
  ColliderLayer[ColliderLayer["CL_RESERVED2"] = 8] = "CL_RESERVED2";
24
25
  ColliderLayer[ColliderLayer["CL_RESERVED3"] = 16] = "CL_RESERVED3";
25
26
  ColliderLayer[ColliderLayer["CL_RESERVED4"] = 32] = "CL_RESERVED4";
@@ -0,0 +1,32 @@
1
+ import _m0 from "protobufjs/minimal";
2
+ /**
3
+ * @public
4
+ */
5
+ export declare const enum TriggerAreaMeshType {
6
+ TAMT_BOX = 0,
7
+ TAMT_SPHERE = 1
8
+ }
9
+ /**
10
+ * The PBTriggerArea component is used to raise collision triggering events (through the TriggerAreaResult component)
11
+ * when entities enter this component's defined area.
12
+ *
13
+ * ADR: https://github.com/decentraland/adr/blob/2b30a5e2b4f359a7c22a68fb827db282f6e5f887/content/ADR-258-trigger-areas.md
14
+ *
15
+ * The area size and rotation is defined by the Entity's Transform.
16
+ */
17
+ /**
18
+ * @public
19
+ */
20
+ export interface PBTriggerArea {
21
+ /** default: MT_BOX */
22
+ mesh?: TriggerAreaMeshType | undefined;
23
+ /** default: CL_PLAYER */
24
+ collisionMask?: number | undefined;
25
+ }
26
+ /**
27
+ * @public
28
+ */
29
+ export declare namespace PBTriggerArea {
30
+ function encode(message: PBTriggerArea, writer?: _m0.Writer): _m0.Writer;
31
+ function decode(input: _m0.Reader | Uint8Array, length?: number): PBTriggerArea;
32
+ }
@@ -0,0 +1,64 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.PBTriggerArea = exports.TriggerAreaMeshType = void 0;
7
+ /* eslint-disable */
8
+ const minimal_1 = __importDefault(require("protobufjs/minimal"));
9
+ const protobufPackageSarasa = "decentraland.sdk.components";
10
+ /**
11
+ * @public
12
+ */
13
+ var TriggerAreaMeshType;
14
+ (function (TriggerAreaMeshType) {
15
+ TriggerAreaMeshType[TriggerAreaMeshType["TAMT_BOX"] = 0] = "TAMT_BOX";
16
+ TriggerAreaMeshType[TriggerAreaMeshType["TAMT_SPHERE"] = 1] = "TAMT_SPHERE";
17
+ })(TriggerAreaMeshType = exports.TriggerAreaMeshType || (exports.TriggerAreaMeshType = {}));
18
+ function createBasePBTriggerArea() {
19
+ return { mesh: undefined, collisionMask: undefined };
20
+ }
21
+ /**
22
+ * @public
23
+ */
24
+ var PBTriggerArea;
25
+ (function (PBTriggerArea) {
26
+ function encode(message, writer = minimal_1.default.Writer.create()) {
27
+ if (message.mesh !== undefined) {
28
+ writer.uint32(8).int32(message.mesh);
29
+ }
30
+ if (message.collisionMask !== undefined) {
31
+ writer.uint32(16).uint32(message.collisionMask);
32
+ }
33
+ return writer;
34
+ }
35
+ PBTriggerArea.encode = encode;
36
+ function decode(input, length) {
37
+ const reader = input instanceof minimal_1.default.Reader ? input : minimal_1.default.Reader.create(input);
38
+ let end = length === undefined ? reader.len : reader.pos + length;
39
+ const message = createBasePBTriggerArea();
40
+ while (reader.pos < end) {
41
+ const tag = reader.uint32();
42
+ switch (tag >>> 3) {
43
+ case 1:
44
+ if (tag !== 8) {
45
+ break;
46
+ }
47
+ message.mesh = reader.int32();
48
+ continue;
49
+ case 2:
50
+ if (tag !== 16) {
51
+ break;
52
+ }
53
+ message.collisionMask = reader.uint32();
54
+ continue;
55
+ }
56
+ if ((tag & 7) === 4 || tag === 0) {
57
+ break;
58
+ }
59
+ reader.skipType(tag & 7);
60
+ }
61
+ return message;
62
+ }
63
+ PBTriggerArea.decode = decode;
64
+ })(PBTriggerArea = exports.PBTriggerArea || (exports.PBTriggerArea = {}));