@dcl/ecs 7.27.1-33755622021.commit-da82bfb → 7.27.1-34101585995.commit-6eb5b5d

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 (189) hide show
  1. package/dist/components/extended/AvatarEquippedData.d.ts +15 -0
  2. package/dist/components/extended/AvatarEquippedData.js +10 -0
  3. package/dist/components/extended/AvatarShape.d.ts +15 -0
  4. package/dist/components/extended/AvatarShape.js +10 -0
  5. package/dist/components/extended/MeshCollider.d.ts +9 -0
  6. package/dist/components/extended/MeshCollider.js +6 -0
  7. package/dist/components/extended/MeshRenderer.d.ts +8 -0
  8. package/dist/components/extended/MeshRenderer.js +5 -0
  9. package/dist/components/generated/AvatarMovement.gen.d.ts +1 -0
  10. package/dist/components/generated/AvatarMovement.gen.js +25 -0
  11. package/dist/components/generated/AvatarMovementInfo.gen.d.ts +1 -0
  12. package/dist/components/generated/AvatarMovementInfo.gen.js +25 -0
  13. package/dist/components/generated/AvatarNametag.gen.d.ts +1 -0
  14. package/dist/components/generated/AvatarNametag.gen.js +25 -0
  15. package/dist/components/generated/CameraLayer.gen.d.ts +1 -0
  16. package/dist/components/generated/CameraLayer.gen.js +25 -0
  17. package/dist/components/generated/CameraLayers.gen.d.ts +1 -0
  18. package/dist/components/generated/CameraLayers.gen.js +25 -0
  19. package/dist/components/generated/GlobalLight.gen.d.ts +1 -0
  20. package/dist/components/generated/GlobalLight.gen.js +25 -0
  21. package/dist/components/generated/GltfNode.gen.d.ts +1 -0
  22. package/dist/components/generated/GltfNode.gen.js +25 -0
  23. package/dist/components/generated/GltfNodeState.gen.d.ts +1 -0
  24. package/dist/components/generated/GltfNodeState.gen.js +25 -0
  25. package/dist/components/generated/TextureCamera.gen.d.ts +1 -0
  26. package/dist/components/generated/TextureCamera.gen.js +25 -0
  27. package/dist/components/generated/UiCanvas.gen.d.ts +1 -0
  28. package/dist/components/generated/UiCanvas.gen.js +25 -0
  29. package/dist/components/generated/UiScrollResult.gen.d.ts +1 -0
  30. package/dist/components/generated/UiScrollResult.gen.js +25 -0
  31. package/dist/components/generated/component-names.gen.js +11 -0
  32. package/dist/components/generated/global.gen.d.ts +22 -4
  33. package/dist/components/generated/global.gen.js +11 -2
  34. package/dist/components/generated/index.gen.d.ts +44 -0
  35. package/dist/components/generated/index.gen.js +55 -0
  36. package/dist/components/generated/pb/decentraland/common/texture.gen.d.ts +20 -0
  37. package/dist/components/generated/pb/decentraland/common/texture.gen.js +65 -0
  38. package/dist/components/generated/pb/decentraland/sdk/components/avatar_equipped_data.gen.d.ts +2 -0
  39. package/dist/components/generated/pb/decentraland/sdk/components/avatar_equipped_data.gen.js +10 -1
  40. package/dist/components/generated/pb/decentraland/sdk/components/avatar_modifier_area.gen.d.ts +2 -0
  41. package/dist/components/generated/pb/decentraland/sdk/components/avatar_modifier_area.gen.js +10 -1
  42. package/dist/components/generated/pb/decentraland/sdk/components/avatar_movement.gen.d.ts +57 -0
  43. package/dist/components/generated/pb/decentraland/sdk/components/avatar_movement.gen.js +204 -0
  44. package/dist/components/generated/pb/decentraland/sdk/components/avatar_movement_info.gen.d.ts +65 -0
  45. package/dist/components/generated/pb/decentraland/sdk/components/avatar_movement_info.gen.js +228 -0
  46. package/dist/components/generated/pb/decentraland/sdk/components/avatar_nametag.gen.d.ts +42 -0
  47. package/dist/components/generated/pb/decentraland/sdk/components/avatar_nametag.gen.js +69 -0
  48. package/dist/components/generated/pb/decentraland/sdk/components/avatar_shape.gen.d.ts +2 -0
  49. package/dist/components/generated/pb/decentraland/sdk/components/avatar_shape.gen.js +10 -0
  50. package/dist/components/generated/pb/decentraland/sdk/components/camera_layer.gen.d.ts +30 -0
  51. package/dist/components/generated/pb/decentraland/sdk/components/camera_layer.gen.js +104 -0
  52. package/dist/components/generated/pb/decentraland/sdk/components/camera_layers.gen.d.ts +14 -0
  53. package/dist/components/generated/pb/decentraland/sdk/components/camera_layers.gen.js +50 -0
  54. package/dist/components/generated/pb/decentraland/sdk/components/camera_mode_area.gen.d.ts +2 -0
  55. package/dist/components/generated/pb/decentraland/sdk/components/camera_mode_area.gen.js +10 -1
  56. package/dist/components/generated/pb/decentraland/sdk/components/common/input_action.gen.d.ts +4 -1
  57. package/dist/components/generated/pb/decentraland/sdk/components/common/input_action.gen.js +3 -0
  58. package/dist/components/generated/pb/decentraland/sdk/components/global_light.gen.d.ts +34 -0
  59. package/dist/components/generated/pb/decentraland/sdk/components/global_light.gen.js +61 -0
  60. package/dist/components/generated/pb/decentraland/sdk/components/gltf_container_loading_state.gen.d.ts +19 -0
  61. package/dist/components/generated/pb/decentraland/sdk/components/gltf_container_loading_state.gen.js +46 -1
  62. package/dist/components/generated/pb/decentraland/sdk/components/gltf_node.gen.d.ts +50 -0
  63. package/dist/components/generated/pb/decentraland/sdk/components/gltf_node.gen.js +41 -0
  64. package/dist/components/generated/pb/decentraland/sdk/components/gltf_node_state.gen.d.ts +27 -0
  65. package/dist/components/generated/pb/decentraland/sdk/components/gltf_node_state.gen.js +59 -0
  66. package/dist/components/generated/pb/decentraland/sdk/components/material.gen.d.ts +22 -0
  67. package/dist/components/generated/pb/decentraland/sdk/components/material.gen.js +57 -1
  68. package/dist/components/generated/pb/decentraland/sdk/components/mesh_collider.gen.d.ts +20 -0
  69. package/dist/components/generated/pb/decentraland/sdk/components/mesh_collider.gen.js +56 -0
  70. package/dist/components/generated/pb/decentraland/sdk/components/mesh_renderer.gen.d.ts +21 -3
  71. package/dist/components/generated/pb/decentraland/sdk/components/mesh_renderer.gen.js +56 -0
  72. package/dist/components/generated/pb/decentraland/sdk/components/primary_pointer_info.gen.d.ts +8 -2
  73. package/dist/components/generated/pb/decentraland/sdk/components/primary_pointer_info.gen.js +3 -0
  74. package/dist/components/generated/pb/decentraland/sdk/components/raycast.gen.d.ts +13 -0
  75. package/dist/components/generated/pb/decentraland/sdk/components/raycast.gen.js +30 -0
  76. package/dist/components/generated/pb/decentraland/sdk/components/texture_camera.gen.d.ts +74 -0
  77. package/dist/components/generated/pb/decentraland/sdk/components/texture_camera.gen.js +191 -0
  78. package/dist/components/generated/pb/decentraland/sdk/components/ui_canvas.gen.d.ts +19 -0
  79. package/dist/components/generated/pb/decentraland/sdk/components/ui_canvas.gen.js +60 -0
  80. package/dist/components/generated/pb/decentraland/sdk/components/ui_input.gen.d.ts +4 -0
  81. package/dist/components/generated/pb/decentraland/sdk/components/ui_input.gen.js +20 -0
  82. package/dist/components/generated/pb/decentraland/sdk/components/ui_scroll_result.gen.d.ts +15 -0
  83. package/dist/components/generated/pb/decentraland/sdk/components/ui_scroll_result.gen.js +42 -0
  84. package/dist/components/generated/pb/decentraland/sdk/components/ui_transform.gen.d.ts +35 -0
  85. package/dist/components/generated/pb/decentraland/sdk/components/ui_transform.gen.js +90 -0
  86. package/dist/components/index.d.ts +4 -0
  87. package/dist/components/index.js +6 -0
  88. package/dist/components/types.d.ts +2 -0
  89. package/dist/index.d.ts +3 -1
  90. package/dist/index.js +3 -0
  91. package/dist/systems/events.d.ts +48 -0
  92. package/dist/systems/events.js +52 -1
  93. package/dist/systems/raycast.d.ts +5 -1
  94. package/dist/systems/raycast.js +5 -1
  95. package/dist-cjs/components/extended/AvatarEquippedData.d.ts +15 -0
  96. package/dist-cjs/components/extended/AvatarEquippedData.js +14 -0
  97. package/dist-cjs/components/extended/AvatarShape.d.ts +15 -0
  98. package/dist-cjs/components/extended/AvatarShape.js +14 -0
  99. package/dist-cjs/components/extended/MeshCollider.d.ts +9 -0
  100. package/dist-cjs/components/extended/MeshCollider.js +6 -0
  101. package/dist-cjs/components/extended/MeshRenderer.d.ts +8 -0
  102. package/dist-cjs/components/extended/MeshRenderer.js +5 -0
  103. package/dist-cjs/components/generated/AvatarMovement.gen.d.ts +1 -0
  104. package/dist-cjs/components/generated/AvatarMovement.gen.js +28 -0
  105. package/dist-cjs/components/generated/AvatarMovementInfo.gen.d.ts +1 -0
  106. package/dist-cjs/components/generated/AvatarMovementInfo.gen.js +28 -0
  107. package/dist-cjs/components/generated/AvatarNametag.gen.d.ts +1 -0
  108. package/dist-cjs/components/generated/AvatarNametag.gen.js +28 -0
  109. package/dist-cjs/components/generated/CameraLayer.gen.d.ts +1 -0
  110. package/dist-cjs/components/generated/CameraLayer.gen.js +28 -0
  111. package/dist-cjs/components/generated/CameraLayers.gen.d.ts +1 -0
  112. package/dist-cjs/components/generated/CameraLayers.gen.js +28 -0
  113. package/dist-cjs/components/generated/GlobalLight.gen.d.ts +1 -0
  114. package/dist-cjs/components/generated/GlobalLight.gen.js +28 -0
  115. package/dist-cjs/components/generated/GltfNode.gen.d.ts +1 -0
  116. package/dist-cjs/components/generated/GltfNode.gen.js +28 -0
  117. package/dist-cjs/components/generated/GltfNodeState.gen.d.ts +1 -0
  118. package/dist-cjs/components/generated/GltfNodeState.gen.js +28 -0
  119. package/dist-cjs/components/generated/TextureCamera.gen.d.ts +1 -0
  120. package/dist-cjs/components/generated/TextureCamera.gen.js +28 -0
  121. package/dist-cjs/components/generated/UiCanvas.gen.d.ts +1 -0
  122. package/dist-cjs/components/generated/UiCanvas.gen.js +28 -0
  123. package/dist-cjs/components/generated/UiScrollResult.gen.d.ts +1 -0
  124. package/dist-cjs/components/generated/UiScrollResult.gen.js +28 -0
  125. package/dist-cjs/components/generated/component-names.gen.js +11 -0
  126. package/dist-cjs/components/generated/global.gen.d.ts +22 -4
  127. package/dist-cjs/components/generated/global.gen.js +13 -4
  128. package/dist-cjs/components/generated/index.gen.d.ts +44 -0
  129. package/dist-cjs/components/generated/index.gen.js +68 -2
  130. package/dist-cjs/components/generated/pb/decentraland/common/texture.gen.d.ts +20 -0
  131. package/dist-cjs/components/generated/pb/decentraland/common/texture.gen.js +66 -1
  132. package/dist-cjs/components/generated/pb/decentraland/sdk/components/avatar_equipped_data.gen.d.ts +2 -0
  133. package/dist-cjs/components/generated/pb/decentraland/sdk/components/avatar_equipped_data.gen.js +10 -1
  134. package/dist-cjs/components/generated/pb/decentraland/sdk/components/avatar_modifier_area.gen.d.ts +2 -0
  135. package/dist-cjs/components/generated/pb/decentraland/sdk/components/avatar_modifier_area.gen.js +10 -1
  136. package/dist-cjs/components/generated/pb/decentraland/sdk/components/avatar_movement.gen.d.ts +57 -0
  137. package/dist-cjs/components/generated/pb/decentraland/sdk/components/avatar_movement.gen.js +210 -0
  138. package/dist-cjs/components/generated/pb/decentraland/sdk/components/avatar_movement_info.gen.d.ts +65 -0
  139. package/dist-cjs/components/generated/pb/decentraland/sdk/components/avatar_movement_info.gen.js +234 -0
  140. package/dist-cjs/components/generated/pb/decentraland/sdk/components/avatar_nametag.gen.d.ts +42 -0
  141. package/dist-cjs/components/generated/pb/decentraland/sdk/components/avatar_nametag.gen.js +75 -0
  142. package/dist-cjs/components/generated/pb/decentraland/sdk/components/avatar_shape.gen.d.ts +2 -0
  143. package/dist-cjs/components/generated/pb/decentraland/sdk/components/avatar_shape.gen.js +10 -0
  144. package/dist-cjs/components/generated/pb/decentraland/sdk/components/camera_layer.gen.d.ts +30 -0
  145. package/dist-cjs/components/generated/pb/decentraland/sdk/components/camera_layer.gen.js +110 -0
  146. package/dist-cjs/components/generated/pb/decentraland/sdk/components/camera_layers.gen.d.ts +14 -0
  147. package/dist-cjs/components/generated/pb/decentraland/sdk/components/camera_layers.gen.js +56 -0
  148. package/dist-cjs/components/generated/pb/decentraland/sdk/components/camera_mode_area.gen.d.ts +2 -0
  149. package/dist-cjs/components/generated/pb/decentraland/sdk/components/camera_mode_area.gen.js +10 -1
  150. package/dist-cjs/components/generated/pb/decentraland/sdk/components/common/input_action.gen.d.ts +4 -1
  151. package/dist-cjs/components/generated/pb/decentraland/sdk/components/common/input_action.gen.js +3 -0
  152. package/dist-cjs/components/generated/pb/decentraland/sdk/components/global_light.gen.d.ts +34 -0
  153. package/dist-cjs/components/generated/pb/decentraland/sdk/components/global_light.gen.js +67 -0
  154. package/dist-cjs/components/generated/pb/decentraland/sdk/components/gltf_container_loading_state.gen.d.ts +19 -0
  155. package/dist-cjs/components/generated/pb/decentraland/sdk/components/gltf_container_loading_state.gen.js +46 -1
  156. package/dist-cjs/components/generated/pb/decentraland/sdk/components/gltf_node.gen.d.ts +50 -0
  157. package/dist-cjs/components/generated/pb/decentraland/sdk/components/gltf_node.gen.js +47 -0
  158. package/dist-cjs/components/generated/pb/decentraland/sdk/components/gltf_node_state.gen.d.ts +27 -0
  159. package/dist-cjs/components/generated/pb/decentraland/sdk/components/gltf_node_state.gen.js +65 -0
  160. package/dist-cjs/components/generated/pb/decentraland/sdk/components/material.gen.d.ts +22 -0
  161. package/dist-cjs/components/generated/pb/decentraland/sdk/components/material.gen.js +58 -2
  162. package/dist-cjs/components/generated/pb/decentraland/sdk/components/mesh_collider.gen.d.ts +20 -0
  163. package/dist-cjs/components/generated/pb/decentraland/sdk/components/mesh_collider.gen.js +57 -1
  164. package/dist-cjs/components/generated/pb/decentraland/sdk/components/mesh_renderer.gen.d.ts +21 -3
  165. package/dist-cjs/components/generated/pb/decentraland/sdk/components/mesh_renderer.gen.js +57 -1
  166. package/dist-cjs/components/generated/pb/decentraland/sdk/components/primary_pointer_info.gen.d.ts +8 -2
  167. package/dist-cjs/components/generated/pb/decentraland/sdk/components/primary_pointer_info.gen.js +3 -0
  168. package/dist-cjs/components/generated/pb/decentraland/sdk/components/raycast.gen.d.ts +13 -0
  169. package/dist-cjs/components/generated/pb/decentraland/sdk/components/raycast.gen.js +31 -1
  170. package/dist-cjs/components/generated/pb/decentraland/sdk/components/texture_camera.gen.d.ts +74 -0
  171. package/dist-cjs/components/generated/pb/decentraland/sdk/components/texture_camera.gen.js +197 -0
  172. package/dist-cjs/components/generated/pb/decentraland/sdk/components/ui_canvas.gen.d.ts +19 -0
  173. package/dist-cjs/components/generated/pb/decentraland/sdk/components/ui_canvas.gen.js +66 -0
  174. package/dist-cjs/components/generated/pb/decentraland/sdk/components/ui_input.gen.d.ts +4 -0
  175. package/dist-cjs/components/generated/pb/decentraland/sdk/components/ui_input.gen.js +20 -0
  176. package/dist-cjs/components/generated/pb/decentraland/sdk/components/ui_scroll_result.gen.d.ts +15 -0
  177. package/dist-cjs/components/generated/pb/decentraland/sdk/components/ui_scroll_result.gen.js +48 -0
  178. package/dist-cjs/components/generated/pb/decentraland/sdk/components/ui_transform.gen.d.ts +35 -0
  179. package/dist-cjs/components/generated/pb/decentraland/sdk/components/ui_transform.gen.js +91 -1
  180. package/dist-cjs/components/index.d.ts +4 -0
  181. package/dist-cjs/components/index.js +9 -1
  182. package/dist-cjs/components/types.d.ts +2 -0
  183. package/dist-cjs/index.d.ts +3 -1
  184. package/dist-cjs/index.js +4 -1
  185. package/dist-cjs/systems/events.d.ts +48 -0
  186. package/dist-cjs/systems/events.js +52 -1
  187. package/dist-cjs/systems/raycast.d.ts +5 -1
  188. package/dist-cjs/systems/raycast.js +5 -1
  189. package/package.json +2 -2
