@dcl/ecs 7.29.1-35901015152.commit-d1b7b96 → 7.29.1-35917671376.commit-046b268

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 (223) hide show
  1. package/dist/components/extended/MeshCollider.d.ts +0 -9
  2. package/dist/components/extended/MeshCollider.js +0 -6
  3. package/dist/components/extended/MeshRenderer.d.ts +0 -8
  4. package/dist/components/extended/MeshRenderer.js +0 -5
  5. package/dist/components/generated/ExplorerItemPurchaseResult.gen.js +25 -0
  6. package/dist/components/generated/component-names.gen.js +1 -10
  7. package/dist/components/generated/global.gen.d.ts +6 -20
  8. package/dist/components/generated/global.gen.js +3 -10
  9. package/dist/components/generated/index.gen.d.ts +4 -40
  10. package/dist/components/generated/index.gen.js +7 -50
  11. package/dist/components/generated/pb/decentraland/common/texture.gen.d.ts +0 -20
  12. package/dist/components/generated/pb/decentraland/common/texture.gen.js +0 -65
  13. package/dist/components/generated/pb/decentraland/sdk/components/avatar_base.gen.d.ts +0 -2
  14. package/dist/components/generated/pb/decentraland/sdk/components/avatar_base.gen.js +1 -17
  15. package/dist/components/generated/pb/decentraland/sdk/components/avatar_equipped_data.gen.d.ts +0 -2
  16. package/dist/components/generated/pb/decentraland/sdk/components/avatar_equipped_data.gen.js +1 -10
  17. package/dist/components/generated/pb/decentraland/sdk/components/avatar_modifier_area.gen.d.ts +0 -2
  18. package/dist/components/generated/pb/decentraland/sdk/components/avatar_modifier_area.gen.js +1 -10
  19. package/dist/components/generated/pb/decentraland/sdk/components/avatar_shape.gen.d.ts +0 -2
  20. package/dist/components/generated/pb/decentraland/sdk/components/avatar_shape.gen.js +0 -10
  21. package/dist/components/generated/pb/decentraland/sdk/components/camera_mode_area.gen.d.ts +0 -2
  22. package/dist/components/generated/pb/decentraland/sdk/components/camera_mode_area.gen.js +1 -10
  23. package/dist/components/generated/pb/decentraland/sdk/components/common/explorer_ui.gen.d.ts +4 -2
  24. package/dist/components/generated/pb/decentraland/sdk/components/common/explorer_ui.gen.js +3 -1
  25. package/dist/components/generated/pb/decentraland/sdk/components/common/input_action.gen.d.ts +1 -4
  26. package/dist/components/generated/pb/decentraland/sdk/components/common/input_action.gen.js +0 -3
  27. package/dist/components/generated/pb/decentraland/sdk/components/explorer_item_purchase_result.gen.d.ts +68 -0
  28. package/dist/components/generated/pb/decentraland/sdk/components/explorer_item_purchase_result.gen.js +184 -0
  29. package/dist/components/generated/pb/decentraland/sdk/components/explorer_ui_events_result.gen.d.ts +8 -3
  30. package/dist/components/generated/pb/decentraland/sdk/components/explorer_ui_events_result.gen.js +10 -1
  31. package/dist/components/generated/pb/decentraland/sdk/components/gltf_container_loading_state.gen.d.ts +0 -19
  32. package/dist/components/generated/pb/decentraland/sdk/components/gltf_container_loading_state.gen.js +1 -46
  33. package/dist/components/generated/pb/decentraland/sdk/components/material.gen.d.ts +0 -22
  34. package/dist/components/generated/pb/decentraland/sdk/components/material.gen.js +1 -57
  35. package/dist/components/generated/pb/decentraland/sdk/components/mesh_collider.gen.d.ts +0 -20
  36. package/dist/components/generated/pb/decentraland/sdk/components/mesh_collider.gen.js +0 -56
  37. package/dist/components/generated/pb/decentraland/sdk/components/mesh_renderer.gen.d.ts +3 -21
  38. package/dist/components/generated/pb/decentraland/sdk/components/mesh_renderer.gen.js +0 -56
  39. package/dist/components/generated/pb/decentraland/sdk/components/primary_pointer_info.gen.d.ts +2 -8
  40. package/dist/components/generated/pb/decentraland/sdk/components/primary_pointer_info.gen.js +0 -3
  41. package/dist/components/generated/pb/decentraland/sdk/components/raycast.gen.d.ts +0 -13
  42. package/dist/components/generated/pb/decentraland/sdk/components/raycast.gen.js +0 -30
  43. package/dist/components/generated/pb/decentraland/sdk/components/text_shape.gen.d.ts +0 -2
  44. package/dist/components/generated/pb/decentraland/sdk/components/text_shape.gen.js +0 -10
  45. package/dist/components/generated/pb/decentraland/sdk/components/ui_dropdown.gen.d.ts +0 -2
  46. package/dist/components/generated/pb/decentraland/sdk/components/ui_dropdown.gen.js +0 -10
  47. package/dist/components/generated/pb/decentraland/sdk/components/ui_input.gen.d.ts +0 -6
  48. package/dist/components/generated/pb/decentraland/sdk/components/ui_input.gen.js +0 -30
  49. package/dist/components/generated/pb/decentraland/sdk/components/ui_text.gen.d.ts +0 -2
  50. package/dist/components/generated/pb/decentraland/sdk/components/ui_text.gen.js +0 -10
  51. package/dist/components/generated/pb/decentraland/sdk/components/ui_transform.gen.d.ts +0 -35
  52. package/dist/components/generated/pb/decentraland/sdk/components/ui_transform.gen.js +0 -90
  53. package/dist/components/index.d.ts +0 -4
  54. package/dist/components/index.js +0 -6
  55. package/dist/components/types.d.ts +0 -2
  56. package/dist/engine/input.js +8 -8
  57. package/dist/engine/lww-element-set-component-definition.js +20 -14
  58. package/dist/engine/readonly.d.ts +1 -1
  59. package/dist/engine/readonly.js +10 -0
  60. package/dist/index.d.ts +1 -3
  61. package/dist/index.js +0 -3
  62. package/dist/schemas/OneOf.js +13 -1
  63. package/dist/systems/cyclicParentingChecker.js +9 -4
  64. package/dist/systems/events.d.ts +0 -48
  65. package/dist/systems/events.js +48 -70
  66. package/dist/systems/raycast.d.ts +1 -5
  67. package/dist/systems/raycast.js +1 -5
  68. package/dist-cjs/components/extended/MeshCollider.d.ts +0 -9
  69. package/dist-cjs/components/extended/MeshCollider.js +0 -6
  70. package/dist-cjs/components/extended/MeshRenderer.d.ts +0 -8
  71. package/dist-cjs/components/extended/MeshRenderer.js +0 -5
  72. package/dist-cjs/components/generated/ExplorerItemPurchaseResult.gen.js +28 -0
  73. package/dist-cjs/components/generated/component-names.gen.js +1 -10
  74. package/dist-cjs/components/generated/global.gen.d.ts +6 -20
  75. package/dist-cjs/components/generated/global.gen.js +5 -12
  76. package/dist-cjs/components/generated/index.gen.d.ts +4 -40
  77. package/dist-cjs/components/generated/index.gen.js +10 -62
  78. package/dist-cjs/components/generated/pb/decentraland/common/texture.gen.d.ts +0 -20
  79. package/dist-cjs/components/generated/pb/decentraland/common/texture.gen.js +1 -66
  80. package/dist-cjs/components/generated/pb/decentraland/sdk/components/avatar_base.gen.d.ts +0 -2
  81. package/dist-cjs/components/generated/pb/decentraland/sdk/components/avatar_base.gen.js +1 -17
  82. package/dist-cjs/components/generated/pb/decentraland/sdk/components/avatar_equipped_data.gen.d.ts +0 -2
  83. package/dist-cjs/components/generated/pb/decentraland/sdk/components/avatar_equipped_data.gen.js +1 -10
  84. package/dist-cjs/components/generated/pb/decentraland/sdk/components/avatar_modifier_area.gen.d.ts +0 -2
  85. package/dist-cjs/components/generated/pb/decentraland/sdk/components/avatar_modifier_area.gen.js +1 -10
  86. package/dist-cjs/components/generated/pb/decentraland/sdk/components/avatar_shape.gen.d.ts +0 -2
  87. package/dist-cjs/components/generated/pb/decentraland/sdk/components/avatar_shape.gen.js +0 -10
  88. package/dist-cjs/components/generated/pb/decentraland/sdk/components/camera_mode_area.gen.d.ts +0 -2
  89. package/dist-cjs/components/generated/pb/decentraland/sdk/components/camera_mode_area.gen.js +1 -10
  90. package/dist-cjs/components/generated/pb/decentraland/sdk/components/common/explorer_ui.gen.d.ts +4 -2
  91. package/dist-cjs/components/generated/pb/decentraland/sdk/components/common/explorer_ui.gen.js +3 -1
  92. package/dist-cjs/components/generated/pb/decentraland/sdk/components/common/input_action.gen.d.ts +1 -4
  93. package/dist-cjs/components/generated/pb/decentraland/sdk/components/common/input_action.gen.js +0 -3
  94. package/dist-cjs/components/generated/pb/decentraland/sdk/components/explorer_item_purchase_result.gen.d.ts +68 -0
  95. package/dist-cjs/components/generated/pb/decentraland/sdk/components/explorer_item_purchase_result.gen.js +190 -0
  96. package/dist-cjs/components/generated/pb/decentraland/sdk/components/explorer_ui_events_result.gen.d.ts +8 -3
  97. package/dist-cjs/components/generated/pb/decentraland/sdk/components/explorer_ui_events_result.gen.js +10 -1
  98. package/dist-cjs/components/generated/pb/decentraland/sdk/components/gltf_container_loading_state.gen.d.ts +0 -19
  99. package/dist-cjs/components/generated/pb/decentraland/sdk/components/gltf_container_loading_state.gen.js +1 -46
  100. package/dist-cjs/components/generated/pb/decentraland/sdk/components/material.gen.d.ts +0 -22
  101. package/dist-cjs/components/generated/pb/decentraland/sdk/components/material.gen.js +2 -58
  102. package/dist-cjs/components/generated/pb/decentraland/sdk/components/mesh_collider.gen.d.ts +0 -20
  103. package/dist-cjs/components/generated/pb/decentraland/sdk/components/mesh_collider.gen.js +1 -57
  104. package/dist-cjs/components/generated/pb/decentraland/sdk/components/mesh_renderer.gen.d.ts +3 -21
  105. package/dist-cjs/components/generated/pb/decentraland/sdk/components/mesh_renderer.gen.js +1 -57
  106. package/dist-cjs/components/generated/pb/decentraland/sdk/components/primary_pointer_info.gen.d.ts +2 -8
  107. package/dist-cjs/components/generated/pb/decentraland/sdk/components/primary_pointer_info.gen.js +0 -3
  108. package/dist-cjs/components/generated/pb/decentraland/sdk/components/raycast.gen.d.ts +0 -13
  109. package/dist-cjs/components/generated/pb/decentraland/sdk/components/raycast.gen.js +1 -31
  110. package/dist-cjs/components/generated/pb/decentraland/sdk/components/text_shape.gen.d.ts +0 -2
  111. package/dist-cjs/components/generated/pb/decentraland/sdk/components/text_shape.gen.js +0 -10
  112. package/dist-cjs/components/generated/pb/decentraland/sdk/components/ui_dropdown.gen.d.ts +0 -2
  113. package/dist-cjs/components/generated/pb/decentraland/sdk/components/ui_dropdown.gen.js +0 -10
  114. package/dist-cjs/components/generated/pb/decentraland/sdk/components/ui_input.gen.d.ts +0 -6
  115. package/dist-cjs/components/generated/pb/decentraland/sdk/components/ui_input.gen.js +0 -30
  116. package/dist-cjs/components/generated/pb/decentraland/sdk/components/ui_text.gen.d.ts +0 -2
  117. package/dist-cjs/components/generated/pb/decentraland/sdk/components/ui_text.gen.js +0 -10
  118. package/dist-cjs/components/generated/pb/decentraland/sdk/components/ui_transform.gen.d.ts +0 -35
  119. package/dist-cjs/components/generated/pb/decentraland/sdk/components/ui_transform.gen.js +1 -91
  120. package/dist-cjs/components/index.d.ts +0 -4
  121. package/dist-cjs/components/index.js +1 -9
  122. package/dist-cjs/components/types.d.ts +0 -2
  123. package/dist-cjs/engine/input.js +8 -8
  124. package/dist-cjs/engine/lww-element-set-component-definition.js +20 -14
  125. package/dist-cjs/engine/readonly.d.ts +1 -1
  126. package/dist-cjs/engine/readonly.js +10 -0
  127. package/dist-cjs/index.d.ts +1 -3
  128. package/dist-cjs/index.js +1 -4
  129. package/dist-cjs/schemas/OneOf.js +13 -1
  130. package/dist-cjs/systems/cyclicParentingChecker.js +9 -4
  131. package/dist-cjs/systems/events.d.ts +0 -48
  132. package/dist-cjs/systems/events.js +48 -70
  133. package/dist-cjs/systems/raycast.d.ts +1 -5
  134. package/dist-cjs/systems/raycast.js +1 -5
  135. package/package.json +2 -2
  136. package/dist/components/extended/AvatarEquippedData.d.ts +0 -15
  137. package/dist/components/extended/AvatarEquippedData.js +0 -10
  138. package/dist/components/extended/AvatarShape.d.ts +0 -15
  139. package/dist/components/extended/AvatarShape.js +0 -10
  140. package/dist/components/generated/AvatarMovement.gen.d.ts +0 -1
  141. package/dist/components/generated/AvatarMovement.gen.js +0 -25
  142. package/dist/components/generated/AvatarMovementInfo.gen.d.ts +0 -1
  143. package/dist/components/generated/AvatarMovementInfo.gen.js +0 -25
  144. package/dist/components/generated/CameraLayer.gen.d.ts +0 -1
  145. package/dist/components/generated/CameraLayer.gen.js +0 -25
  146. package/dist/components/generated/CameraLayers.gen.d.ts +0 -1
  147. package/dist/components/generated/CameraLayers.gen.js +0 -25
  148. package/dist/components/generated/GlobalLight.gen.d.ts +0 -1
  149. package/dist/components/generated/GlobalLight.gen.js +0 -25
  150. package/dist/components/generated/GltfNode.gen.d.ts +0 -1
  151. package/dist/components/generated/GltfNode.gen.js +0 -25
  152. package/dist/components/generated/GltfNodeState.gen.d.ts +0 -1
  153. package/dist/components/generated/GltfNodeState.gen.js +0 -25
  154. package/dist/components/generated/TextureCamera.gen.d.ts +0 -1
  155. package/dist/components/generated/TextureCamera.gen.js +0 -25
  156. package/dist/components/generated/UiCanvas.gen.d.ts +0 -1
  157. package/dist/components/generated/UiCanvas.gen.js +0 -25
  158. package/dist/components/generated/UiScrollResult.gen.d.ts +0 -1
  159. package/dist/components/generated/UiScrollResult.gen.js +0 -25
  160. package/dist/components/generated/pb/decentraland/sdk/components/avatar_movement.gen.d.ts +0 -57
  161. package/dist/components/generated/pb/decentraland/sdk/components/avatar_movement.gen.js +0 -204
  162. package/dist/components/generated/pb/decentraland/sdk/components/avatar_movement_info.gen.d.ts +0 -65
  163. package/dist/components/generated/pb/decentraland/sdk/components/avatar_movement_info.gen.js +0 -228
  164. package/dist/components/generated/pb/decentraland/sdk/components/camera_layer.gen.d.ts +0 -30
  165. package/dist/components/generated/pb/decentraland/sdk/components/camera_layer.gen.js +0 -104
  166. package/dist/components/generated/pb/decentraland/sdk/components/camera_layers.gen.d.ts +0 -14
  167. package/dist/components/generated/pb/decentraland/sdk/components/camera_layers.gen.js +0 -50
  168. package/dist/components/generated/pb/decentraland/sdk/components/global_light.gen.d.ts +0 -34
  169. package/dist/components/generated/pb/decentraland/sdk/components/global_light.gen.js +0 -61
  170. package/dist/components/generated/pb/decentraland/sdk/components/gltf_node.gen.d.ts +0 -50
  171. package/dist/components/generated/pb/decentraland/sdk/components/gltf_node.gen.js +0 -41
  172. package/dist/components/generated/pb/decentraland/sdk/components/gltf_node_state.gen.d.ts +0 -27
  173. package/dist/components/generated/pb/decentraland/sdk/components/gltf_node_state.gen.js +0 -59
  174. package/dist/components/generated/pb/decentraland/sdk/components/texture_camera.gen.d.ts +0 -74
  175. package/dist/components/generated/pb/decentraland/sdk/components/texture_camera.gen.js +0 -191
  176. package/dist/components/generated/pb/decentraland/sdk/components/ui_canvas.gen.d.ts +0 -19
  177. package/dist/components/generated/pb/decentraland/sdk/components/ui_canvas.gen.js +0 -60
  178. package/dist/components/generated/pb/decentraland/sdk/components/ui_scroll_result.gen.d.ts +0 -15
  179. package/dist/components/generated/pb/decentraland/sdk/components/ui_scroll_result.gen.js +0 -42
  180. package/dist-cjs/components/extended/AvatarEquippedData.d.ts +0 -15
  181. package/dist-cjs/components/extended/AvatarEquippedData.js +0 -14
  182. package/dist-cjs/components/extended/AvatarShape.d.ts +0 -15
  183. package/dist-cjs/components/extended/AvatarShape.js +0 -14
  184. package/dist-cjs/components/generated/AvatarMovement.gen.js +0 -28
  185. package/dist-cjs/components/generated/AvatarMovementInfo.gen.js +0 -28
  186. package/dist-cjs/components/generated/CameraLayer.gen.d.ts +0 -1
  187. package/dist-cjs/components/generated/CameraLayer.gen.js +0 -28
  188. package/dist-cjs/components/generated/CameraLayers.gen.d.ts +0 -1
  189. package/dist-cjs/components/generated/CameraLayers.gen.js +0 -28
  190. package/dist-cjs/components/generated/GlobalLight.gen.d.ts +0 -1
  191. package/dist-cjs/components/generated/GlobalLight.gen.js +0 -28
  192. package/dist-cjs/components/generated/GltfNode.gen.d.ts +0 -1
  193. package/dist-cjs/components/generated/GltfNode.gen.js +0 -28
  194. package/dist-cjs/components/generated/GltfNodeState.gen.d.ts +0 -1
  195. package/dist-cjs/components/generated/GltfNodeState.gen.js +0 -28
  196. package/dist-cjs/components/generated/TextureCamera.gen.d.ts +0 -1
  197. package/dist-cjs/components/generated/TextureCamera.gen.js +0 -28
  198. package/dist-cjs/components/generated/UiCanvas.gen.d.ts +0 -1
  199. package/dist-cjs/components/generated/UiCanvas.gen.js +0 -28
  200. package/dist-cjs/components/generated/UiScrollResult.gen.d.ts +0 -1
  201. package/dist-cjs/components/generated/UiScrollResult.gen.js +0 -28
  202. package/dist-cjs/components/generated/pb/decentraland/sdk/components/avatar_movement.gen.d.ts +0 -57
  203. package/dist-cjs/components/generated/pb/decentraland/sdk/components/avatar_movement.gen.js +0 -210
  204. package/dist-cjs/components/generated/pb/decentraland/sdk/components/avatar_movement_info.gen.d.ts +0 -65
  205. package/dist-cjs/components/generated/pb/decentraland/sdk/components/avatar_movement_info.gen.js +0 -234
  206. package/dist-cjs/components/generated/pb/decentraland/sdk/components/camera_layer.gen.d.ts +0 -30
  207. package/dist-cjs/components/generated/pb/decentraland/sdk/components/camera_layer.gen.js +0 -110
  208. package/dist-cjs/components/generated/pb/decentraland/sdk/components/camera_layers.gen.d.ts +0 -14
  209. package/dist-cjs/components/generated/pb/decentraland/sdk/components/camera_layers.gen.js +0 -56
  210. package/dist-cjs/components/generated/pb/decentraland/sdk/components/global_light.gen.d.ts +0 -34
  211. package/dist-cjs/components/generated/pb/decentraland/sdk/components/global_light.gen.js +0 -67
  212. package/dist-cjs/components/generated/pb/decentraland/sdk/components/gltf_node.gen.d.ts +0 -50
  213. package/dist-cjs/components/generated/pb/decentraland/sdk/components/gltf_node.gen.js +0 -47
  214. package/dist-cjs/components/generated/pb/decentraland/sdk/components/gltf_node_state.gen.d.ts +0 -27
  215. package/dist-cjs/components/generated/pb/decentraland/sdk/components/gltf_node_state.gen.js +0 -65
  216. package/dist-cjs/components/generated/pb/decentraland/sdk/components/texture_camera.gen.d.ts +0 -74
  217. package/dist-cjs/components/generated/pb/decentraland/sdk/components/texture_camera.gen.js +0 -197
  218. package/dist-cjs/components/generated/pb/decentraland/sdk/components/ui_canvas.gen.d.ts +0 -19
  219. package/dist-cjs/components/generated/pb/decentraland/sdk/components/ui_canvas.gen.js +0 -66
  220. package/dist-cjs/components/generated/pb/decentraland/sdk/components/ui_scroll_result.gen.d.ts +0 -15
  221. package/dist-cjs/components/generated/pb/decentraland/sdk/components/ui_scroll_result.gen.js +0 -48
  222. /package/{dist-cjs/components/generated/AvatarMovementInfo.gen.d.ts → dist/components/generated/ExplorerItemPurchaseResult.gen.d.ts} +0 -0
  223. /package/dist-cjs/components/generated/{AvatarMovement.gen.d.ts → ExplorerItemPurchaseResult.gen.d.ts} +0 -0
