@dcl/ecs 7.29.1-35862852104.commit-1f44e80 → 7.29.1-35901015152.commit-d1b7b96

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 (245) 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/CameraLayer.gen.d.ts +1 -0
  14. package/dist/components/generated/CameraLayer.gen.js +25 -0
  15. package/dist/components/generated/CameraLayers.gen.d.ts +1 -0
  16. package/dist/components/generated/CameraLayers.gen.js +25 -0
  17. package/dist/components/generated/GlobalLight.gen.d.ts +1 -0
  18. package/dist/components/generated/GlobalLight.gen.js +25 -0
  19. package/dist/components/generated/GltfNode.gen.d.ts +1 -0
  20. package/dist/components/generated/GltfNode.gen.js +25 -0
  21. package/dist/components/generated/GltfNodeState.gen.d.ts +1 -0
  22. package/dist/components/generated/GltfNodeState.gen.js +25 -0
  23. package/dist/components/generated/TextureCamera.gen.d.ts +1 -0
  24. package/dist/components/generated/TextureCamera.gen.js +25 -0
  25. package/dist/components/generated/UiCanvas.gen.d.ts +1 -0
  26. package/dist/components/generated/UiCanvas.gen.js +25 -0
  27. package/dist/components/generated/UiScrollResult.gen.d.ts +1 -0
  28. package/dist/components/generated/UiScrollResult.gen.js +25 -0
  29. package/dist/components/generated/component-names.gen.js +10 -0
  30. package/dist/components/generated/global.gen.d.ts +20 -4
  31. package/dist/components/generated/global.gen.js +10 -2
  32. package/dist/components/generated/index.gen.d.ts +40 -0
  33. package/dist/components/generated/index.gen.js +50 -0
  34. package/dist/components/generated/pb/decentraland/common/texture.gen.d.ts +20 -0
  35. package/dist/components/generated/pb/decentraland/common/texture.gen.js +65 -0
  36. package/dist/components/generated/pb/decentraland/sdk/components/avatar_base.gen.d.ts +2 -0
  37. package/dist/components/generated/pb/decentraland/sdk/components/avatar_base.gen.js +17 -1
  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_shape.gen.d.ts +2 -0
  47. package/dist/components/generated/pb/decentraland/sdk/components/avatar_shape.gen.js +10 -0
  48. package/dist/components/generated/pb/decentraland/sdk/components/camera_layer.gen.d.ts +30 -0
  49. package/dist/components/generated/pb/decentraland/sdk/components/camera_layer.gen.js +104 -0
  50. package/dist/components/generated/pb/decentraland/sdk/components/camera_layers.gen.d.ts +14 -0
  51. package/dist/components/generated/pb/decentraland/sdk/components/camera_layers.gen.js +50 -0
  52. package/dist/components/generated/pb/decentraland/sdk/components/camera_mode_area.gen.d.ts +2 -0
  53. package/dist/components/generated/pb/decentraland/sdk/components/camera_mode_area.gen.js +10 -1
  54. package/dist/components/generated/pb/decentraland/sdk/components/common/input_action.gen.d.ts +4 -1
  55. package/dist/components/generated/pb/decentraland/sdk/components/common/input_action.gen.js +3 -0
  56. package/dist/components/generated/pb/decentraland/sdk/components/global_light.gen.d.ts +34 -0
  57. package/dist/components/generated/pb/decentraland/sdk/components/global_light.gen.js +61 -0
  58. package/dist/components/generated/pb/decentraland/sdk/components/gltf_container_loading_state.gen.d.ts +19 -0
  59. package/dist/components/generated/pb/decentraland/sdk/components/gltf_container_loading_state.gen.js +46 -1
  60. package/dist/components/generated/pb/decentraland/sdk/components/gltf_node.gen.d.ts +50 -0
  61. package/dist/components/generated/pb/decentraland/sdk/components/gltf_node.gen.js +41 -0
  62. package/dist/components/generated/pb/decentraland/sdk/components/gltf_node_state.gen.d.ts +27 -0
  63. package/dist/components/generated/pb/decentraland/sdk/components/gltf_node_state.gen.js +59 -0
  64. package/dist/components/generated/pb/decentraland/sdk/components/material.gen.d.ts +22 -0
  65. package/dist/components/generated/pb/decentraland/sdk/components/material.gen.js +57 -1
  66. package/dist/components/generated/pb/decentraland/sdk/components/mesh_collider.gen.d.ts +20 -0
  67. package/dist/components/generated/pb/decentraland/sdk/components/mesh_collider.gen.js +56 -0
  68. package/dist/components/generated/pb/decentraland/sdk/components/mesh_renderer.gen.d.ts +21 -3
  69. package/dist/components/generated/pb/decentraland/sdk/components/mesh_renderer.gen.js +56 -0
  70. package/dist/components/generated/pb/decentraland/sdk/components/primary_pointer_info.gen.d.ts +8 -2
  71. package/dist/components/generated/pb/decentraland/sdk/components/primary_pointer_info.gen.js +3 -0
  72. package/dist/components/generated/pb/decentraland/sdk/components/raycast.gen.d.ts +13 -0
  73. package/dist/components/generated/pb/decentraland/sdk/components/raycast.gen.js +30 -0
  74. package/dist/components/generated/pb/decentraland/sdk/components/text_shape.gen.d.ts +2 -0
  75. package/dist/components/generated/pb/decentraland/sdk/components/text_shape.gen.js +10 -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_dropdown.gen.d.ts +2 -0
  81. package/dist/components/generated/pb/decentraland/sdk/components/ui_dropdown.gen.js +10 -0
  82. package/dist/components/generated/pb/decentraland/sdk/components/ui_input.gen.d.ts +6 -0
  83. package/dist/components/generated/pb/decentraland/sdk/components/ui_input.gen.js +30 -0
  84. package/dist/components/generated/pb/decentraland/sdk/components/ui_scroll_result.gen.d.ts +15 -0
  85. package/dist/components/generated/pb/decentraland/sdk/components/ui_scroll_result.gen.js +42 -0
  86. package/dist/components/generated/pb/decentraland/sdk/components/ui_text.gen.d.ts +2 -0
  87. package/dist/components/generated/pb/decentraland/sdk/components/ui_text.gen.js +10 -0
  88. package/dist/components/generated/pb/decentraland/sdk/components/ui_transform.gen.d.ts +35 -0
  89. package/dist/components/generated/pb/decentraland/sdk/components/ui_transform.gen.js +90 -0
  90. package/dist/components/index.d.ts +4 -5
  91. package/dist/components/index.js +8 -5
  92. package/dist/components/manual/Transform.d.ts +0 -9
  93. package/dist/components/manual/Transform.js +3 -3
  94. package/dist/components/types.d.ts +2 -1
  95. package/dist/engine/component.d.ts +1 -52
  96. package/dist/engine/grow-only-value-set-component-definition.js +2 -45
  97. package/dist/engine/input.js +8 -8
  98. package/dist/engine/lww-element-set-component-definition.d.ts +1 -3
  99. package/dist/engine/lww-element-set-component-definition.js +27 -88
  100. package/dist/engine/readonly.d.ts +1 -1
  101. package/dist/engine/readonly.js +0 -10
  102. package/dist/index.d.ts +3 -2
  103. package/dist/index.js +3 -1
  104. package/dist/schemas/OneOf.js +1 -13
  105. package/dist/serialization/crdt/index.d.ts +0 -1
  106. package/dist/serialization/crdt/index.js +0 -1
  107. package/dist/serialization/crdt/network/utils.d.ts +9 -0
  108. package/dist/serialization/crdt/network/utils.js +60 -0
  109. package/dist/serialization/crdt/types.d.ts +3 -25
  110. package/dist/serialization/crdt/types.js +1 -3
  111. package/dist/systems/crdt/index.d.ts +1 -0
  112. package/dist/systems/crdt/index.js +143 -76
  113. package/dist/systems/crdt/types.d.ts +0 -10
  114. package/dist/systems/cyclicParentingChecker.js +4 -9
  115. package/dist/systems/events.d.ts +48 -0
  116. package/dist/systems/events.js +70 -48
  117. package/dist/systems/raycast.d.ts +5 -1
  118. package/dist/systems/raycast.js +5 -1
  119. package/dist-cjs/components/extended/AvatarEquippedData.d.ts +15 -0
  120. package/dist-cjs/components/extended/AvatarEquippedData.js +14 -0
  121. package/dist-cjs/components/extended/AvatarShape.d.ts +15 -0
  122. package/dist-cjs/components/extended/AvatarShape.js +14 -0
  123. package/dist-cjs/components/extended/MeshCollider.d.ts +9 -0
  124. package/dist-cjs/components/extended/MeshCollider.js +6 -0
  125. package/dist-cjs/components/extended/MeshRenderer.d.ts +8 -0
  126. package/dist-cjs/components/extended/MeshRenderer.js +5 -0
  127. package/dist-cjs/components/generated/AvatarMovement.gen.d.ts +1 -0
  128. package/dist-cjs/components/generated/AvatarMovement.gen.js +28 -0
  129. package/dist-cjs/components/generated/AvatarMovementInfo.gen.d.ts +1 -0
  130. package/dist-cjs/components/generated/AvatarMovementInfo.gen.js +28 -0
  131. package/dist-cjs/components/generated/CameraLayer.gen.d.ts +1 -0
  132. package/dist-cjs/components/generated/CameraLayer.gen.js +28 -0
  133. package/dist-cjs/components/generated/CameraLayers.gen.d.ts +1 -0
  134. package/dist-cjs/components/generated/CameraLayers.gen.js +28 -0
  135. package/dist-cjs/components/generated/GlobalLight.gen.d.ts +1 -0
  136. package/dist-cjs/components/generated/GlobalLight.gen.js +28 -0
  137. package/dist-cjs/components/generated/GltfNode.gen.d.ts +1 -0
  138. package/dist-cjs/components/generated/GltfNode.gen.js +28 -0
  139. package/dist-cjs/components/generated/GltfNodeState.gen.d.ts +1 -0
  140. package/dist-cjs/components/generated/GltfNodeState.gen.js +28 -0
  141. package/dist-cjs/components/generated/TextureCamera.gen.d.ts +1 -0
  142. package/dist-cjs/components/generated/TextureCamera.gen.js +28 -0
  143. package/dist-cjs/components/generated/UiCanvas.gen.d.ts +1 -0
  144. package/dist-cjs/components/generated/UiCanvas.gen.js +28 -0
  145. package/dist-cjs/components/generated/UiScrollResult.gen.d.ts +1 -0
  146. package/dist-cjs/components/generated/UiScrollResult.gen.js +28 -0
  147. package/dist-cjs/components/generated/component-names.gen.js +10 -0
  148. package/dist-cjs/components/generated/global.gen.d.ts +20 -4
  149. package/dist-cjs/components/generated/global.gen.js +12 -4
  150. package/dist-cjs/components/generated/index.gen.d.ts +40 -0
  151. package/dist-cjs/components/generated/index.gen.js +62 -2
  152. package/dist-cjs/components/generated/pb/decentraland/common/texture.gen.d.ts +20 -0
  153. package/dist-cjs/components/generated/pb/decentraland/common/texture.gen.js +66 -1
  154. package/dist-cjs/components/generated/pb/decentraland/sdk/components/avatar_base.gen.d.ts +2 -0
  155. package/dist-cjs/components/generated/pb/decentraland/sdk/components/avatar_base.gen.js +17 -1
  156. package/dist-cjs/components/generated/pb/decentraland/sdk/components/avatar_equipped_data.gen.d.ts +2 -0
  157. package/dist-cjs/components/generated/pb/decentraland/sdk/components/avatar_equipped_data.gen.js +10 -1
  158. package/dist-cjs/components/generated/pb/decentraland/sdk/components/avatar_modifier_area.gen.d.ts +2 -0
  159. package/dist-cjs/components/generated/pb/decentraland/sdk/components/avatar_modifier_area.gen.js +10 -1
  160. package/dist-cjs/components/generated/pb/decentraland/sdk/components/avatar_movement.gen.d.ts +57 -0
  161. package/dist-cjs/components/generated/pb/decentraland/sdk/components/avatar_movement.gen.js +210 -0
  162. package/dist-cjs/components/generated/pb/decentraland/sdk/components/avatar_movement_info.gen.d.ts +65 -0
  163. package/dist-cjs/components/generated/pb/decentraland/sdk/components/avatar_movement_info.gen.js +234 -0
  164. package/dist-cjs/components/generated/pb/decentraland/sdk/components/avatar_shape.gen.d.ts +2 -0
  165. package/dist-cjs/components/generated/pb/decentraland/sdk/components/avatar_shape.gen.js +10 -0
  166. package/dist-cjs/components/generated/pb/decentraland/sdk/components/camera_layer.gen.d.ts +30 -0
  167. package/dist-cjs/components/generated/pb/decentraland/sdk/components/camera_layer.gen.js +110 -0
  168. package/dist-cjs/components/generated/pb/decentraland/sdk/components/camera_layers.gen.d.ts +14 -0
  169. package/dist-cjs/components/generated/pb/decentraland/sdk/components/camera_layers.gen.js +56 -0
  170. package/dist-cjs/components/generated/pb/decentraland/sdk/components/camera_mode_area.gen.d.ts +2 -0
  171. package/dist-cjs/components/generated/pb/decentraland/sdk/components/camera_mode_area.gen.js +10 -1
  172. package/dist-cjs/components/generated/pb/decentraland/sdk/components/common/input_action.gen.d.ts +4 -1
  173. package/dist-cjs/components/generated/pb/decentraland/sdk/components/common/input_action.gen.js +3 -0
  174. package/dist-cjs/components/generated/pb/decentraland/sdk/components/global_light.gen.d.ts +34 -0
  175. package/dist-cjs/components/generated/pb/decentraland/sdk/components/global_light.gen.js +67 -0
  176. package/dist-cjs/components/generated/pb/decentraland/sdk/components/gltf_container_loading_state.gen.d.ts +19 -0
  177. package/dist-cjs/components/generated/pb/decentraland/sdk/components/gltf_container_loading_state.gen.js +46 -1
  178. package/dist-cjs/components/generated/pb/decentraland/sdk/components/gltf_node.gen.d.ts +50 -0
  179. package/dist-cjs/components/generated/pb/decentraland/sdk/components/gltf_node.gen.js +47 -0
  180. package/dist-cjs/components/generated/pb/decentraland/sdk/components/gltf_node_state.gen.d.ts +27 -0
  181. package/dist-cjs/components/generated/pb/decentraland/sdk/components/gltf_node_state.gen.js +65 -0
  182. package/dist-cjs/components/generated/pb/decentraland/sdk/components/material.gen.d.ts +22 -0
  183. package/dist-cjs/components/generated/pb/decentraland/sdk/components/material.gen.js +58 -2
  184. package/dist-cjs/components/generated/pb/decentraland/sdk/components/mesh_collider.gen.d.ts +20 -0
  185. package/dist-cjs/components/generated/pb/decentraland/sdk/components/mesh_collider.gen.js +57 -1
  186. package/dist-cjs/components/generated/pb/decentraland/sdk/components/mesh_renderer.gen.d.ts +21 -3
  187. package/dist-cjs/components/generated/pb/decentraland/sdk/components/mesh_renderer.gen.js +57 -1
  188. package/dist-cjs/components/generated/pb/decentraland/sdk/components/primary_pointer_info.gen.d.ts +8 -2
  189. package/dist-cjs/components/generated/pb/decentraland/sdk/components/primary_pointer_info.gen.js +3 -0
  190. package/dist-cjs/components/generated/pb/decentraland/sdk/components/raycast.gen.d.ts +13 -0
  191. package/dist-cjs/components/generated/pb/decentraland/sdk/components/raycast.gen.js +31 -1
  192. package/dist-cjs/components/generated/pb/decentraland/sdk/components/text_shape.gen.d.ts +2 -0
  193. package/dist-cjs/components/generated/pb/decentraland/sdk/components/text_shape.gen.js +10 -0
  194. package/dist-cjs/components/generated/pb/decentraland/sdk/components/texture_camera.gen.d.ts +74 -0
  195. package/dist-cjs/components/generated/pb/decentraland/sdk/components/texture_camera.gen.js +197 -0
  196. package/dist-cjs/components/generated/pb/decentraland/sdk/components/ui_canvas.gen.d.ts +19 -0
  197. package/dist-cjs/components/generated/pb/decentraland/sdk/components/ui_canvas.gen.js +66 -0
  198. package/dist-cjs/components/generated/pb/decentraland/sdk/components/ui_dropdown.gen.d.ts +2 -0
  199. package/dist-cjs/components/generated/pb/decentraland/sdk/components/ui_dropdown.gen.js +10 -0
  200. package/dist-cjs/components/generated/pb/decentraland/sdk/components/ui_input.gen.d.ts +6 -0
  201. package/dist-cjs/components/generated/pb/decentraland/sdk/components/ui_input.gen.js +30 -0
  202. package/dist-cjs/components/generated/pb/decentraland/sdk/components/ui_scroll_result.gen.d.ts +15 -0
  203. package/dist-cjs/components/generated/pb/decentraland/sdk/components/ui_scroll_result.gen.js +48 -0
  204. package/dist-cjs/components/generated/pb/decentraland/sdk/components/ui_text.gen.d.ts +2 -0
  205. package/dist-cjs/components/generated/pb/decentraland/sdk/components/ui_text.gen.js +10 -0
  206. package/dist-cjs/components/generated/pb/decentraland/sdk/components/ui_transform.gen.d.ts +35 -0
  207. package/dist-cjs/components/generated/pb/decentraland/sdk/components/ui_transform.gen.js +91 -1
  208. package/dist-cjs/components/index.d.ts +4 -5
  209. package/dist-cjs/components/index.js +11 -7
  210. package/dist-cjs/components/manual/Transform.d.ts +0 -9
  211. package/dist-cjs/components/manual/Transform.js +3 -3
  212. package/dist-cjs/components/types.d.ts +2 -1
  213. package/dist-cjs/engine/component.d.ts +1 -52
  214. package/dist-cjs/engine/grow-only-value-set-component-definition.js +1 -44
  215. package/dist-cjs/engine/input.js +8 -8
  216. package/dist-cjs/engine/lww-element-set-component-definition.d.ts +1 -3
  217. package/dist-cjs/engine/lww-element-set-component-definition.js +28 -91
  218. package/dist-cjs/engine/readonly.d.ts +1 -1
  219. package/dist-cjs/engine/readonly.js +0 -10
  220. package/dist-cjs/index.d.ts +3 -2
  221. package/dist-cjs/index.js +4 -2
  222. package/dist-cjs/schemas/OneOf.js +1 -13
  223. package/dist-cjs/serialization/crdt/index.d.ts +0 -1
  224. package/dist-cjs/serialization/crdt/index.js +0 -1
  225. package/dist-cjs/serialization/crdt/network/utils.d.ts +9 -0
  226. package/dist-cjs/serialization/crdt/network/utils.js +67 -0
  227. package/dist-cjs/serialization/crdt/types.d.ts +3 -25
  228. package/dist-cjs/serialization/crdt/types.js +1 -3
  229. package/dist-cjs/systems/crdt/index.d.ts +1 -0
  230. package/dist-cjs/systems/crdt/index.js +166 -76
  231. package/dist-cjs/systems/crdt/types.d.ts +0 -10
  232. package/dist-cjs/systems/cyclicParentingChecker.js +4 -9
  233. package/dist-cjs/systems/events.d.ts +48 -0
  234. package/dist-cjs/systems/events.js +70 -48
  235. package/dist-cjs/systems/raycast.d.ts +5 -1
  236. package/dist-cjs/systems/raycast.js +5 -1
  237. package/package.json +2 -2
  238. package/dist/components/manual/CreatedBy.d.ts +0 -9
  239. package/dist/components/manual/CreatedBy.js +0 -8
  240. package/dist/serialization/crdt/authoritativePutComponent.d.ts +0 -15
  241. package/dist/serialization/crdt/authoritativePutComponent.js +0 -47
  242. package/dist-cjs/components/manual/CreatedBy.d.ts +0 -9
  243. package/dist-cjs/components/manual/CreatedBy.js +0 -10
  244. package/dist-cjs/serialization/crdt/authoritativePutComponent.d.ts +0 -15
  245. package/dist-cjs/serialization/crdt/authoritativePutComponent.js +0 -50