@@ -50,6 +50,24 @@ export interface PointerEventsSystem {
50
50
  * @param entity - Entity where the callback was attached
51
51
  */
52
52
  removeOnPointerHoverLeave(entity: Entity): void;
53
+ /**
54
+ * @public
55
+ * Remove the callback for onPointerDrag event
56
+ * @param entity - Entity where the callback was attached
57
+ */
58
+ removeOnPointerDrag(entity: Entity): void;
59
+ /**
60
+ * @public
61
+ * Remove the callback for onPointerDragLocked event
62
+ * @param entity - Entity where the callback was attached
63
+ */
64
+ removeOnPointerDragLocked(entity: Entity): void;
65
+ /**
66
+ * @public
67
+ * Remove the callback for onPointerDragEnd event
68
+ * @param entity - Entity where the callback was attached
69
+ */
70
+ removeOnPointerDragEnd(entity: Entity): void;
53
71
  /**
54
72
  * @public
55
73
  * Remove the callback for onProximityDown event
@@ -128,6 +146,36 @@ export interface PointerEventsSystem {
128
146
  entity: Entity;
129
147
  opts?: Partial<EventSystemOptions>;
130
148
  }, cb: EventSystemCallback): void;
149
+ /**
150
+ * @public
151
+ * Execute callback while the user holds the button pressed and moves the pointer, having pressed it on the entity
152
+ * @param pointerData - Entity to attach the callback - Opts to trigger Feedback and Button
153
+ * @param cb - Function to execute on every drag update
154
+ */
155
+ onPointerDrag(pointerData: {
156
+ entity: Entity;
157
+ opts?: Partial<EventSystemOptions>;
158
+ }, cb: EventSystemCallback): void;
159
+ /**
160
+ * @public
161
+ * Same as onPointerDrag, but the cursor is locked in place for the duration of the drag
162
+ * @param pointerData - Entity to attach the callback - Opts to trigger Feedback and Button
163
+ * @param cb - Function to execute on every drag update
164
+ */
165
+ onPointerDragLocked(pointerData: {
166
+ entity: Entity;
167
+ opts?: Partial<EventSystemOptions>;
168
+ }, cb: EventSystemCallback): void;
169
+ /**
170
+ * @public
171
+ * Execute callback when the user releases the button after a drag that started on the entity
172
+ * @param pointerData - Entity to attach the callback - Opts to trigger Feedback and Button
173
+ * @param cb - Function to execute when the drag ends
174
+ */
175
+ onPointerDragEnd(pointerData: {
176
+ entity: Entity;
177
+ opts?: Partial<EventSystemOptions>;
178
+ }, cb: EventSystemCallback): void;
131
179
  /**
132
180
  * @public
133
181
  * Execute callback when the user presses the proximity button on the entity
@@ -20,6 +20,9 @@ export function createPointerEventsSystem(engine, inputSystem) {
20
20
  EventType[EventType["HoverLeave"] = 4] = "HoverLeave";
21
21
  EventType[EventType["ProximityEnter"] = 5] = "ProximityEnter";
22
22
  EventType[EventType["ProximityLeave"] = 6] = "ProximityLeave";
23
+ EventType[EventType["Drag"] = 7] = "Drag";
24
+ EventType[EventType["DragLocked"] = 8] = "DragLocked";
25
+ EventType[EventType["DragEnd"] = 9] = "DragEnd";
23
26
  })(EventType || (EventType = {}));
24
27
  const eventsMap = new Map();
25
28
  function getEvent(entity) {
@@ -66,6 +69,15 @@ export function createPointerEventsSystem(engine, inputSystem) {
66
69
  else if (eventType === EventType.ProximityLeave) {
67
70
  return 5 /* PointerEventType.PET_PROXIMITY_LEAVE */;
68
71
  }