@@ -57,22 +57,22 @@ export function createInputSystem(engine) {
57
57
  const arrayCommands = Array.from(commands);
58
58
  for (let i = arrayCommands.length - 1; i >= 0; i--) {
59
59
  const command = arrayCommands[i];
60
+ // Commands are kept sorted by timestamp, so this one and every one
61
+ // below it belongs to a frame that was already accounted for. Stopping
62
+ // on the button state instead would end this entity's whole loop over
63
+ // a button another entity had already reported this frame.
64
+ if (command.timestamp <= globalState.previousFrameMaxTimestamp) {
65
+ break;
66
+ }
60
67
  if (command.timestamp > maxTimestamp) {
61
68
  maxTimestamp = command.timestamp;
62
69
  }
63
- if (command.timestamp > globalState.previousFrameMaxTimestamp) {
64
- globalState.thisFrameCommands.push(command);
65
- }
70
+ globalState.thisFrameCommands.push(command);
66
71
  if (command.state === 0 /* PointerEventType.PET_UP */ || command.state === 1 /* PointerEventType.PET_DOWN */) {
67
72
  const prevCommand = globalState.buttonState.get(command.button);
68
73
  if (!prevCommand || command.timestamp > prevCommand.timestamp) {
69
74
  globalState.buttonState.set(command.button, command);
70
75
  }
71
- else {
72
- // since we are iterating a descending array, we can early finish the
73
- // loop
74
- break;
75
- }
76
76
  }
77
77
  }
78
78
  }