@@ -47,21 +47,14 @@ function createPointerEventsSystem(engine, inputSystem) {
47
47
  EventType[EventType["HoverLeave"] = 4] = "HoverLeave";
48
48
  EventType[EventType["ProximityEnter"] = 5] = "ProximityEnter";
49
49
  EventType[EventType["ProximityLeave"] = 6] = "ProximityLeave";
50
+ EventType[EventType["Drag"] = 7] = "Drag";
51
+ EventType[EventType["DragLocked"] = 8] = "DragLocked";
52
+ EventType[EventType["DragEnd"] = 9] = "DragEnd";
50
53
  })(EventType || (EventType = {}));
51
54
  const eventsMap = new Map();
52
55
  function getEvent(entity) {
53
56
  return eventsMap.get(entity) || eventsMap.set(entity, new Map()).get(entity);
54
57
  }
55
- // A cursor handler and a proximity handler are separate registrations that
56
- // produce separate PointerEvents entries, so they need separate slots here
57
- // too. Keying on the event type alone made onProximityDown evict whatever
58
- // onPointerDown had left.
59
- function eventKey(type, interactionType) {
60
- return `${type}:${interactionType}`;
61
- }
62
- function setEvent(entity, type, cb, opts, interactionType = 0 /* InteractionType.CURSOR */) {
63
- getEvent(entity).set(eventKey(type, interactionType), { cb, opts, eventType: type });
64
- }
65
58
  function setPointerEvent(entity, type, opts, interactionType = 0 /* InteractionType.CURSOR */) {
66
59
  const pointerEvent = PointerEvents.getMutableOrNull(entity) || PointerEvents.create(entity);
67
60
  pointerEvent.pointerEvents.push({
@@ -79,27 +72,13 @@ function createPointerEventsSystem(engine, inputSystem) {
79
72
  interactionType: interactionType ?? 0 /* InteractionType.CURSOR */
80
73
  });
81
74
  }
82
- function removePointerEvent(entity, type, opts, interactionType = 0 /* InteractionType.CURSOR */) {
75
+ function removePointerEvent(entity, type, button, interactionType = 0 /* InteractionType.CURSOR */) {
83
76
  const pointerEvent = PointerEvents.getMutableOrNull(entity);
84
77
  if (!pointerEvent)
85
78
  return;
86
- const sameSlot = (pointer) => pointer.eventType === type && pointer.interactionType === interactionType;
87
- // onClick and onPointerDown both describe themselves as PET_DOWN, so the event
88
- // type and button alone do not say which registration an entry belongs to. Match
89
- // everything the entry was built from, or removing one handler can take the
90
- // other's descriptor and leave the renderer advertising the wrong interaction.
91
- const index = pointerEvent.pointerEvents.findIndex((pointer) => sameSlot(pointer) &&
92
- pointer.eventInfo?.button === opts.button &&
93
- pointer.eventInfo?.hoverText === opts.hoverText &&
94
- pointer.eventInfo?.showFeedback === opts.showFeedback &&
95
- pointer.eventInfo?.showHighlight === opts.showHighlight &&
96
- pointer.eventInfo?.maxDistance === opts.maxDistance &&
97
- pointer.eventInfo?.maxPlayerDistance === opts.maxPlayerDistance &&
98
- pointer.eventInfo?.priority === opts.priority &&
99
- pointer.eventInfo?.maxCameraDistance === opts.maxCameraDistance);
100
- if (index === -1)
101
- return;
102
- pointerEvent.pointerEvents.splice(index, 1);
79
+ pointerEvent.pointerEvents = pointerEvent.pointerEvents.filter((pointer) => !(pointer.eventInfo?.button === button &&
80
+ pointer.eventType === type &&
81
+ pointer.interactionType === interactionType));
103
82
  }
104
83
  function getPointerEvent(eventType) {
105
84
  if (eventType === EventType.Up) {
@@ -117,20 +96,24 @@ function createPointerEventsSystem(engine, inputSystem) {
117
96
  else if (eventType === EventType.ProximityLeave) {
118
97
  return 5 /* PointerEventType.PET_PROXIMITY_LEAVE */;
119
98
  }
99
+ else if (eventType === EventType.Drag) {
100
+ return 7 /* PointerEventType.PET_DRAG */;
101
+ }
102
+ else if (eventType === EventType.DragLocked) {
103
+ return 6 /* PointerEventType.PET_DRAG_LOCKED */;
104
+ }
105
+ else if (eventType === EventType.DragEnd) {
106
+ return 8 /* PointerEventType.PET_DRAG_END */;
107
+ }
120
108
  return 1 /* PointerEventType.PET_DOWN */;
121
109
  }
122
110
  function removeEvent(entity, type, interactionType = 0 /* InteractionType.CURSOR */) {
123
111
  const event = getEvent(entity);
124
- const key = eventKey(type, interactionType);
125
- const pointerEvent = event.get(key);
126
- // Every registration adds an entry, not only the ones carrying a hoverText,
127
- // so every removal has to take one away. Gating on hoverText left the
128
- // renderer showing an interaction whose callback was already gone, and made
129
- // re-registering grow the component by one entry each time.
130
- if (pointerEvent) {
131
- removePointerEvent(entity, getPointerEvent(type), pointerEvent.opts, interactionType);
112
+ const pointerEvent = event.get(type);
113
+ if (pointerEvent?.opts.hoverText) {
114
+ removePointerEvent(entity, getPointerEvent(type), pointerEvent.opts.button);
132
115
  }
133
- event.delete(key);
116
+ event.delete(type);
134
117
  }
135
118
  engine.addSystem(function PointerEventSystem() {
136
119
  for (const [entity, event] of eventsMap) {
@@ -138,7 +121,7 @@ function createPointerEventsSystem(engine, inputSystem) {
138
121
  eventsMap.delete(entity);
139
122
  continue;
140
123
  }
141
- for (const [, { cb, opts, eventType }] of event) {
124
+ for (const [eventType, { cb, opts }] of event) {
142
125
  if (eventType === EventType.Click) {
143
126
  const command = inputSystem.getClick(opts.button, entity);
144
127
  if (command)
@@ -149,7 +132,10 @@ function createPointerEventsSystem(engine, inputSystem) {
149
132
  eventType === EventType.HoverEnter ||
150
133
  eventType === EventType.HoverLeave ||
151
134
  eventType === EventType.ProximityEnter ||
152
- eventType === EventType.ProximityLeave) {
135
+ eventType === EventType.ProximityLeave ||
136
+ eventType === EventType.Drag ||
137
+ eventType === EventType.DragLocked ||
138
+ eventType === EventType.DragEnd) {
153
139
  const command = inputSystem.getInputCommand(opts.button, getPointerEvent(eventType), entity);
154
140
  if (command) {
155
141
  (0, invariant_1.checkNotThenable)(cb(command), 'Event handler returned a thenable. Only synchronous functions are allowed');
@@ -166,7 +152,7 @@ function createPointerEventsSystem(engine, inputSystem) {
166
152
  const { entity, opts } = data;
167
153
  const options = (0, exports.getDefaultOpts)(opts);
168
154
  removeEvent(entity, EventType.Down);
169
- setEvent(entity, EventType.Down, cb, options);
155
+ getEvent(entity).set(EventType.Down, { cb, opts: options });
170
156
  setPointerEvent(entity, 1 /* PointerEventType.PET_DOWN */, options);
171
157
  };
172
158
  const onPointerUp = (...args) => {
@@ -177,7 +163,7 @@ function createPointerEventsSystem(engine, inputSystem) {
177
163
  const { entity, opts } = data;
178
164
  const options = (0, exports.getDefaultOpts)(opts);
179
165
  removeEvent(entity, EventType.Up);
180
- setEvent(entity, EventType.Up, cb, options);
166
+ getEvent(entity).set(EventType.Up, { cb, opts: options });
181
167
  setPointerEvent(entity, 0 /* PointerEventType.PET_UP */, options);
182
168
  };
183
169
  const onPointerHoverEnter = (...args) => {
@@ -185,7 +171,7 @@ function createPointerEventsSystem(engine, inputSystem) {
185
171
  const { entity, opts } = data;
186
172
  const options = (0, exports.getDefaultOpts)(opts);
187
173
  removeEvent(entity, EventType.HoverEnter);
188
- setEvent(entity, EventType.HoverEnter, cb, options);
174
+ getEvent(entity).set(EventType.HoverEnter, { cb, opts: options });
189
175
  setPointerEvent(entity, 2 /* PointerEventType.PET_HOVER_ENTER */, options);
190
176
  };
191
177
  const onPointerHoverLeave = (...args) => {
@@ -193,15 +179,39 @@ function createPointerEventsSystem(engine, inputSystem) {
193
179
  const { entity, opts } = data;
194
180
  const options = (0, exports.getDefaultOpts)(opts);
195
181
  removeEvent(entity, EventType.HoverLeave);
196
- setEvent(entity, EventType.HoverLeave, cb, options);
182
+ getEvent(entity).set(EventType.HoverLeave, { cb, opts: options });
197
183
  setPointerEvent(entity, 3 /* PointerEventType.PET_HOVER_LEAVE */, options);
198
184
  };
185
+ const onPointerDrag = (...args) => {
186
+ const [data, cb] = args;
187
+ const { entity, opts } = data;
188
+ const options = (0, exports.getDefaultOpts)(opts);
189
+ removeEvent(entity, EventType.Drag);
190
+ getEvent(entity).set(EventType.Drag, { cb, opts: options });
191
+ setPointerEvent(entity, 7 /* PointerEventType.PET_DRAG */, options);
192
+ };
193
+ const onPointerDragLocked = (...args) => {
194
+ const [data, cb] = args;
195
+ const { entity, opts } = data;
196
+ const options = (0, exports.getDefaultOpts)(opts);
197
+ removeEvent(entity, EventType.DragLocked);
198
+ getEvent(entity).set(EventType.DragLocked, { cb, opts: options });
199
+ setPointerEvent(entity, 6 /* PointerEventType.PET_DRAG_LOCKED */, options);
200
+ };
201
+ const onPointerDragEnd = (...args) => {
202
+ const [data, cb] = args;
203
+ const { entity, opts } = data;
204
+ const options = (0, exports.getDefaultOpts)(opts);
205
+ removeEvent(entity, EventType.DragEnd);
206
+ getEvent(entity).set(EventType.DragEnd, { cb, opts: options });
207
+ setPointerEvent(entity, 8 /* PointerEventType.PET_DRAG_END */, options);
208
+ };
199
209
  const onProximityDown = (...args) => {
200
210
  const [data, cb] = args;
201
211
  const { entity, opts } = data;
202
212
  const options = (0, exports.getDefaultOpts)(opts);
203
213
  removeEvent(entity, EventType.Down, 1 /* InteractionType.PROXIMITY */);
204
- setEvent(entity, EventType.Down, cb, options, 1 /* InteractionType.PROXIMITY */);
214
+ getEvent(entity).set(EventType.Down, { cb, opts: options });
205
215
  setPointerEvent(entity, 1 /* PointerEventType.PET_DOWN */, options, 1 /* InteractionType.PROXIMITY */);
206
216
  };
207
217
  const onProximityUp = (...args) => {
@@ -209,7 +219,7 @@ function createPointerEventsSystem(engine, inputSystem) {
209
219
  const { entity, opts } = data;
210
220
  const options = (0, exports.getDefaultOpts)(opts);
211
221
  removeEvent(entity, EventType.Up, 1 /* InteractionType.PROXIMITY */);
212
- setEvent(entity, EventType.Up, cb, options, 1 /* InteractionType.PROXIMITY */);
222
+ getEvent(entity).set(EventType.Up, { cb, opts: options });
213
223
  setPointerEvent(entity, 0 /* PointerEventType.PET_UP */, options, 1 /* InteractionType.PROXIMITY */);
214
224
  };
215
225
  const onProximityEnter = (...args) => {
@@ -217,7 +227,7 @@ function createPointerEventsSystem(engine, inputSystem) {
217
227
  const { entity, opts } = data;
218
228
  const options = (0, exports.getDefaultOpts)(opts);
219
229
  removeEvent(entity, EventType.ProximityEnter, 1 /* InteractionType.PROXIMITY */);
220
- setEvent(entity, EventType.ProximityEnter, cb, options, 1 /* InteractionType.PROXIMITY */);
230
+ getEvent(entity).set(EventType.ProximityEnter, { cb, opts: options });
221
231
  setPointerEvent(entity, 4 /* PointerEventType.PET_PROXIMITY_ENTER */, options, 1 /* InteractionType.PROXIMITY */);
222
232
  };
223
233
  const onProximityLeave = (...args) => {
@@ -225,7 +235,7 @@ function createPointerEventsSystem(engine, inputSystem) {
225
235
  const { entity, opts } = data;
226
236
  const options = (0, exports.getDefaultOpts)(opts);
227
237
  removeEvent(entity, EventType.ProximityLeave, 1 /* InteractionType.PROXIMITY */);
228
- setEvent(entity, EventType.ProximityLeave, cb, options, 1 /* InteractionType.PROXIMITY */);
238
+ getEvent(entity).set(EventType.ProximityLeave, { cb, opts: options });
229
239
  setPointerEvent(entity, 5 /* PointerEventType.PET_PROXIMITY_LEAVE */, options, 1 /* InteractionType.PROXIMITY */);
230
240
  };
231
241
  return {
@@ -244,6 +254,15 @@ function createPointerEventsSystem(engine, inputSystem) {
244
254
  removeOnPointerHoverLeave(entity) {
245
255
  removeEvent(entity, EventType.HoverLeave);
246
256
  },
257
+ removeOnPointerDrag(entity) {
258
+ removeEvent(entity, EventType.Drag);
259
+ },
260
+ removeOnPointerDragLocked(entity) {
261
+ removeEvent(entity, EventType.DragLocked);
262
+ },
263
+ removeOnPointerDragEnd(entity) {
264
+ removeEvent(entity, EventType.DragEnd);
265
+ },
247
266
  removeOnProximityDown(entity) {
248
267
  removeEvent(entity, EventType.Down, 1 /* InteractionType.PROXIMITY */);
249
268
  },
@@ -262,13 +281,16 @@ function createPointerEventsSystem(engine, inputSystem) {
262
281
  // Clear previous event with over feedback included
263
282
  removeEvent(entity, EventType.Click);
264
283
  // Set new event
265
- setEvent(entity, EventType.Click, cb, options);
284
+ getEvent(entity).set(EventType.Click, { cb, opts: options });
266
285
  setPointerEvent(entity, 1 /* PointerEventType.PET_DOWN */, options);
267
286
  },
268
287
  onPointerDown,
269
288
  onPointerUp,
270
289
  onPointerHoverEnter,
271
290
  onPointerHoverLeave,
291
+ onPointerDrag,
292
+ onPointerDragLocked,
293
+ onPointerDragEnd,
272
294
  onProximityDown,
273
295
  onProximityUp,
274
296
  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;
@@ -38,7 +38,9 @@ function createRaycastSystem(engine) {
38
38
  queryType: 0 /* RaycastQueryType.RQT_HIT_FIRST */,
39
39
  continuous: false,
40
40
  originOffset: { x: 0, y: 0, z: 0 },
41
- collisionMask: 2 /* ColliderLayer.CL_PHYSICS */
41
+ collisionMask: 2 /* ColliderLayer.CL_PHYSICS */,
42
+ shape: 0 /* RaycastShape.RS_RAY */,
43
+ includeWorld: false
42
44
  };
43
45
  const getLocalDirectionRaycastDefaultOptions = (options = {}) => ({
44
46
  ...defaultOptions,
@@ -84,6 +86,8 @@ function createRaycastSystem(engine) {
84
86
  raycast.direction = raycastValue.directionRawValue;
85
87
  raycast.continuous = raycastValue.continuous;
86
88
  raycast.queryType = raycastValue.queryType;
89
+ raycast.shape = raycastValue.shape;
90
+ raycast.includeWorld = raycastValue.includeWorld;
87
91
  entitiesCallbackResultMap.set(entity, { callback: callback });
88
92
  };
89
93
  nextTickRaycasts.push(onNextTick);
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@dcl/ecs",
3
3
  "description": "Decentraland ECS",
4
- "version": "7.29.1-35862852104.commit-1f44e80",
4
+ "version": "7.29.1-35901015152.commit-d1b7b96",
5
5
  "author": "DCL",
6
6
  "bugs": "https://github.com/decentraland/ecs/issues",
7
7
  "files": [
@@ -34,5 +34,5 @@
34
34
  "dependencies": {},
35
35
  "types": "./dist/index.d.ts",
36
36
  "typings": "./dist/index.d.ts",
37
- "commit": "1f44e80aec8fa365230f39956a8f6526011c6bd5"
37
+ "commit": "d1b7b964cd184465c1b65118e47b5dc6be68a184"
38
38
  }
@@ -1,9 +0,0 @@
1
- import { IEngine, LastWriteWinElementSetComponentDefinition } from '../../engine/types';
2
- export interface ICreatedByType {
3
- address: string;
4
- }
5
- export type ICreatedBy = LastWriteWinElementSetComponentDefinition<ICreatedByType>;
6
- declare function defineCreatedBy(engine: Pick<IEngine, 'defineComponent'>): import("../../engine/types").MapComponentDefinition<import("../..").MapResult<{
7
- address: import("../../schemas").ISchema<string>;
8
- }>>;
9
- export default defineCreatedBy;
@@ -1,8 +0,0 @@
1
- import { Schemas } from '../../schemas';
2
- function defineCreatedBy(engine) {
3
- const CreatedBy = engine.defineComponent('core-schema::Created-By', {
4
- address: Schemas.String
5
- });
6
- return CreatedBy;
7
- }
8
- export default defineCreatedBy;
@@ -1,15 +0,0 @@
1
- import { Entity } from '../../engine/entity';
2
- import { ByteBuffer } from '../ByteBuffer';
3
- import { AuthoritativePutComponentMessage } from './types';
4
- /**
5
- * @public
6
- */
7
- export declare namespace AuthoritativePutComponentOperation {
8
- const MESSAGE_HEADER_LENGTH = 16;
9
- /**
10
- * Call this function for an optimal writing data passing the ByteBuffer
11
- * already allocated
12
- */
13
- function write(entity: Entity, timestamp: number, componentId: number, data: Uint8Array, buf: ByteBuffer): void;
14
- function read(buf: ByteBuffer): AuthoritativePutComponentMessage | null;
15
- }
@@ -1,47 +0,0 @@
1
- import { CrdtMessageProtocol } from './crdtMessageProtocol';
2
- import { CrdtMessageType, CRDT_MESSAGE_HEADER_LENGTH } from './types';
3
- /**
4
- * @public
5
- */
6
- export var AuthoritativePutComponentOperation;
7
- (function (AuthoritativePutComponentOperation) {
8
- AuthoritativePutComponentOperation.MESSAGE_HEADER_LENGTH = 16;
9
- /**
10
- * Call this function for an optimal writing data passing the ByteBuffer
11
- * already allocated
12
- */
13
- function write(entity, timestamp, componentId, data, buf) {
14
- // reserve the beginning
15
- const startMessageOffset = buf.incrementWriteOffset(CRDT_MESSAGE_HEADER_LENGTH + AuthoritativePutComponentOperation.MESSAGE_HEADER_LENGTH);
16
- // write body
17
- buf.writeBuffer(data, false);
18
- const messageLength = buf.currentWriteOffset() - startMessageOffset;
19
- // Write CrdtMessage header
20
- buf.setUint32(startMessageOffset, messageLength);
21
- buf.setUint32(startMessageOffset + 4, CrdtMessageType.AUTHORITATIVE_PUT_COMPONENT);
22
- // Write ComponentOperation header
23
- buf.setUint32(startMessageOffset + 8, entity);
24
- buf.setUint32(startMessageOffset + 12, componentId);
25
- buf.setUint32(startMessageOffset + 16, timestamp);
26
- const newLocal = messageLength - AuthoritativePutComponentOperation.MESSAGE_HEADER_LENGTH - CRDT_MESSAGE_HEADER_LENGTH;
27
- buf.setUint32(startMessageOffset + 20, newLocal);
28
- }
29
- AuthoritativePutComponentOperation.write = write;
30
- function read(buf) {
31
- const header = CrdtMessageProtocol.readHeader(buf);
32
- if (!header) {
33
- return null;
34
- }
35
- if (header.type !== CrdtMessageType.AUTHORITATIVE_PUT_COMPONENT) {
36
- throw new Error('AuthoritativePutComponentOperation tried to read another message type.');
37
- }
38
- return {
39
- ...header,
40
- entityId: buf.readUint32(),
41
- componentId: buf.readUint32(),
42
- timestamp: buf.readUint32(),
43
- data: buf.readBuffer()
44
- };
45
- }
46
- AuthoritativePutComponentOperation.read = read;
47
- })(AuthoritativePutComponentOperation || (AuthoritativePutComponentOperation = {}));
@@ -1,9 +0,0 @@
1
- import { IEngine, LastWriteWinElementSetComponentDefinition } from '../../engine/types';
2
- export interface ICreatedByType {
3
- address: string;
4
- }
5
- export type ICreatedBy = LastWriteWinElementSetComponentDefinition<ICreatedByType>;
6
- declare function defineCreatedBy(engine: Pick<IEngine, 'defineComponent'>): import("../../engine/types").MapComponentDefinition<import("../..").MapResult<{
7
- address: import("../../schemas").ISchema<string>;
8
- }>>;
9
- export default defineCreatedBy;
@@ -1,10 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const schemas_1 = require("../../schemas");
4
- function defineCreatedBy(engine) {
5
- const CreatedBy = engine.defineComponent('core-schema::Created-By', {
6
- address: schemas_1.Schemas.String
7
- });
8
- return CreatedBy;
9
- }
10
- exports.default = defineCreatedBy;
@@ -1,15 +0,0 @@
1
- import { Entity } from '../../engine/entity';
2
- import { ByteBuffer } from '../ByteBuffer';
3
- import { AuthoritativePutComponentMessage } from './types';
4
- /**
5
- * @public
6
- */
7
- export declare namespace AuthoritativePutComponentOperation {
8
- const MESSAGE_HEADER_LENGTH = 16;
9
- /**
10
- * Call this function for an optimal writing data passing the ByteBuffer
11
- * already allocated
12
- */
13
- function write(entity: Entity, timestamp: number, componentId: number, data: Uint8Array, buf: ByteBuffer): void;
14
- function read(buf: ByteBuffer): AuthoritativePutComponentMessage | null;
15
- }
@@ -1,50 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.AuthoritativePutComponentOperation = void 0;
4
- const crdtMessageProtocol_1 = require("./crdtMessageProtocol");
5
- const types_1 = require("./types");
6
- /**
7
- * @public
8
- */
9
- var AuthoritativePutComponentOperation;
10
- (function (AuthoritativePutComponentOperation) {
11
- AuthoritativePutComponentOperation.MESSAGE_HEADER_LENGTH = 16;
12
- /**
13
- * Call this function for an optimal writing data passing the ByteBuffer
14
- * already allocated
15
- */
16
- function write(entity, timestamp, componentId, data, buf) {
17
- // reserve the beginning
18
- const startMessageOffset = buf.incrementWriteOffset(types_1.CRDT_MESSAGE_HEADER_LENGTH + AuthoritativePutComponentOperation.MESSAGE_HEADER_LENGTH);
19
- // write body
20
- buf.writeBuffer(data, false);
21
- const messageLength = buf.currentWriteOffset() - startMessageOffset;
22
- // Write CrdtMessage header
23
- buf.setUint32(startMessageOffset, messageLength);
24
- buf.setUint32(startMessageOffset + 4, types_1.CrdtMessageType.AUTHORITATIVE_PUT_COMPONENT);
25
- // Write ComponentOperation header
26
- buf.setUint32(startMessageOffset + 8, entity);
27
- buf.setUint32(startMessageOffset + 12, componentId);
28
- buf.setUint32(startMessageOffset + 16, timestamp);
29
- const newLocal = messageLength - AuthoritativePutComponentOperation.MESSAGE_HEADER_LENGTH - types_1.CRDT_MESSAGE_HEADER_LENGTH;
30
- buf.setUint32(startMessageOffset + 20, newLocal);
31
- }
32
- AuthoritativePutComponentOperation.write = write;
33
- function read(buf) {
34
- const header = crdtMessageProtocol_1.CrdtMessageProtocol.readHeader(buf);
35
- if (!header) {
36
- return null;
37
- }
38
- if (header.type !== types_1.CrdtMessageType.AUTHORITATIVE_PUT_COMPONENT) {
39
- throw new Error('AuthoritativePutComponentOperation tried to read another message type.');
40
- }
41
- return {
42
- ...header,
43
- entityId: buf.readUint32(),
44
- componentId: buf.readUint32(),
45
- timestamp: buf.readUint32(),
46
- data: buf.readBuffer()
47
- };
48
- }
49
- AuthoritativePutComponentOperation.read = read;
50
- })(AuthoritativePutComponentOperation = exports.AuthoritativePutComponentOperation || (exports.AuthoritativePutComponentOperation = {}));