72
+ else if (eventType === EventType.Drag) {
73
+ return 7 /* PointerEventType.PET_DRAG */;
74
+ }
75
+ else if (eventType === EventType.DragLocked) {
76
+ return 6 /* PointerEventType.PET_DRAG_LOCKED */;
77
+ }
78
+ else if (eventType === EventType.DragEnd) {
79
+ return 8 /* PointerEventType.PET_DRAG_END */;
80
+ }
69
81
  return 1 /* PointerEventType.PET_DOWN */;
70
82
  }
71
83
  function removeEvent(entity, type, interactionType = 0 /* InteractionType.CURSOR */) {
@@ -93,7 +105,10 @@ export function createPointerEventsSystem(engine, inputSystem) {
93
105
  eventType === EventType.HoverEnter ||
94
106
  eventType === EventType.HoverLeave ||
95
107
  eventType === EventType.ProximityEnter ||
96
- eventType === EventType.ProximityLeave) {
108
+ eventType === EventType.ProximityLeave ||
109
+ eventType === EventType.Drag ||
110
+ eventType === EventType.DragLocked ||
111
+ eventType === EventType.DragEnd) {
97
112
  const command = inputSystem.getInputCommand(opts.button, getPointerEvent(eventType), entity);
98
113
  if (command) {
99
114
  checkNotThenable(cb(command), 'Event handler returned a thenable. Only synchronous functions are allowed');
@@ -140,6 +155,30 @@ export function createPointerEventsSystem(engine, inputSystem) {
140
155
  getEvent(entity).set(EventType.HoverLeave, { cb, opts: options });
141
156
  setPointerEvent(entity, 3 /* PointerEventType.PET_HOVER_LEAVE */, options);
142
157
  };
158
+ const onPointerDrag = (...args) => {
159
+ const [data, cb] = args;
160
+ const { entity, opts } = data;
161
+ const options = getDefaultOpts(opts);
162
+ removeEvent(entity, EventType.Drag);
163
+ getEvent(entity).set(EventType.Drag, { cb, opts: options });
164
+ setPointerEvent(entity, 7 /* PointerEventType.PET_DRAG */, options);
165
+ };
166
+ const onPointerDragLocked = (...args) => {
167
+ const [data, cb] = args;
168
+ const { entity, opts } = data;
169
+ const options = getDefaultOpts(opts);
170
+ removeEvent(entity, EventType.DragLocked);
171
+ getEvent(entity).set(EventType.DragLocked, { cb, opts: options });
172
+ setPointerEvent(entity, 6 /* PointerEventType.PET_DRAG_LOCKED */, options);
173
+ };
174
+ const onPointerDragEnd = (...args) => {
175
+ const [data, cb] = args;
176
+ const { entity, opts } = data;
177
+ const options = getDefaultOpts(opts);
178
+ removeEvent(entity, EventType.DragEnd);
179
+ getEvent(entity).set(EventType.DragEnd, { cb, opts: options });
180
+ setPointerEvent(entity, 8 /* PointerEventType.PET_DRAG_END */, options);
181
+ };
143
182
  const onProximityDown = (...args) => {
144
183
  const [data, cb] = args;
145
184
  const { entity, opts } = data;
@@ -188,6 +227,15 @@ export function createPointerEventsSystem(engine, inputSystem) {
188
227
  removeOnPointerHoverLeave(entity) {
189
228
  removeEvent(entity, EventType.HoverLeave);
190
229
  },
230
+ removeOnPointerDrag(entity) {
231
+ removeEvent(entity, EventType.Drag);
232
+ },
233
+ removeOnPointerDragLocked(entity) {
234
+ removeEvent(entity, EventType.DragLocked);
235
+ },
236
+ removeOnPointerDragEnd(entity) {
237
+ removeEvent(entity, EventType.DragEnd);
238
+ },
191
239
  removeOnProximityDown(entity) {
192
240
  removeEvent(entity, EventType.Down, 1 /* InteractionType.PROXIMITY */);
193
241
  },
@@ -213,6 +261,9 @@ export function createPointerEventsSystem(engine, inputSystem) {
213
261
  onPointerUp,
214
262
  onPointerHoverEnter,
215
263
  onPointerHoverLeave,
264
+ onPointerDrag,
265
+ onPointerDragLocked,
266
+ onPointerDragEnd,
216
267
  onProximityDown,
217
268
  onProximityUp,
218
269
  onProximityEnter,
@@ -1,4 +1,4 @@
1
- import { RaycastQueryType, PBRaycastResult } from '../components';
1
+ import { RaycastQueryType, RaycastShape, PBRaycastResult } from '../components';
2
2
  import { DeepReadonlyObject, Entity } from '../engine';
3
3
  import { Vector3 } from '../components/generated/pb/decentraland/common/vectors.gen';
4
4
  /**
@@ -14,6 +14,10 @@ export type RaycastSystemOptions = {
14
14
  queryType: RaycastQueryType;
15
15
  continuous?: boolean | undefined;
16
16
  collisionMask?: number | undefined;
17
+ /** shape to sweep along the ray, default RS_RAY (a point) */
18
+ shape?: RaycastShape | undefined;
19
+ /** include colliders from other scenes, default false */
20
+ includeWorld?: boolean | undefined;
17
21
  };
18
22
  export type LocalDirectionRaycastSystemOptions = {
19
23
  direction?: Vector3;
@@ -12,7 +12,9 @@ export function createRaycastSystem(engine) {
12
12
  queryType: 0 /* RaycastQueryType.RQT_HIT_FIRST */,
13
13
  continuous: false,
14
14
  originOffset: { x: 0, y: 0, z: 0 },
15
- collisionMask: 2 /* ColliderLayer.CL_PHYSICS */
15
+ collisionMask: 2 /* ColliderLayer.CL_PHYSICS */,
16
+ shape: 0 /* RaycastShape.RS_RAY */,
17
+ includeWorld: false
16
18
  };
17
19
  const getLocalDirectionRaycastDefaultOptions = (options = {}) => ({
18
20
  ...defaultOptions,
@@ -58,6 +60,8 @@ export function createRaycastSystem(engine) {
58
60
  raycast.direction = raycastValue.directionRawValue;
59
61
  raycast.continuous = raycastValue.continuous;
60
62
  raycast.queryType = raycastValue.queryType;
63
+ raycast.shape = raycastValue.shape;
64
+ raycast.includeWorld = raycastValue.includeWorld;
61
65
  entitiesCallbackResultMap.set(entity, { callback: callback });
62
66
  };
63
67
  nextTickRaycasts.push(onNextTick);
@@ -0,0 +1,15 @@
1
+ import { IEngine, LastWriteWinElementSetComponentDefinition } from '../../engine';
2
+ import { PBAvatarEquippedData } from '../generated/pb/decentraland/sdk/components/avatar_equipped_data.gen';
3
+ /**
4
+ * @public
5
+ * AvatarEquippedData with `forceRender` optional: the wire type is a repeated field (always present, so the
6
+ * generated type requires it), but a scene rarely needs it and shouldn't have to pass `[]`.
7
+ */
8
+ export type AvatarEquippedDataType = Omit<PBAvatarEquippedData, 'forceRender'> & {
9
+ forceRender?: string[] | undefined;
10
+ };
11
+ /**
12
+ * @public
13
+ */
14
+ export type AvatarEquippedDataComponentDefinitionExtended = LastWriteWinElementSetComponentDefinition<AvatarEquippedDataType>;
15
+ export declare function defineAvatarEquippedDataComponent(engine: Pick<IEngine, 'defineComponentFromSchema'>): AvatarEquippedDataComponentDefinitionExtended;
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.defineAvatarEquippedDataComponent = void 0;
4
+ const AvatarEquippedData_gen_1 = require("../generated/AvatarEquippedData.gen");
5
+ function defineAvatarEquippedDataComponent(engine) {
6
+ const patchedSchema = { ...AvatarEquippedData_gen_1.AvatarEquippedDataSchema };
7
+ const origSerialize = patchedSchema.serialize;
8
+ patchedSchema.serialize = (value, builder) => {
9
+ origSerialize(value.forceRender === undefined ? { ...value, forceRender: [] } : value, builder);
10
+ };
11
+ const theComponent = engine.defineComponentFromSchema('core::AvatarEquippedData', patchedSchema);
12
+ return theComponent;
13
+ }
14
+ exports.defineAvatarEquippedDataComponent = defineAvatarEquippedDataComponent;
@@ -0,0 +1,15 @@
1
+ import { IEngine, LastWriteWinElementSetComponentDefinition } from '../../engine';
2
+ import { PBAvatarShape } from '../generated/pb/decentraland/sdk/components/avatar_shape.gen';
3
+ /**
4
+ * @public
5
+ * AvatarShape with `forceRender` optional: the wire type is a repeated field (always present, so the
6
+ * generated type requires it), but a scene rarely needs it and shouldn't have to pass `[]`.
7
+ */
8
+ export type AvatarShapeType = Omit<PBAvatarShape, 'forceRender'> & {
9
+ forceRender?: string[] | undefined;
10
+ };
11
+ /**
12
+ * @public
13
+ */
14
+ export type AvatarShapeComponentDefinitionExtended = LastWriteWinElementSetComponentDefinition<AvatarShapeType>;
15
+ export declare function defineAvatarShapeComponent(engine: Pick<IEngine, 'defineComponentFromSchema'>): AvatarShapeComponentDefinitionExtended;
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.defineAvatarShapeComponent = void 0;
4
+ const AvatarShape_gen_1 = require("../generated/AvatarShape.gen");
5
+ function defineAvatarShapeComponent(engine) {
6
+ const patchedSchema = { ...AvatarShape_gen_1.AvatarShapeSchema };
7
+ const origSerialize = patchedSchema.serialize;
8
+ patchedSchema.serialize = (value, builder) => {
9
+ origSerialize(value.forceRender === undefined ? { ...value, forceRender: [] } : value, builder);
10
+ };
11
+ const theComponent = engine.defineComponentFromSchema('core::AvatarShape', patchedSchema);
12
+ return theComponent;
13
+ }
14
+ exports.defineAvatarShapeComponent = defineAvatarShapeComponent;
@@ -34,5 +34,14 @@ export interface MeshColliderComponentDefinitionExtended extends LastWriteWinEle
34
34
  * @param colliderMask - the set of layer where the collider reacts, default: Physics and Pointer
35
35
  */
36
36
  setSphere(entity: Entity, colliderLayers?: ColliderLayer | ColliderLayer[]): void;
37
+ /**
38
+ * @public
39
+ * Set a mesh from inside a gltf in the MeshCollider component
40
+ * @param entity - entity to create or replace the MeshCollider component
41
+ * @param source - the path to the gltf
42
+ * @param meshName - the name of the mesh in the gltf (see GltfContainerLoadingState.meshNames)
43
+ * @param colliderMask - the set of layer where the collider reacts, default: Physics and Pointer
44
+ */
45
+ setGltfMesh(entity: Entity, source: string, meshName: string, colliderLayers?: ColliderLayer | ColliderLayer[]): void;
37
46
  }
38
47
  export declare function defineMeshColliderComponent(engine: Pick<IEngine, 'defineComponentFromSchema'>): MeshColliderComponentDefinitionExtended;
@@ -37,6 +37,12 @@ function defineMeshColliderComponent(engine) {
37
37
  mesh: { $case: 'sphere', sphere: {} },
38
38
  collisionMask: getCollisionMask(colliderLayers)
39
39
  });
40
+ },
41
+ setGltfMesh(entity, source, meshName, colliderLayers) {
42
+ theComponent.createOrReplace(entity, {
43
+ mesh: { $case: 'gltf', gltf: { gltfSrc: source, name: meshName } },
44
+ collisionMask: getCollisionMask(colliderLayers)
45
+ });
40
46
  }
41
47
  };
42
48
  }
@@ -32,5 +32,13 @@ export interface MeshRendererComponentDefinitionExtended extends LastWriteWinEle
32
32
  * @param entity - entity to create or replace the MeshRenderer component
33
33
  */
34
34
  setSphere(entity: Entity): void;
35
+ /**
36
+ * @public
37
+ * Set a mesh from inside a gltf in the MeshRenderer component
38
+ * @param entity - entity to create or replace the MeshRenderer component
39
+ * @param source - the path to the gltf
40
+ * @param meshName - the name of the mesh in the gltf (see GltfContainerLoadingState.meshNames)
41
+ */
42
+ setGltfMesh(entity: Entity, source: string, meshName: string): void;
35
43
  }
36
44
  export declare function defineMeshRendererComponent(engine: Pick<IEngine, 'defineComponentFromSchema'>): MeshRendererComponentDefinitionExtended;
@@ -25,6 +25,11 @@ function defineMeshRendererComponent(engine) {
25
25
  theComponent.createOrReplace(entity, {
26
26
  mesh: { $case: 'sphere', sphere: {} }
27
27
  });
28
+ },
29
+ setGltfMesh(entity, source, meshName) {
30
+ theComponent.createOrReplace(entity, {
31
+ mesh: { $case: 'gltf', gltf: { gltfSrc: source, name: meshName } }
32
+ });
28
33
  }
29
34
  };
30
35
  }