@@ -201,12 +201,16 @@ export function createComponentDefinitionFromSchema(componentName, componentId,
201
201
  return data.has(entity);
202
202
  },
203
203
  deleteFrom(entity, markAsDirty = true) {
204
+ // Presence, not truthiness: a component defined from a primitive schema can
205
+ // legitimately hold 0, false or an empty string, and deleting one must still
206
+ // return the value that was there.
207
+ const had = data.has(entity);
204
208
  const component = data.get(entity);
205
209
  if (data.delete(entity) && markAsDirty) {
206
210
  dirtyIterator.add(entity);
207
211
  }
208
212
  lastSentData.delete(entity);
209
- return component || null;
213
+ return had ? component : null;
210
214
  },
211
215
  entityDeleted(entity, markAsDirty) {
212
216
  if (data.delete(entity) && markAsDirty) {
@@ -215,19 +219,20 @@ export function createComponentDefinitionFromSchema(componentName, componentId,
215
219
  lastSentData.delete(entity);
216
220
  },
217
221
  getOrNull(entity) {
218
- const component = data.get(entity);
219
- return component ? deepReadonly(component) : null;
222
+ // Presence, not truthiness: a component defined from a primitive schema
223
+ // can legitimately hold 0, false or an empty string.
224
+ if (!data.has(entity))
225
+ return null;
226
+ return deepReadonly(data.get(entity));
220
227
  },
221
228
  get(entity) {
222
- const component = data.get(entity);
223
- if (!component) {
229
+ if (!data.has(entity)) {
224
230
  throw new Error(`[getFrom] Component ${componentName} for entity #${entity} not found`);
225
231
  }
226
- return deepReadonly(component);
232
+ return deepReadonly(data.get(entity));
227
233
  },
228
234
  create(entity, value) {
229
- const component = data.get(entity);
230
- if (component) {
235
+ if (data.has(entity)) {
231
236
  throw new Error(`[create] Component ${componentName} for ${entity} already exists`);
232
237
  }
233
238
  const usedValue = value === undefined ? schema.create() : schema.extend ? schema.extend(value) : value;
@@ -243,21 +248,22 @@ export function createComponentDefinitionFromSchema(componentName, componentId,
243
248
  return usedValue;
244
249
  },
245
250
  getMutableOrNull(entity) {
246
- const component = data.get(entity);
247
- if (!component) {
251
+ // Presence, not truthiness, so a falsy primitive value is still mutable.
252
+ if (!data.has(entity)) {
248
253
  return null;
249
254
  }
250
255
  dirtyIterator.add(entity);
251
- return component;
256
+ return data.get(entity);
252
257
  },
253
258
  getOrCreateMutable(entity, value) {
254
- const component = data.get(entity);
255
- if (!component) {
259
+ // Presence, not truthiness: a stored 0/false/'' must not be treated as absent,
260
+ // which would send this through create() and throw "already exists".
261
+ if (!data.has(entity)) {
256
262
  return this.create(entity, value);
257
263
  }
258
264
  else {
259
265
  dirtyIterator.add(entity);
260
- return component;
266
+ return data.get(entity);
261
267
  }
262
268
  },
263
269
  getMutable(entity) {
@@ -16,7 +16,7 @@ export type DeepReadonlyObject<T> = {
16
16
  /**
17
17
  * @public
18
18
  */
19
- export type ReadonlyPrimitive = number | string | number[] | string[] | boolean | boolean[];
19
+ export type ReadonlyPrimitive = number | string | boolean;
20
20
  /**
21
21
  * @public
22
22
  */
@@ -2,5 +2,15 @@
2
2
  * @internal
3
3
  */
4
4
  export function deepReadonly(val) {
5
+ // A component can be defined straight from a primitive or array schema, not
6
+ // only from a Map, which is why this is no longer constrained to an object.
7
+ // Spreading those threw the value away: a number came back as {}, an array
8
+ // as an object keyed by index.
9
+ if (val === null || typeof val !== 'object') {
10
+ return val;
11
+ }
12
+ if (Array.isArray(val)) {
13
+ return Object.freeze([...val]);
14
+ }
5
15
  return Object.freeze({ ...val });
6
16
  }
package/dist/index.d.ts CHANGED
@@ -16,7 +16,7 @@ export * from './systems/triggerArea';
16
16
  export * from './systems/physics';
17
17
  export * from './engine/entity';
18
18
  export * from './components/types';
19
- import { MaterialComponentDefinitionExtended, MeshColliderComponentDefinitionExtended, MeshRendererComponentDefinitionExtended, AvatarShapeComponentDefinitionExtended, AvatarEquippedDataComponentDefinitionExtended, TransformComponentExtended, AnimatorComponentDefinitionExtended, AudioSourceComponentDefinitionExtended, AudioAnalysisComponentDefinitionExtended, AudioStreamComponentDefinitionExtended, ISyncComponents, TweenComponentDefinitionExtended, INetowrkEntity, INetowrkParent, VirtualCameraComponentDefinitionExtended, InputModifierComponentDefinitionExtended, LightSourceComponentDefinitionExtended, TriggerAreaComponentDefinitionExtended, ParticleSystemComponentDefinitionExtended, TouchScreenControlsComponentDefinitionExtended } from './components/types';
19
+ import { MaterialComponentDefinitionExtended, MeshColliderComponentDefinitionExtended, MeshRendererComponentDefinitionExtended, TransformComponentExtended, AnimatorComponentDefinitionExtended, AudioSourceComponentDefinitionExtended, AudioAnalysisComponentDefinitionExtended, AudioStreamComponentDefinitionExtended, ISyncComponents, TweenComponentDefinitionExtended, INetowrkEntity, INetowrkParent, VirtualCameraComponentDefinitionExtended, InputModifierComponentDefinitionExtended, LightSourceComponentDefinitionExtended, TriggerAreaComponentDefinitionExtended, ParticleSystemComponentDefinitionExtended, TouchScreenControlsComponentDefinitionExtended } from './components/types';
20
20
  import { NameComponent } from './components/manual/Name';
21
21
  import { TagsComponentDefinitionExtended } from './components/manual/Tags';
22
22
  export declare const Transform: TransformComponentExtended;
@@ -27,8 +27,6 @@ export declare const AudioStream: AudioStreamComponentDefinitionExtended;
27
27
  export declare const Material: MaterialComponentDefinitionExtended;
28
28
  export declare const MeshRenderer: MeshRendererComponentDefinitionExtended;
29
29
  export declare const MeshCollider: MeshColliderComponentDefinitionExtended;
30
- export declare const AvatarShape: AvatarShapeComponentDefinitionExtended;
31
- export declare const AvatarEquippedData: AvatarEquippedDataComponentDefinitionExtended;
32
30
  export declare const Name: NameComponent;
33
31
  export declare const Tags: TagsComponentDefinitionExtended;
34
32
  export declare const Tween: TweenComponentDefinitionExtended;
package/dist/index.js CHANGED
@@ -31,9 +31,6 @@ export const AudioStream = /* @__PURE__*/ components.AudioStream(engine);
31
31
  export const Material = /* @__PURE__*/ components.Material(engine);
32
32
  export const MeshRenderer = /* @__PURE__*/ components.MeshRenderer(engine);
33
33
  export const MeshCollider = /* @__PURE__*/ components.MeshCollider(engine);
34
- export const AvatarShape = /* @__PURE__*/ components.AvatarShape(engine);
35
- export const AvatarEquippedData =
36
- /* @__PURE__*/ components.AvatarEquippedData(engine);
37
34
  export const Name = components.Name(engine);
38
35
  export const Tags = components.Tags(engine);
39
36
  export const Tween = /* @__PURE__*/ components.Tween(engine);
@@ -1,3 +1,5 @@
1
+ /** Reserved case index for a value whose case was never selected. */
2
+ const NO_CASE = 0;
1
3
  export const IOneOf = (specs) => {
2
4
  const specKeys = Object.keys(specs);
3
5
  const keyToIndex = specKeys.reduce((dict, key, index) => {
@@ -10,12 +12,22 @@ export const IOneOf = (specs) => {
10
12
  }, {});
11
13
  return {
12
14
  serialize({ $case, value }, builder) {
15
+ // `create()` selects no case, so a field the scene never set arrives here
16
+ // with an undefined `$case`. Index 0 is free, cases start at 1.
17
+ if ($case === undefined) {
18
+ builder.writeUint8(NO_CASE);
19
+ return;
20
+ }
13
21
  const _value = keyToIndex[$case.toString()] + 1;
14
22
  builder.writeUint8(_value);
15
23
  specs[$case].serialize(value, builder);
16
24
  },
17
25
  deserialize(reader) {
18
- const $case = specKeys[reader.readInt8() - 1];
26
+ const caseIndex = reader.readInt8();
27
+ if (caseIndex === NO_CASE) {
28
+ return {};
29
+ }
30
+ const $case = specKeys[caseIndex - 1];
19
31
  const value = specs[$case].deserialize(reader);
20
32
  return { $case, value };
21
33
  },
@@ -16,17 +16,22 @@ import * as components from '../components';
16
16
  */
17
17
  export function cyclicParentingChecker(engine) {
18
18
  const Transform = components.Transform(engine);
19
+ // Reused by every walk: the checker is synchronous, so only one is ever in
20
+ // flight. A cycle anywhere above the entity has to end the walk, not only one
21
+ // the entity is part of, otherwise the ancestors repeat forever.
22
+ const visited = new Set();
19
23
  return () => {
20
24
  for (const entity of Transform.dirtyIterator()) {
25
+ visited.clear();
26
+ visited.add(entity);
21
27
  let transform = Transform.getOrNull(entity);
22
28
  while (transform && transform.parent) {
23
- if (transform.parent === entity) {
29
+ if (visited.has(transform.parent)) {
24
30
  console.error(`There is a cyclic parent with entity ${entity}`);
25
31
  break;
26
32
  }
27
- else {
28
- transform = Transform.getOrNull(transform.parent);
29
- }
33
+ visited.add(transform.parent);
34
+ transform = Transform.getOrNull(transform.parent);
30
35
  }
31
36
  }
32
37
  };
@@ -50,24 +50,6 @@ 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;
71
53
  /**
72
54
  * @public
73
55
  * Remove the callback for onProximityDown event
@@ -146,36 +128,6 @@ export interface PointerEventsSystem {
146
128
  entity: Entity;
147
129
  opts?: Partial<EventSystemOptions>;
148
130
  }, 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;
179
131
  /**
180
132
  * @public
181
133
  * Execute callback when the user presses the proximity button on the entity
@@ -20,14 +20,21 @@ 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";
26
23
  })(EventType || (EventType = {}));
27
24
  const eventsMap = new Map();
28
25
  function getEvent(entity) {
29
26
  return eventsMap.get(entity) || eventsMap.set(entity, new Map()).get(entity);
30
27
  }
28
+ // A cursor handler and a proximity handler are separate registrations that
29
+ // produce separate PointerEvents entries, so they need separate slots here
30
+ // too. Keying on the event type alone made onProximityDown evict whatever
31
+ // onPointerDown had left.
32
+ function eventKey(type, interactionType) {
33
+ return `${type}:${interactionType}`;
34
+ }
35
+ function setEvent(entity, type, cb, opts, interactionType = 0 /* InteractionType.CURSOR */) {
36
+ getEvent(entity).set(eventKey(type, interactionType), { cb, opts, eventType: type });
37
+ }
31
38
  function setPointerEvent(entity, type, opts, interactionType = 0 /* InteractionType.CURSOR */) {
32
39
  const pointerEvent = PointerEvents.getMutableOrNull(entity) || PointerEvents.create(entity);
33
40
  pointerEvent.pointerEvents.push({
@@ -45,13 +52,27 @@ export function createPointerEventsSystem(engine, inputSystem) {
45
52
  interactionType: interactionType ?? 0 /* InteractionType.CURSOR */
46
53
  });
47
54
  }
48
- function removePointerEvent(entity, type, button, interactionType = 0 /* InteractionType.CURSOR */) {
55
+ function removePointerEvent(entity, type, opts, interactionType = 0 /* InteractionType.CURSOR */) {
49
56
  const pointerEvent = PointerEvents.getMutableOrNull(entity);
50
57
  if (!pointerEvent)
51
58
  return;
52
- pointerEvent.pointerEvents = pointerEvent.pointerEvents.filter((pointer) => !(pointer.eventInfo?.button === button &&
53
- pointer.eventType === type &&
54
- pointer.interactionType === interactionType));
59
+ const sameSlot = (pointer) => pointer.eventType === type && pointer.interactionType === interactionType;
60
+ // onClick and onPointerDown both describe themselves as PET_DOWN, so the event
61
+ // type and button alone do not say which registration an entry belongs to. Match
62
+ // everything the entry was built from, or removing one handler can take the
63
+ // other's descriptor and leave the renderer advertising the wrong interaction.
64
+ const index = pointerEvent.pointerEvents.findIndex((pointer) => sameSlot(pointer) &&
65
+ pointer.eventInfo?.button === opts.button &&
66
+ pointer.eventInfo?.hoverText === opts.hoverText &&
67
+ pointer.eventInfo?.showFeedback === opts.showFeedback &&
68
+ pointer.eventInfo?.showHighlight === opts.showHighlight &&
69
+ pointer.eventInfo?.maxDistance === opts.maxDistance &&
70
+ pointer.eventInfo?.maxPlayerDistance === opts.maxPlayerDistance &&
71
+ pointer.eventInfo?.priority === opts.priority &&
72
+ pointer.eventInfo?.maxCameraDistance === opts.maxCameraDistance);
73
+ if (index === -1)
74
+ return;
75
+ pointerEvent.pointerEvents.splice(index, 1);
55
76
  }
56
77
  function getPointerEvent(eventType) {
57
78
  if (eventType === EventType.Up) {
@@ -69,24 +90,20 @@ export function createPointerEventsSystem(engine, inputSystem) {
69
90
  else if (eventType === EventType.ProximityLeave) {
70
91
  return 5 /* PointerEventType.PET_PROXIMITY_LEAVE */;
71
92
  }
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
- }
81
93
  return 1 /* PointerEventType.PET_DOWN */;
82
94
  }
83
95
  function removeEvent(entity, type, interactionType = 0 /* InteractionType.CURSOR */) {
84
96
  const event = getEvent(entity);
85
- const pointerEvent = event.get(type);
86
- if (pointerEvent?.opts.hoverText) {
87
- removePointerEvent(entity, getPointerEvent(type), pointerEvent.opts.button);
97
+ const key = eventKey(type, interactionType);
98
+ const pointerEvent = event.get(key);
99
+ // Every registration adds an entry, not only the ones carrying a hoverText,
100
+ // so every removal has to take one away. Gating on hoverText left the
101
+ // renderer showing an interaction whose callback was already gone, and made
102
+ // re-registering grow the component by one entry each time.
103
+ if (pointerEvent) {
104
+ removePointerEvent(entity, getPointerEvent(type), pointerEvent.opts, interactionType);
88
105
  }
89
- event.delete(type);
106
+ event.delete(key);
90
107
  }
91
108
  engine.addSystem(function PointerEventSystem() {
92
109
  for (const [entity, event] of eventsMap) {
@@ -94,7 +111,7 @@ export function createPointerEventsSystem(engine, inputSystem) {
94
111
  eventsMap.delete(entity);
95
112
  continue;
96
113
  }
97
- for (const [eventType, { cb, opts }] of event) {
114
+ for (const [, { cb, opts, eventType }] of event) {
98
115
  if (eventType === EventType.Click) {
99
116
  const command = inputSystem.getClick(opts.button, entity);
100
117
  if (command)
@@ -105,10 +122,7 @@ export function createPointerEventsSystem(engine, inputSystem) {
105
122
  eventType === EventType.HoverEnter ||
106
123
  eventType === EventType.HoverLeave ||
107
124
  eventType === EventType.ProximityEnter ||
108
- eventType === EventType.ProximityLeave ||
109
- eventType === EventType.Drag ||
110
- eventType === EventType.DragLocked ||
111
- eventType === EventType.DragEnd) {
125
+ eventType === EventType.ProximityLeave) {
112
126
  const command = inputSystem.getInputCommand(opts.button, getPointerEvent(eventType), entity);
113
127
  if (command) {
114
128
  checkNotThenable(cb(command), 'Event handler returned a thenable. Only synchronous functions are allowed');
@@ -125,7 +139,7 @@ export function createPointerEventsSystem(engine, inputSystem) {
125
139
  const { entity, opts } = data;
126
140
  const options = getDefaultOpts(opts);
127
141
  removeEvent(entity, EventType.Down);
128
- getEvent(entity).set(EventType.Down, { cb, opts: options });
142
+ setEvent(entity, EventType.Down, cb, options);
129
143
  setPointerEvent(entity, 1 /* PointerEventType.PET_DOWN */, options);
130
144
  };
131
145
  const onPointerUp = (...args) => {
@@ -136,7 +150,7 @@ export function createPointerEventsSystem(engine, inputSystem) {
136
150
  const { entity, opts } = data;
137
151
  const options = getDefaultOpts(opts);
138
152
  removeEvent(entity, EventType.Up);
139
- getEvent(entity).set(EventType.Up, { cb, opts: options });
153
+ setEvent(entity, EventType.Up, cb, options);
140
154
  setPointerEvent(entity, 0 /* PointerEventType.PET_UP */, options);
141
155
  };
142
156
  const onPointerHoverEnter = (...args) => {
@@ -144,7 +158,7 @@ export function createPointerEventsSystem(engine, inputSystem) {
144
158
  const { entity, opts } = data;
145
159
  const options = getDefaultOpts(opts);
146
160
  removeEvent(entity, EventType.HoverEnter);
147
- getEvent(entity).set(EventType.HoverEnter, { cb, opts: options });
161
+ setEvent(entity, EventType.HoverEnter, cb, options);
148
162
  setPointerEvent(entity, 2 /* PointerEventType.PET_HOVER_ENTER */, options);
149
163
  };
150
164
  const onPointerHoverLeave = (...args) => {
@@ -152,39 +166,15 @@ export function createPointerEventsSystem(engine, inputSystem) {
152
166
  const { entity, opts } = data;
153
167
  const options = getDefaultOpts(opts);
154
168
  removeEvent(entity, EventType.HoverLeave);
155
- getEvent(entity).set(EventType.HoverLeave, { cb, opts: options });
169
+ setEvent(entity, EventType.HoverLeave, cb, options);
156
170
  setPointerEvent(entity, 3 /* PointerEventType.PET_HOVER_LEAVE */, options);
157
171
  };
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
- };
182
172
  const onProximityDown = (...args) => {
183
173
  const [data, cb] = args;
184
174
  const { entity, opts } = data;
185
175
  const options = getDefaultOpts(opts);
186
176
  removeEvent(entity, EventType.Down, 1 /* InteractionType.PROXIMITY */);
187
- getEvent(entity).set(EventType.Down, { cb, opts: options });
177
+ setEvent(entity, EventType.Down, cb, options, 1 /* InteractionType.PROXIMITY */);
188
178
  setPointerEvent(entity, 1 /* PointerEventType.PET_DOWN */, options, 1 /* InteractionType.PROXIMITY */);
189
179
  };
190
180
  const onProximityUp = (...args) => {
@@ -192,7 +182,7 @@ export function createPointerEventsSystem(engine, inputSystem) {
192
182
  const { entity, opts } = data;
193
183
  const options = getDefaultOpts(opts);
194
184
  removeEvent(entity, EventType.Up, 1 /* InteractionType.PROXIMITY */);
195
- getEvent(entity).set(EventType.Up, { cb, opts: options });
185
+ setEvent(entity, EventType.Up, cb, options, 1 /* InteractionType.PROXIMITY */);
196
186
  setPointerEvent(entity, 0 /* PointerEventType.PET_UP */, options, 1 /* InteractionType.PROXIMITY */);
197
187
  };
198
188
  const onProximityEnter = (...args) => {
@@ -200,7 +190,7 @@ export function createPointerEventsSystem(engine, inputSystem) {
200
190
  const { entity, opts } = data;
201
191
  const options = getDefaultOpts(opts);
202
192
  removeEvent(entity, EventType.ProximityEnter, 1 /* InteractionType.PROXIMITY */);
203
- getEvent(entity).set(EventType.ProximityEnter, { cb, opts: options });
193
+ setEvent(entity, EventType.ProximityEnter, cb, options, 1 /* InteractionType.PROXIMITY */);
204
194
  setPointerEvent(entity, 4 /* PointerEventType.PET_PROXIMITY_ENTER */, options, 1 /* InteractionType.PROXIMITY */);
205
195
  };
206
196
  const onProximityLeave = (...args) => {
@@ -208,7 +198,7 @@ export function createPointerEventsSystem(engine, inputSystem) {
208
198
  const { entity, opts } = data;
209
199
  const options = getDefaultOpts(opts);
210
200
  removeEvent(entity, EventType.ProximityLeave, 1 /* InteractionType.PROXIMITY */);
211
- getEvent(entity).set(EventType.ProximityLeave, { cb, opts: options });
201
+ setEvent(entity, EventType.ProximityLeave, cb, options, 1 /* InteractionType.PROXIMITY */);
212
202
  setPointerEvent(entity, 5 /* PointerEventType.PET_PROXIMITY_LEAVE */, options, 1 /* InteractionType.PROXIMITY */);
213
203
  };
214
204
  return {
@@ -227,15 +217,6 @@ export function createPointerEventsSystem(engine, inputSystem) {
227
217
  removeOnPointerHoverLeave(entity) {
228
218
  removeEvent(entity, EventType.HoverLeave);
229
219
  },
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
- },
239
220
  removeOnProximityDown(entity) {
240
221
  removeEvent(entity, EventType.Down, 1 /* InteractionType.PROXIMITY */);
241
222
  },
@@ -254,16 +235,13 @@ export function createPointerEventsSystem(engine, inputSystem) {
254
235
  // Clear previous event with over feedback included
255
236
  removeEvent(entity, EventType.Click);
256
237
  // Set new event
257
- getEvent(entity).set(EventType.Click, { cb, opts: options });
238
+ setEvent(entity, EventType.Click, cb, options);
258
239
  setPointerEvent(entity, 1 /* PointerEventType.PET_DOWN */, options);
259
240
  },
260
241
  onPointerDown,
261
242
  onPointerUp,
262
243
  onPointerHoverEnter,
263
244
  onPointerHoverLeave,
264
- onPointerDrag,
265
- onPointerDragLocked,
266
- onPointerDragEnd,
267
245
  onProximityDown,
268
246
  onProximityUp,
269
247
  onProximityEnter,
@@ -1,4 +1,4 @@
1
- import { RaycastQueryType, RaycastShape, PBRaycastResult } from '../components';
1
+ import { RaycastQueryType, 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,10 +14,6 @@ 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;
21
17
  };
22
18
  export type LocalDirectionRaycastSystemOptions = {
23
19
  direction?: Vector3;
@@ -12,9 +12,7 @@ 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 */,
16
- shape: 0 /* RaycastShape.RS_RAY */,
17
- includeWorld: false
15
+ collisionMask: 2 /* ColliderLayer.CL_PHYSICS */
18
16
  };
19
17
  const getLocalDirectionRaycastDefaultOptions = (options = {}) => ({
20
18
  ...defaultOptions,
@@ -60,8 +58,6 @@ export function createRaycastSystem(engine) {
60
58
  raycast.direction = raycastValue.directionRawValue;
61
59
  raycast.continuous = raycastValue.continuous;
62
60
  raycast.queryType = raycastValue.queryType;
63
- raycast.shape = raycastValue.shape;
64
- raycast.includeWorld = raycastValue.includeWorld;
65
61
  entitiesCallbackResultMap.set(entity, { callback: callback });
66
62
  };
67
63
  nextTickRaycasts.push(onNextTick);
@@ -34,14 +34,5 @@ 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;
46
37
  }
47
38
  export declare function defineMeshColliderComponent(engine: Pick<IEngine, 'defineComponentFromSchema'>): MeshColliderComponentDefinitionExtended;
@@ -37,12 +37,6 @@ 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
- });
46
40
  }
47
41
  };
48
42
  }
@@ -32,13 +32,5 @@ 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;
43
35
  }
44
36
  export declare function defineMeshRendererComponent(engine: Pick<IEngine, 'defineComponentFromSchema'>): MeshRendererComponentDefinitionExtended;
@@ -25,11 +25,6 @@ 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
- });
33
28
  }
34
29
  };
35
30
  }
@@ -0,0 +1,28 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ExplorerItemPurchaseResultSchema = void 0;
4
+ const explorer_item_purchase_result_gen_1 = require("./pb/decentraland/sdk/components/explorer_item_purchase_result.gen");
5
+ /**
6
+ * @internal
7
+ */
8
+ exports.ExplorerItemPurchaseResultSchema = {
9
+ COMPONENT_ID: 1222,
10
+ serialize(value, builder) {
11
+ const writer = explorer_item_purchase_result_gen_1.PBExplorerItemPurchaseResult.encode(value);
12
+ const buffer = new Uint8Array(writer.finish(), 0, writer.len);
13
+ builder.writeBuffer(buffer, false);
14
+ },
15
+ deserialize(reader) {
16
+ return explorer_item_purchase_result_gen_1.PBExplorerItemPurchaseResult.decode(reader.buffer(), reader.remainingBytes());
17
+ },
18
+ create() {
19
+ // TODO: this is a hack.
20
+ return explorer_item_purchase_result_gen_1.PBExplorerItemPurchaseResult.decode(new Uint8Array());
21
+ },
22
+ jsonSchema: {
23
+ type: "object",
24
+ properties: {},
25
+ serializationType: "protocol-buffer",
26
+ protocolBuffer: "PBExplorerItemPurchaseResult"
27
+ }
28
+ };