@@ -0,0 +1,28 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.AvatarMovementSchema = void 0;
4
+ const avatar_movement_gen_1 = require("./pb/decentraland/sdk/components/avatar_movement.gen");
5
+ /**
6
+ * @internal
7
+ */
8
+ exports.AvatarMovementSchema = {
9
+ COMPONENT_ID: 1501,
10
+ serialize(value, builder) {
11
+ const writer = avatar_movement_gen_1.PBAvatarMovement.encode(value);
12
+ const buffer = new Uint8Array(writer.finish(), 0, writer.len);
13
+ builder.writeBuffer(buffer, false);
14
+ },
15
+ deserialize(reader) {
16
+ return avatar_movement_gen_1.PBAvatarMovement.decode(reader.buffer(), reader.remainingBytes());
17
+ },
18
+ create() {
19
+ // TODO: this is a hack.
20
+ return avatar_movement_gen_1.PBAvatarMovement.decode(new Uint8Array());
21
+ },
22
+ jsonSchema: {
23
+ type: "object",
24
+ properties: {},
25
+ serializationType: "protocol-buffer",
26
+ protocolBuffer: "PBAvatarMovement"
27
+ }
28
+ };
@@ -0,0 +1,28 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.AvatarMovementInfoSchema = void 0;
4
+ const avatar_movement_info_gen_1 = require("./pb/decentraland/sdk/components/avatar_movement_info.gen");
5
+ /**
6
+ * @internal
7
+ */
8
+ exports.AvatarMovementInfoSchema = {
9
+ COMPONENT_ID: 1500,
10
+ serialize(value, builder) {
11
+ const writer = avatar_movement_info_gen_1.PBAvatarMovementInfo.encode(value);
12
+ const buffer = new Uint8Array(writer.finish(), 0, writer.len);
13
+ builder.writeBuffer(buffer, false);
14
+ },
15
+ deserialize(reader) {
16
+ return avatar_movement_info_gen_1.PBAvatarMovementInfo.decode(reader.buffer(), reader.remainingBytes());
17
+ },
18
+ create() {
19
+ // TODO: this is a hack.
20
+ return avatar_movement_info_gen_1.PBAvatarMovementInfo.decode(new Uint8Array());
21
+ },
22
+ jsonSchema: {
23
+ type: "object",
24
+ properties: {},
25
+ serializationType: "protocol-buffer",
26
+ protocolBuffer: "PBAvatarMovementInfo"
27
+ }
28
+ };
@@ -0,0 +1,28 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.AvatarNametagSchema = void 0;
4
+ const avatar_nametag_gen_1 = require("./pb/decentraland/sdk/components/avatar_nametag.gen");
5
+ /**
6
+ * @internal
7
+ */
8
+ exports.AvatarNametagSchema = {
9
+ COMPONENT_ID: 1221,
10
+ serialize(value, builder) {
11
+ const writer = avatar_nametag_gen_1.PBAvatarNametag.encode(value);
12
+ const buffer = new Uint8Array(writer.finish(), 0, writer.len);
13
+ builder.writeBuffer(buffer, false);
14
+ },
15
+ deserialize(reader) {
16
+ return avatar_nametag_gen_1.PBAvatarNametag.decode(reader.buffer(), reader.remainingBytes());
17
+ },
18
+ create() {
19
+ // TODO: this is a hack.
20
+ return avatar_nametag_gen_1.PBAvatarNametag.decode(new Uint8Array());
21
+ },
22
+ jsonSchema: {
23
+ type: "object",
24
+ properties: {},
25
+ serializationType: "protocol-buffer",
26
+ protocolBuffer: "PBAvatarNametag"
27
+ }
28
+ };
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,28 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.CameraLayerSchema = void 0;
4
+ const camera_layer_gen_1 = require("./pb/decentraland/sdk/components/camera_layer.gen");
5
+ /**
6
+ * @internal
7
+ */
8
+ exports.CameraLayerSchema = {
9
+ COMPONENT_ID: 1503,
10
+ serialize(value, builder) {
11
+ const writer = camera_layer_gen_1.PBCameraLayer.encode(value);
12
+ const buffer = new Uint8Array(writer.finish(), 0, writer.len);
13
+ builder.writeBuffer(buffer, false);
14
+ },
15
+ deserialize(reader) {
16
+ return camera_layer_gen_1.PBCameraLayer.decode(reader.buffer(), reader.remainingBytes());
17
+ },
18
+ create() {
19
+ // TODO: this is a hack.
20
+ return camera_layer_gen_1.PBCameraLayer.decode(new Uint8Array());
21
+ },
22
+ jsonSchema: {
23
+ type: "object",
24
+ properties: {},
25
+ serializationType: "protocol-buffer",
26
+ protocolBuffer: "PBCameraLayer"
27
+ }
28
+ };
@@ -0,0 +1,28 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.CameraLayersSchema = void 0;
4
+ const camera_layers_gen_1 = require("./pb/decentraland/sdk/components/camera_layers.gen");
5
+ /**
6
+ * @internal
7
+ */
8
+ exports.CameraLayersSchema = {
9
+ COMPONENT_ID: 1208,
10
+ serialize(value, builder) {
11
+ const writer = camera_layers_gen_1.PBCameraLayers.encode(value);
12
+ const buffer = new Uint8Array(writer.finish(), 0, writer.len);
13
+ builder.writeBuffer(buffer, false);
14
+ },
15
+ deserialize(reader) {
16
+ return camera_layers_gen_1.PBCameraLayers.decode(reader.buffer(), reader.remainingBytes());
17
+ },
18
+ create() {
19
+ // TODO: this is a hack.
20
+ return camera_layers_gen_1.PBCameraLayers.decode(new Uint8Array());
21
+ },
22
+ jsonSchema: {
23
+ type: "object",
24
+ properties: {},
25
+ serializationType: "protocol-buffer",
26
+ protocolBuffer: "PBCameraLayers"
27
+ }
28
+ };
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,28 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.GlobalLightSchema = void 0;
4
+ const global_light_gen_1 = require("./pb/decentraland/sdk/components/global_light.gen");
5
+ /**
6
+ * @internal
7
+ */
8
+ exports.GlobalLightSchema = {
9
+ COMPONENT_ID: 1206,
10
+ serialize(value, builder) {
11
+ const writer = global_light_gen_1.PBGlobalLight.encode(value);
12
+ const buffer = new Uint8Array(writer.finish(), 0, writer.len);
13
+ builder.writeBuffer(buffer, false);
14
+ },
15
+ deserialize(reader) {
16
+ return global_light_gen_1.PBGlobalLight.decode(reader.buffer(), reader.remainingBytes());
17
+ },
18
+ create() {
19
+ // TODO: this is a hack.
20
+ return global_light_gen_1.PBGlobalLight.decode(new Uint8Array());
21
+ },
22
+ jsonSchema: {
23
+ type: "object",
24
+ properties: {},
25
+ serializationType: "protocol-buffer",
26
+ protocolBuffer: "PBGlobalLight"
27
+ }
28
+ };
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,28 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.GltfNodeSchema = void 0;
4
+ const gltf_node_gen_1 = require("./pb/decentraland/sdk/components/gltf_node.gen");
5
+ /**
6
+ * @internal
7
+ */
8
+ exports.GltfNodeSchema = {
9
+ COMPONENT_ID: 1200,
10
+ serialize(value, builder) {
11
+ const writer = gltf_node_gen_1.PBGltfNode.encode(value);
12
+ const buffer = new Uint8Array(writer.finish(), 0, writer.len);
13
+ builder.writeBuffer(buffer, false);
14
+ },
15
+ deserialize(reader) {
16
+ return gltf_node_gen_1.PBGltfNode.decode(reader.buffer(), reader.remainingBytes());
17
+ },
18
+ create() {
19
+ // TODO: this is a hack.
20
+ return gltf_node_gen_1.PBGltfNode.decode(new Uint8Array());
21
+ },
22
+ jsonSchema: {
23
+ type: "object",
24
+ properties: {},
25
+ serializationType: "protocol-buffer",
26
+ protocolBuffer: "PBGltfNode"
27
+ }
28
+ };
@@ -0,0 +1,28 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.GltfNodeStateSchema = void 0;
4
+ const gltf_node_state_gen_1 = require("./pb/decentraland/sdk/components/gltf_node_state.gen");
5
+ /**
6
+ * @internal
7
+ */
8
+ exports.GltfNodeStateSchema = {
9
+ COMPONENT_ID: 1201,
10
+ serialize(value, builder) {
11
+ const writer = gltf_node_state_gen_1.PBGltfNodeState.encode(value);
12
+ const buffer = new Uint8Array(writer.finish(), 0, writer.len);
13
+ builder.writeBuffer(buffer, false);
14
+ },
15
+ deserialize(reader) {
16
+ return gltf_node_state_gen_1.PBGltfNodeState.decode(reader.buffer(), reader.remainingBytes());
17
+ },
18
+ create() {
19
+ // TODO: this is a hack.
20
+ return gltf_node_state_gen_1.PBGltfNodeState.decode(new Uint8Array());
21
+ },
22
+ jsonSchema: {
23
+ type: "object",
24
+ properties: {},
25
+ serializationType: "protocol-buffer",
26
+ protocolBuffer: "PBGltfNodeState"
27
+ }
28
+ };
@@ -0,0 +1,28 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.TextureCameraSchema = void 0;
4
+ const texture_camera_gen_1 = require("./pb/decentraland/sdk/components/texture_camera.gen");
5
+ /**
6
+ * @internal
7
+ */
8
+ exports.TextureCameraSchema = {
9
+ COMPONENT_ID: 1207,
10
+ serialize(value, builder) {
11
+ const writer = texture_camera_gen_1.PBTextureCamera.encode(value);
12
+ const buffer = new Uint8Array(writer.finish(), 0, writer.len);
13
+ builder.writeBuffer(buffer, false);
14
+ },
15
+ deserialize(reader) {
16
+ return texture_camera_gen_1.PBTextureCamera.decode(reader.buffer(), reader.remainingBytes());
17
+ },
18
+ create() {
19
+ // TODO: this is a hack.
20
+ return texture_camera_gen_1.PBTextureCamera.decode(new Uint8Array());
21
+ },
22
+ jsonSchema: {
23
+ type: "object",
24
+ properties: {},
25
+ serializationType: "protocol-buffer",
26
+ protocolBuffer: "PBTextureCamera"
27
+ }
28
+ };
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,28 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.UiCanvasSchema = void 0;
4
+ const ui_canvas_gen_1 = require("./pb/decentraland/sdk/components/ui_canvas.gen");
5
+ /**
6
+ * @internal
7
+ */
8
+ exports.UiCanvasSchema = {
9
+ COMPONENT_ID: 1203,
10
+ serialize(value, builder) {
11
+ const writer = ui_canvas_gen_1.PBUiCanvas.encode(value);
12
+ const buffer = new Uint8Array(writer.finish(), 0, writer.len);
13
+ builder.writeBuffer(buffer, false);
14
+ },
15
+ deserialize(reader) {
16
+ return ui_canvas_gen_1.PBUiCanvas.decode(reader.buffer(), reader.remainingBytes());
17
+ },
18
+ create() {
19
+ // TODO: this is a hack.
20
+ return ui_canvas_gen_1.PBUiCanvas.decode(new Uint8Array());
21
+ },
22
+ jsonSchema: {
23
+ type: "object",
24
+ properties: {},
25
+ serializationType: "protocol-buffer",
26
+ protocolBuffer: "PBUiCanvas"
27
+ }
28
+ };