@dcl/ecs 7.9.5 → 7.9.6-16908909596.commit-3302d67

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 (174) hide show
  1. package/dist/components/extended/AvatarEquippedData.d.ts +10 -0
  2. package/dist/components/extended/AvatarEquippedData.js +15 -0
  3. package/dist/components/extended/AvatarShape.d.ts +10 -0
  4. package/dist/components/extended/AvatarShape.js +15 -0
  5. package/dist/components/extended/MeshCollider.d.ts +8 -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/CameraLayer.gen.d.ts +1 -0
  10. package/dist/components/generated/{SkyboxTime.gen.js → CameraLayer.gen.js} +6 -6
  11. package/dist/components/generated/CameraLayers.gen.d.ts +1 -0
  12. package/dist/components/generated/CameraLayers.gen.js +25 -0
  13. package/dist/components/generated/GlobalLight.gen.d.ts +1 -0
  14. package/dist/components/generated/GlobalLight.gen.js +25 -0
  15. package/dist/components/generated/GltfNode.gen.d.ts +1 -0
  16. package/dist/components/generated/GltfNode.gen.js +25 -0
  17. package/dist/components/generated/GltfNodeState.gen.d.ts +1 -0
  18. package/dist/components/generated/GltfNodeState.gen.js +25 -0
  19. package/dist/components/generated/TextureCamera.gen.d.ts +1 -0
  20. package/dist/components/generated/TextureCamera.gen.js +25 -0
  21. package/dist/components/generated/UiCanvas.gen.d.ts +1 -0
  22. package/dist/components/generated/UiCanvas.gen.js +25 -0
  23. package/dist/components/generated/UiScrollResult.gen.d.ts +1 -0
  24. package/dist/components/generated/UiScrollResult.gen.js +25 -0
  25. package/dist/components/generated/component-names.gen.js +8 -2
  26. package/dist/components/generated/global.gen.d.ts +16 -4
  27. package/dist/components/generated/global.gen.js +8 -2
  28. package/dist/components/generated/index.gen.d.ts +32 -8
  29. package/dist/components/generated/index.gen.js +40 -10
  30. package/dist/components/generated/pb/decentraland/common/texture.gen.d.ts +20 -0
  31. package/dist/components/generated/pb/decentraland/common/texture.gen.js +65 -0
  32. package/dist/components/generated/pb/decentraland/sdk/components/avatar_equipped_data.gen.d.ts +2 -0
  33. package/dist/components/generated/pb/decentraland/sdk/components/avatar_equipped_data.gen.js +10 -1
  34. package/dist/components/generated/pb/decentraland/sdk/components/avatar_modifier_area.gen.d.ts +43 -0
  35. package/dist/components/generated/pb/decentraland/sdk/components/avatar_modifier_area.gen.js +151 -1
  36. package/dist/components/generated/pb/decentraland/sdk/components/avatar_shape.gen.d.ts +2 -2
  37. package/dist/components/generated/pb/decentraland/sdk/components/avatar_shape.gen.js +5 -5
  38. package/dist/components/generated/pb/decentraland/sdk/components/camera_layer.gen.d.ts +30 -0
  39. package/dist/components/generated/pb/decentraland/sdk/components/camera_layer.gen.js +104 -0
  40. package/dist/components/generated/pb/decentraland/sdk/components/camera_layers.gen.d.ts +14 -0
  41. package/dist/components/generated/pb/decentraland/sdk/components/camera_layers.gen.js +50 -0
  42. package/dist/components/generated/pb/decentraland/sdk/components/camera_mode_area.gen.d.ts +37 -1
  43. package/dist/components/generated/pb/decentraland/sdk/components/camera_mode_area.gen.js +119 -1
  44. package/dist/components/generated/pb/decentraland/sdk/components/common/input_action.gen.d.ts +4 -1
  45. package/dist/components/generated/pb/decentraland/sdk/components/common/input_action.gen.js +3 -0
  46. package/dist/components/generated/pb/decentraland/sdk/components/global_light.gen.d.ts +34 -0
  47. package/dist/components/generated/pb/decentraland/sdk/components/global_light.gen.js +61 -0
  48. package/dist/components/generated/pb/decentraland/sdk/components/gltf_container_loading_state.gen.d.ts +19 -0
  49. package/dist/components/generated/pb/decentraland/sdk/components/gltf_container_loading_state.gen.js +46 -1
  50. package/dist/components/generated/pb/decentraland/sdk/components/gltf_node.gen.d.ts +50 -0
  51. package/dist/components/generated/pb/decentraland/sdk/components/gltf_node.gen.js +41 -0
  52. package/dist/components/generated/pb/decentraland/sdk/components/gltf_node_state.gen.d.ts +27 -0
  53. package/dist/components/generated/pb/decentraland/sdk/components/gltf_node_state.gen.js +59 -0
  54. package/dist/components/generated/pb/decentraland/sdk/components/material.gen.d.ts +22 -0
  55. package/dist/components/generated/pb/decentraland/sdk/components/material.gen.js +57 -1
  56. package/dist/components/generated/pb/decentraland/sdk/components/mesh_collider.gen.d.ts +20 -0
  57. package/dist/components/generated/pb/decentraland/sdk/components/mesh_collider.gen.js +56 -0
  58. package/dist/components/generated/pb/decentraland/sdk/components/mesh_renderer.gen.d.ts +21 -3
  59. package/dist/components/generated/pb/decentraland/sdk/components/mesh_renderer.gen.js +56 -0
  60. package/dist/components/generated/pb/decentraland/sdk/components/primary_pointer_info.gen.d.ts +8 -2
  61. package/dist/components/generated/pb/decentraland/sdk/components/primary_pointer_info.gen.js +3 -0
  62. package/dist/components/generated/pb/decentraland/sdk/components/texture_camera.gen.d.ts +74 -0
  63. package/dist/components/generated/pb/decentraland/sdk/components/texture_camera.gen.js +191 -0
  64. package/dist/components/generated/pb/decentraland/sdk/components/ui_canvas.gen.d.ts +19 -0
  65. package/dist/components/generated/pb/decentraland/sdk/components/ui_canvas.gen.js +60 -0
  66. package/dist/components/generated/pb/decentraland/sdk/components/ui_scroll_result.gen.d.ts +15 -0
  67. package/dist/components/generated/pb/decentraland/sdk/components/ui_scroll_result.gen.js +42 -0
  68. package/dist/components/generated/pb/decentraland/sdk/components/ui_text.gen.d.ts +4 -0
  69. package/dist/components/generated/pb/decentraland/sdk/components/ui_text.gen.js +20 -0
  70. package/dist/components/generated/pb/decentraland/sdk/components/ui_transform.gen.d.ts +35 -0
  71. package/dist/components/generated/pb/decentraland/sdk/components/ui_transform.gen.js +90 -0
  72. package/dist/components/index.d.ts +11 -7
  73. package/dist/components/index.js +11 -5
  74. package/dist/components/types.d.ts +2 -1
  75. package/dist/engine/input.d.ts +6 -0
  76. package/dist/engine/input.js +7 -1
  77. package/dist/index.d.ts +5 -2
  78. package/dist/index.js +3 -1
  79. package/dist/systems/crdt/index.d.ts +0 -1
  80. package/dist/systems/crdt/index.js +5 -17
  81. package/dist/systems/events.d.ts +100 -1
  82. package/dist/systems/events.js +143 -65
  83. package/dist-cjs/components/extended/AvatarEquippedData.d.ts +10 -0
  84. package/dist-cjs/components/extended/AvatarEquippedData.js +19 -0
  85. package/dist-cjs/components/extended/AvatarShape.d.ts +10 -0
  86. package/dist-cjs/components/extended/AvatarShape.js +19 -0
  87. package/dist-cjs/components/extended/MeshCollider.d.ts +8 -0
  88. package/dist-cjs/components/extended/MeshCollider.js +6 -0
  89. package/dist-cjs/components/extended/MeshRenderer.d.ts +8 -0
  90. package/dist-cjs/components/extended/MeshRenderer.js +5 -0
  91. package/dist-cjs/components/generated/{SkyboxTime.gen.js → CameraLayer.gen.js} +7 -7
  92. package/dist-cjs/components/generated/CameraLayers.gen.js +28 -0
  93. package/dist-cjs/components/generated/GlobalLight.gen.js +28 -0
  94. package/dist-cjs/components/generated/GltfNode.gen.js +28 -0
  95. package/dist-cjs/components/generated/GltfNodeState.gen.d.ts +1 -0
  96. package/dist-cjs/components/generated/GltfNodeState.gen.js +28 -0
  97. package/dist-cjs/components/generated/TextureCamera.gen.d.ts +1 -0
  98. package/dist-cjs/components/generated/TextureCamera.gen.js +28 -0
  99. package/dist-cjs/components/generated/UiCanvas.gen.d.ts +1 -0
  100. package/dist-cjs/components/generated/UiCanvas.gen.js +28 -0
  101. package/dist-cjs/components/generated/UiScrollResult.gen.d.ts +1 -0
  102. package/dist-cjs/components/generated/UiScrollResult.gen.js +28 -0
  103. package/dist-cjs/components/generated/component-names.gen.js +8 -2
  104. package/dist-cjs/components/generated/global.gen.d.ts +16 -4
  105. package/dist-cjs/components/generated/global.gen.js +9 -3
  106. package/dist-cjs/components/generated/index.gen.d.ts +32 -8
  107. package/dist-cjs/components/generated/index.gen.js +50 -13
  108. package/dist-cjs/components/generated/pb/decentraland/common/texture.gen.d.ts +20 -0
  109. package/dist-cjs/components/generated/pb/decentraland/common/texture.gen.js +66 -1
  110. package/dist-cjs/components/generated/pb/decentraland/sdk/components/avatar_equipped_data.gen.d.ts +2 -0
  111. package/dist-cjs/components/generated/pb/decentraland/sdk/components/avatar_equipped_data.gen.js +10 -1
  112. package/dist-cjs/components/generated/pb/decentraland/sdk/components/avatar_modifier_area.gen.d.ts +43 -0
  113. package/dist-cjs/components/generated/pb/decentraland/sdk/components/avatar_modifier_area.gen.js +152 -2
  114. package/dist-cjs/components/generated/pb/decentraland/sdk/components/avatar_shape.gen.d.ts +2 -2
  115. package/dist-cjs/components/generated/pb/decentraland/sdk/components/avatar_shape.gen.js +5 -5
  116. package/dist-cjs/components/generated/pb/decentraland/sdk/components/camera_layer.gen.d.ts +30 -0
  117. package/dist-cjs/components/generated/pb/decentraland/sdk/components/camera_layer.gen.js +110 -0
  118. package/dist-cjs/components/generated/pb/decentraland/sdk/components/camera_layers.gen.d.ts +14 -0
  119. package/dist-cjs/components/generated/pb/decentraland/sdk/components/camera_layers.gen.js +56 -0
  120. package/dist-cjs/components/generated/pb/decentraland/sdk/components/camera_mode_area.gen.d.ts +37 -1
  121. package/dist-cjs/components/generated/pb/decentraland/sdk/components/camera_mode_area.gen.js +120 -2
  122. package/dist-cjs/components/generated/pb/decentraland/sdk/components/common/input_action.gen.d.ts +4 -1
  123. package/dist-cjs/components/generated/pb/decentraland/sdk/components/common/input_action.gen.js +3 -0
  124. package/dist-cjs/components/generated/pb/decentraland/sdk/components/global_light.gen.d.ts +34 -0
  125. package/dist-cjs/components/generated/pb/decentraland/sdk/components/global_light.gen.js +67 -0
  126. package/dist-cjs/components/generated/pb/decentraland/sdk/components/gltf_container_loading_state.gen.d.ts +19 -0
  127. package/dist-cjs/components/generated/pb/decentraland/sdk/components/gltf_container_loading_state.gen.js +46 -1
  128. package/dist-cjs/components/generated/pb/decentraland/sdk/components/gltf_node.gen.d.ts +50 -0
  129. package/dist-cjs/components/generated/pb/decentraland/sdk/components/gltf_node.gen.js +47 -0
  130. package/dist-cjs/components/generated/pb/decentraland/sdk/components/gltf_node_state.gen.d.ts +27 -0
  131. package/dist-cjs/components/generated/pb/decentraland/sdk/components/gltf_node_state.gen.js +65 -0
  132. package/dist-cjs/components/generated/pb/decentraland/sdk/components/material.gen.d.ts +22 -0
  133. package/dist-cjs/components/generated/pb/decentraland/sdk/components/material.gen.js +58 -2
  134. package/dist-cjs/components/generated/pb/decentraland/sdk/components/mesh_collider.gen.d.ts +20 -0
  135. package/dist-cjs/components/generated/pb/decentraland/sdk/components/mesh_collider.gen.js +57 -1
  136. package/dist-cjs/components/generated/pb/decentraland/sdk/components/mesh_renderer.gen.d.ts +21 -3
  137. package/dist-cjs/components/generated/pb/decentraland/sdk/components/mesh_renderer.gen.js +57 -1
  138. package/dist-cjs/components/generated/pb/decentraland/sdk/components/primary_pointer_info.gen.d.ts +8 -2
  139. package/dist-cjs/components/generated/pb/decentraland/sdk/components/primary_pointer_info.gen.js +3 -0
  140. package/dist-cjs/components/generated/pb/decentraland/sdk/components/texture_camera.gen.d.ts +74 -0
  141. package/dist-cjs/components/generated/pb/decentraland/sdk/components/texture_camera.gen.js +197 -0
  142. package/dist-cjs/components/generated/pb/decentraland/sdk/components/ui_canvas.gen.d.ts +19 -0
  143. package/dist-cjs/components/generated/pb/decentraland/sdk/components/{skybox_time.gen.js → ui_canvas.gen.js} +25 -26
  144. package/dist-cjs/components/generated/pb/decentraland/sdk/components/ui_scroll_result.gen.d.ts +15 -0
  145. package/dist-cjs/components/generated/pb/decentraland/sdk/components/ui_scroll_result.gen.js +48 -0
  146. package/dist-cjs/components/generated/pb/decentraland/sdk/components/ui_text.gen.d.ts +4 -0
  147. package/dist-cjs/components/generated/pb/decentraland/sdk/components/ui_text.gen.js +20 -0
  148. package/dist-cjs/components/generated/pb/decentraland/sdk/components/ui_transform.gen.d.ts +35 -0
  149. package/dist-cjs/components/generated/pb/decentraland/sdk/components/ui_transform.gen.js +91 -1
  150. package/dist-cjs/components/index.d.ts +11 -7
  151. package/dist-cjs/components/index.js +15 -7
  152. package/dist-cjs/components/types.d.ts +2 -1
  153. package/dist-cjs/engine/input.d.ts +6 -0
  154. package/dist-cjs/engine/input.js +7 -1
  155. package/dist-cjs/index.d.ts +5 -2
  156. package/dist-cjs/index.js +4 -2
  157. package/dist-cjs/systems/crdt/index.d.ts +0 -1
  158. package/dist-cjs/systems/crdt/index.js +6 -18
  159. package/dist-cjs/systems/events.d.ts +100 -1
  160. package/dist-cjs/systems/events.js +143 -65
  161. package/package.json +2 -2
  162. package/dist/components/generated/GltfNodeModifiers.gen.js +0 -25
  163. package/dist/components/generated/pb/decentraland/sdk/components/gltf_node_modifiers.gen.d.ts +0 -43
  164. package/dist/components/generated/pb/decentraland/sdk/components/gltf_node_modifiers.gen.js +0 -98
  165. package/dist/components/generated/pb/decentraland/sdk/components/skybox_time.gen.d.ts +0 -31
  166. package/dist/components/generated/pb/decentraland/sdk/components/skybox_time.gen.js +0 -61
  167. package/dist-cjs/components/generated/GltfNodeModifiers.gen.js +0 -28
  168. package/dist-cjs/components/generated/pb/decentraland/sdk/components/gltf_node_modifiers.gen.d.ts +0 -43
  169. package/dist-cjs/components/generated/pb/decentraland/sdk/components/gltf_node_modifiers.gen.js +0 -104
  170. package/dist-cjs/components/generated/pb/decentraland/sdk/components/skybox_time.gen.d.ts +0 -31
  171. /package/dist-cjs/components/generated/{GltfNodeModifiers.gen.d.ts → CameraLayer.gen.d.ts} +0 -0
  172. /package/dist-cjs/components/generated/{SkyboxTime.gen.d.ts → CameraLayers.gen.d.ts} +0 -0
  173. /package/{dist/components/generated/GltfNodeModifiers.gen.d.ts → dist-cjs/components/generated/GlobalLight.gen.d.ts} +0 -0
  174. /package/{dist/components/generated/SkyboxTime.gen.d.ts → dist-cjs/components/generated/GltfNode.gen.d.ts} +0 -0
@@ -18,6 +18,9 @@ export function createPointerEventsSystem(engine, inputSystem) {
18
18
  EventType[EventType["Up"] = 2] = "Up";
19
19
  EventType[EventType["HoverEnter"] = 3] = "HoverEnter";
20
20
  EventType[EventType["HoverLeave"] = 4] = "HoverLeave";
21
+ EventType[EventType["Drag"] = 5] = "Drag";
22
+ EventType[EventType["DragLocked"] = 6] = "DragLocked";
23
+ EventType[EventType["DragEnd"] = 7] = "DragEnd";
21
24
  })(EventType || (EventType = {}));
22
25
  const eventsMap = new Map();
23
26
  function getEvent(entity) {
@@ -52,77 +55,148 @@ export function createPointerEventsSystem(engine, inputSystem) {
52
55
  else if (eventType === EventType.HoverEnter) {
53
56
  return 2 /* PointerEventType.PET_HOVER_ENTER */;
54
57
  }
58
+ else if (eventType === EventType.Drag) {
59
+ return 5 /* PointerEventType.PET_DRAG */;
60
+ }
61
+ else if (eventType === EventType.DragLocked) {
62
+ return 4 /* PointerEventType.PET_DRAG_LOCKED */;
63
+ }
64
+ else if (eventType === EventType.DragEnd) {
65
+ return 6 /* PointerEventType.PET_DRAG_END */;
66
+ }
55
67
  return 1 /* PointerEventType.PET_DOWN */;
56
68
  }
69
+ function getEventType(pet) {
70
+ if (pet === 0 /* PointerEventType.PET_UP */) {
71
+ return EventType.Up;
72
+ }
73
+ else if (pet === 2 /* PointerEventType.PET_HOVER_ENTER */) {
74
+ return EventType.HoverEnter;
75
+ }
76
+ else if (pet === 3 /* PointerEventType.PET_HOVER_LEAVE */) {
77
+ return EventType.HoverLeave;
78
+ }
79
+ else if (pet === 5 /* PointerEventType.PET_DRAG */) {
80
+ return EventType.Drag;
81
+ }
82
+ else if (pet === 4 /* PointerEventType.PET_DRAG_LOCKED */) {
83
+ return EventType.DragLocked;
84
+ }
85
+ else if (pet === 6 /* PointerEventType.PET_DRAG_END */) {
86
+ return EventType.DragEnd;
87
+ }
88
+ else {
89
+ return EventType.Down;
90
+ }
91
+ }
57
92
  function removeEvent(entity, type) {
58
93
  const event = getEvent(entity);
59
- const pointerEvent = event.get(type);
60
- if (pointerEvent?.opts.hoverText) {
61
- removePointerEvent(entity, getPointerEvent(type), pointerEvent.opts.button);
94
+ const pointerEventList = event.get(type);
95
+ if (pointerEventList === undefined) {
96
+ return;
97
+ }
98
+ for (const button of pointerEventList.keys()) {
99
+ removePointerEvent(entity, getPointerEvent(type), button);
62
100
  }
63
101
  event.delete(type);
64
102
  }
65
103
  engine.addSystem(function EventSystem() {
66
- for (const [entity, event] of eventsMap) {
104
+ if (eventsMap.size === 0) {
105
+ return;
106
+ }
107
+ for (const entity of eventsMap.keys()) {
67
108
  if (engine.getEntityState(entity) === EntityState.Removed) {
68
109
  eventsMap.delete(entity);
110
+ }
111
+ }
112
+ for (const command of inputSystem.getInputCommands()) {
113
+ const entity = command.hit?.entityId;
114
+ if (entity === undefined) {
115
+ continue;
116
+ }
117
+ const entityMap = eventsMap.get(entity);
118
+ if (entityMap === undefined) {
69
119
  continue;
70
120
  }
71
- for (const [eventType, { cb, opts }] of event) {
72
- if (eventType === EventType.Click) {
73
- const command = inputSystem.getClick(opts.button, entity);
74
- if (command)
75
- checkNotThenable(cb(command.up), 'Click event returned a thenable. Only synchronous functions are allowed');
121
+ const typeMap = entityMap.get(getEventType(command.state));
122
+ if (typeMap) {
123
+ const data = typeMap.get(command.button);
124
+ if (data) {
125
+ checkNotThenable(data.cb(command), 'Event handler returned a thenable. Only synchronous functions are allowed');
76
126
  }
77
- if (eventType === EventType.Down ||
78
- eventType === EventType.Up ||
79
- eventType === EventType.HoverEnter ||
80
- eventType === EventType.HoverLeave) {
81
- const command = inputSystem.getInputCommand(opts.button, getPointerEvent(eventType), entity);
82
- if (command) {
83
- checkNotThenable(cb(command), 'Event handler returned a thenable. Only synchronous functions are allowed');
127
+ const anyData = typeMap.get(3 /* InputAction.IA_ANY */);
128
+ if (anyData) {
129
+ checkNotThenable(anyData.cb(command), 'Event handler returned a thenable. Only synchronous functions are allowed');
130
+ }
131
+ }
132
+ // check clicks separately
133
+ if (command.state === 0 /* PointerEventType.PET_UP */) {
134
+ const clickMap = entityMap.get(EventType.Click);
135
+ if (clickMap) {
136
+ const data = clickMap.get(command.button);
137
+ if (data && inputSystem.getClick(command.button, entity)) {
138
+ checkNotThenable(data.cb(command), 'Click event returned a thenable. Only synchronous functions are allowed');
139
+ }
140
+ const anyData = clickMap.get(3 /* InputAction.IA_ANY */);
141
+ if (anyData && inputSystem.getClick(command.button, entity)) {
142
+ checkNotThenable(anyData.cb(command), 'Event handler returned a thenable. Only synchronous functions are allowed');
84
143
  }
85
144
  }
86
145
  }
87
146
  }
88
147
  });
89
- const onPointerDown = (...args) => {
90
- const [data, cb, maybeOpts] = args;
91
- if (typeof data === 'number') {
92
- return onPointerDown({ entity: data, opts: maybeOpts ?? {} }, cb);
93
- }
94
- const { entity, opts } = data;
95
- const options = getDefaultOpts(opts);
96
- removeEvent(entity, EventType.Down);
97
- getEvent(entity).set(EventType.Down, { cb, opts: options });
98
- setPointerEvent(entity, 1 /* PointerEventType.PET_DOWN */, options);
99
- };
100
- const onPointerUp = (...args) => {
101
- const [data, cb, maybeOpts] = args;
102
- if (typeof data === 'number') {
103
- return onPointerUp({ entity: data, opts: maybeOpts ?? {} }, cb);
104
- }
105
- const { entity, opts } = data;
106
- const options = getDefaultOpts(opts);
107
- removeEvent(entity, EventType.Up);
108
- getEvent(entity).set(EventType.Up, { cb, opts: options });
109
- setPointerEvent(entity, 0 /* PointerEventType.PET_UP */, options);
110
- };
111
- const onPointerHoverEnter = (...args) => {
112
- const [data, cb] = args;
113
- const { entity, opts } = data;
114
- const options = getDefaultOpts(opts);
115
- removeEvent(entity, EventType.HoverEnter);
116
- getEvent(entity).set(EventType.HoverEnter, { cb, opts: options });
117
- setPointerEvent(entity, 2 /* PointerEventType.PET_HOVER_ENTER */, options);
118
- };
119
- const onPointerHoverLeave = (...args) => {
120
- const [data, cb] = args;
121
- const { entity, opts } = data;
122
- const options = getDefaultOpts(opts);
123
- removeEvent(entity, EventType.HoverLeave);
124
- getEvent(entity).set(EventType.HoverLeave, { cb, opts: options });
125
- setPointerEvent(entity, 3 /* PointerEventType.PET_HOVER_LEAVE */, options);
148
+ // return a function with the correct event type.
149
+ // we use onPointerDown as the "archetype" for the returned function, but it fits with
150
+ // all the onPointer* declarations
151
+ const onPointerFunction = (ty) => {
152
+ return (arg0, arg1, arg2) => {
153
+ let entity;
154
+ let optsList;
155
+ if (typeof arg0 === 'number') {
156
+ // called as onPointerDown(entity: Entity, cb: EventSystemCallback, opts?: Partial<EventSystemOptions>): void
157
+ entity = arg0;
158
+ const cb = arg1;
159
+ const opts = arg2;
160
+ optsList = [{ cb, ...getDefaultOpts(opts) }];
161
+ }
162
+ else if (typeof arg1 === 'function') {
163
+ // called as onPointerDown(pointerData: { entity: Entity; opts?: Partial<EventSystemOptions> }, cb: EventSystemCallback): void
164
+ const { entity: e, opts } = arg0;
165
+ const cb = arg1;
166
+ entity = e;
167
+ optsList = [{ cb, ...getDefaultOpts(opts) }];
168
+ }
169
+ else {
170
+ // called as onPointerDown(pointerData: { entity: Entity; optsList: EventSystemOptionsCallback[] }): void
171
+ const { entity: e, optsList: o } = arg0;
172
+ entity = e;
173
+ optsList = o;
174
+ }
175
+ const previous = getEvent(entity).get(ty) ?? new Map();
176
+ const callbacks = new Map();
177
+ for (const opts of optsList) {
178
+ const prevOpts = previous.get(opts.button);
179
+ if (prevOpts !== undefined) {
180
+ if (prevOpts.hoverText !== opts.hoverText ||
181
+ prevOpts.maxDistance !== opts.maxDistance ||
182
+ prevOpts.showFeedback !== opts.showFeedback ||
183
+ prevOpts.showHighlight !== opts.showHighlight) {
184
+ removePointerEvent(entity, getPointerEvent(ty), opts.button);
185
+ setPointerEvent(entity, getPointerEvent(ty), opts);
186
+ }
187
+ }
188
+ else {
189
+ setPointerEvent(entity, getPointerEvent(ty), opts);
190
+ }
191
+ callbacks.set(opts.button, opts);
192
+ }
193
+ for (const button of previous.keys()) {
194
+ if (!callbacks.has(button)) {
195
+ removePointerEvent(entity, getPointerEvent(ty), button);
196
+ }
197
+ }
198
+ getEvent(entity).set(ty, callbacks);
199
+ };
126
200
  };
127
201
  return {
128
202
  removeOnClick(entity) {
@@ -140,18 +214,22 @@ export function createPointerEventsSystem(engine, inputSystem) {
140
214
  removeOnPointerHoverLeave(entity) {
141
215
  removeEvent(entity, EventType.HoverLeave);
142
216
  },
143
- onClick(value, cb) {
144
- const { entity } = value;
145
- const options = getDefaultOpts(value.opts);
146
- // Clear previous event with over feedback included
147
- removeEvent(entity, EventType.Click);
148
- // Set new event
149
- getEvent(entity).set(EventType.Click, { cb, opts: options });
150
- setPointerEvent(entity, 1 /* PointerEventType.PET_DOWN */, options);
217
+ removeOnPointerDrag(entity) {
218
+ removeEvent(entity, EventType.Drag);
219
+ },
220
+ removeOnPointerDragLocked(entity) {
221
+ removeEvent(entity, EventType.DragLocked);
222
+ },
223
+ removeOnPointerDragEnd(entity) {
224
+ removeEvent(entity, EventType.DragEnd);
151
225
  },
152
- onPointerDown,
153
- onPointerUp,
154
- onPointerHoverEnter,
155
- onPointerHoverLeave
226
+ onClick: onPointerFunction(EventType.Click),
227
+ onPointerDown: onPointerFunction(EventType.Down),
228
+ onPointerUp: onPointerFunction(EventType.Up),
229
+ onPointerHoverEnter: onPointerFunction(EventType.HoverEnter),
230
+ onPointerHoverLeave: onPointerFunction(EventType.HoverLeave),
231
+ onPointerDrag: onPointerFunction(EventType.Drag),
232
+ onPointerDragLocked: onPointerFunction(EventType.DragLocked),
233
+ onPointerDragEnd: onPointerFunction(EventType.DragEnd)
156
234
  };
157
235
  }
@@ -0,0 +1,10 @@
1
+ import { IEngine, LastWriteWinElementSetComponentDefinition } from '../../engine';
2
+ import { PBAvatarEquippedData } from '../generated/pb/decentraland/sdk/components/avatar_equipped_data.gen';
3
+ /**
4
+ * @public
5
+ */
6
+ export type AvatarEquippedDataComponentDefinitionExtended = LastWriteWinElementSetComponentDefinition<AvatarEquippedDataType>;
7
+ export type AvatarEquippedDataType = Omit<PBAvatarEquippedData, 'forceRender'> & {
8
+ forceRender?: string[] | undefined;
9
+ };
10
+ export declare function defineAvatarEquippedDataComponent(engine: Pick<IEngine, 'defineComponentFromSchema'>): AvatarEquippedDataComponentDefinitionExtended;
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.defineAvatarEquippedDataComponent = void 0;
4
+ const AvatarEquippedData_gen_1 = require("../generated/AvatarEquippedData.gen");
5
+ function defineAvatarEquippedDataComponent(engine) {
6
+ const patchedSchema = { ...AvatarEquippedData_gen_1.AvatarEquippedDataSchema };
7
+ const origSerialize = patchedSchema.serialize;
8
+ patchedSchema.serialize = (value, builder) => {
9
+ if (value.forceRender === undefined) {
10
+ origSerialize({ forceRender: [], ...value }, builder);
11
+ }
12
+ else {
13
+ origSerialize(value, builder);
14
+ }
15
+ };
16
+ const theComponent = engine.defineComponentFromSchema('core::AvatarEquippedData', patchedSchema);
17
+ return theComponent;
18
+ }
19
+ exports.defineAvatarEquippedDataComponent = defineAvatarEquippedDataComponent;
@@ -0,0 +1,10 @@
1
+ import { IEngine, LastWriteWinElementSetComponentDefinition } from '../../engine';
2
+ import { PBAvatarShape } from '../generated/pb/decentraland/sdk/components/avatar_shape.gen';
3
+ /**
4
+ * @public
5
+ */
6
+ export type AvatarShapeComponentDefinitionExtended = LastWriteWinElementSetComponentDefinition<AvatarShapeType>;
7
+ export type AvatarShapeType = Omit<PBAvatarShape, 'forceRender'> & {
8
+ forceRender?: string[] | undefined;
9
+ };
10
+ export declare function defineAvatarShapeComponent(engine: Pick<IEngine, 'defineComponentFromSchema'>): AvatarShapeComponentDefinitionExtended;
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.defineAvatarShapeComponent = void 0;
4
+ const AvatarShape_gen_1 = require("../generated/AvatarShape.gen");
5
+ function defineAvatarShapeComponent(engine) {
6
+ const patchedSchema = { ...AvatarShape_gen_1.AvatarShapeSchema };
7
+ const origSerialize = patchedSchema.serialize;
8
+ patchedSchema.serialize = (value, builder) => {
9
+ if (value.forceRender === undefined) {
10
+ origSerialize({ forceRender: [], ...value }, builder);
11
+ }
12
+ else {
13
+ origSerialize(value, builder);
14
+ }
15
+ };
16
+ const theComponent = engine.defineComponentFromSchema('core::AvatarShape', patchedSchema);
17
+ return theComponent;
18
+ }
19
+ exports.defineAvatarShapeComponent = defineAvatarShapeComponent;
@@ -34,5 +34,13 @@ 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 gltf internal mesh in the MeshCollider component
40
+ * @param entity - entity to create or replace the MeshRenderer component
41
+ * @param source - the path to the gltf
42
+ * @param meshName - the name of the mesh in the gltf
43
+ */
44
+ setGltfMesh(entity: Entity, source: string, meshName: string, colliderLayers?: ColliderLayer | ColliderLayer[]): void;
37
45
  }
38
46
  export declare function defineMeshColliderComponent(engine: Pick<IEngine, 'defineComponentFromSchema'>): MeshColliderComponentDefinitionExtended;
@@ -37,6 +37,12 @@ function defineMeshColliderComponent(engine) {
37
37
  mesh: { $case: 'sphere', sphere: {} },
38
38
  collisionMask: getCollisionMask(colliderLayers)
39
39
  });
40
+ },
41
+ setGltfMesh(entity, source, meshName, colliderLayers) {
42
+ theComponent.createOrReplace(entity, {
43
+ mesh: { $case: 'gltf', gltf: { gltfSrc: source, name: meshName } },
44
+ collisionMask: getCollisionMask(colliderLayers)
45
+ });
40
46
  }
41
47
  };
42
48
  }
@@ -32,5 +32,13 @@ export interface MeshRendererComponentDefinitionExtended extends LastWriteWinEle
32
32
  * @param entity - entity to create or replace the MeshRenderer component
33
33
  */
34
34
  setSphere(entity: Entity): void;
35
+ /**
36
+ * @public
37
+ * Set a gltf internal mesh 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
41
+ */
42
+ setGltfMesh(entity: Entity, source: string, meshName: string): void;
35
43
  }
36
44
  export declare function defineMeshRendererComponent(engine: Pick<IEngine, 'defineComponentFromSchema'>): MeshRendererComponentDefinitionExtended;
@@ -25,6 +25,11 @@ function defineMeshRendererComponent(engine) {
25
25
  theComponent.createOrReplace(entity, {
26
26
  mesh: { $case: 'sphere', sphere: {} }
27
27
  });
28
+ },
29
+ setGltfMesh(entity, source, meshName) {
30
+ theComponent.createOrReplace(entity, {
31
+ mesh: { $case: 'gltf', gltf: { gltfSrc: source, name: meshName } }
32
+ });
28
33
  }
29
34
  };
30
35
  }
@@ -1,28 +1,28 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.SkyboxTimeSchema = void 0;
4
- const skybox_time_gen_1 = require("./pb/decentraland/sdk/components/skybox_time.gen");
3
+ exports.CameraLayerSchema = void 0;
4
+ const camera_layer_gen_1 = require("./pb/decentraland/sdk/components/camera_layer.gen");
5
5
  /**
6
6
  * @internal
7
7
  */
8
- exports.SkyboxTimeSchema = {
8
+ exports.CameraLayerSchema = {
9
9
  COMPONENT_ID: 1210,
10
10
  serialize(value, builder) {
11
- const writer = skybox_time_gen_1.PBSkyboxTime.encode(value);
11
+ const writer = camera_layer_gen_1.PBCameraLayer.encode(value);
12
12
  const buffer = new Uint8Array(writer.finish(), 0, writer.len);
13
13
  builder.writeBuffer(buffer, false);
14
14
  },
15
15
  deserialize(reader) {
16
- return skybox_time_gen_1.PBSkyboxTime.decode(reader.buffer(), reader.remainingBytes());
16
+ return camera_layer_gen_1.PBCameraLayer.decode(reader.buffer(), reader.remainingBytes());
17
17
  },
18
18
  create() {
19
19
  // TODO: this is a hack.
20
- return skybox_time_gen_1.PBSkyboxTime.decode(new Uint8Array());
20
+ return camera_layer_gen_1.PBCameraLayer.decode(new Uint8Array());
21
21
  },
22
22
  jsonSchema: {
23
23
  type: "object",
24
24
  properties: {},
25
25
  serializationType: "protocol-buffer",
26
- protocolBuffer: "PBSkyboxTime"
26
+ protocolBuffer: "PBCameraLayer"
27
27
  }
28
28
  };
@@ -0,0 +1,28 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.CameraLayersSchema = void 0;
4
+ const camera_layers_gen_1 = require("./pb/decentraland/sdk/components/camera_layers.gen");
5
+ /**
6
+ * @internal
7
+ */
8
+ exports.CameraLayersSchema = {
9
+ COMPONENT_ID: 1208,
10
+ serialize(value, builder) {
11
+ const writer = camera_layers_gen_1.PBCameraLayers.encode(value);
12
+ const buffer = new Uint8Array(writer.finish(), 0, writer.len);
13
+ builder.writeBuffer(buffer, false);
14
+ },
15
+ deserialize(reader) {
16
+ return camera_layers_gen_1.PBCameraLayers.decode(reader.buffer(), reader.remainingBytes());
17
+ },
18
+ create() {
19
+ // TODO: this is a hack.
20
+ return camera_layers_gen_1.PBCameraLayers.decode(new Uint8Array());
21
+ },
22
+ jsonSchema: {
23
+ type: "object",
24
+ properties: {},
25
+ serializationType: "protocol-buffer",
26
+ protocolBuffer: "PBCameraLayers"
27
+ }
28
+ };
@@ -0,0 +1,28 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.GlobalLightSchema = void 0;
4
+ const global_light_gen_1 = require("./pb/decentraland/sdk/components/global_light.gen");
5
+ /**
6
+ * @internal
7
+ */
8
+ exports.GlobalLightSchema = {
9
+ COMPONENT_ID: 1206,
10
+ serialize(value, builder) {
11
+ const writer = global_light_gen_1.PBGlobalLight.encode(value);
12
+ const buffer = new Uint8Array(writer.finish(), 0, writer.len);
13
+ builder.writeBuffer(buffer, false);
14
+ },
15
+ deserialize(reader) {
16
+ return global_light_gen_1.PBGlobalLight.decode(reader.buffer(), reader.remainingBytes());
17
+ },
18
+ create() {
19
+ // TODO: this is a hack.
20
+ return global_light_gen_1.PBGlobalLight.decode(new Uint8Array());
21
+ },
22
+ jsonSchema: {
23
+ type: "object",
24
+ properties: {},
25
+ serializationType: "protocol-buffer",
26
+ protocolBuffer: "PBGlobalLight"
27
+ }
28
+ };
@@ -0,0 +1,28 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.GltfNodeSchema = void 0;
4
+ const gltf_node_gen_1 = require("./pb/decentraland/sdk/components/gltf_node.gen");
5
+ /**
6
+ * @internal
7
+ */
8
+ exports.GltfNodeSchema = {
9
+ COMPONENT_ID: 1200,
10
+ serialize(value, builder) {
11
+ const writer = gltf_node_gen_1.PBGltfNode.encode(value);
12
+ const buffer = new Uint8Array(writer.finish(), 0, writer.len);
13
+ builder.writeBuffer(buffer, false);
14
+ },
15
+ deserialize(reader) {
16
+ return gltf_node_gen_1.PBGltfNode.decode(reader.buffer(), reader.remainingBytes());
17
+ },
18
+ create() {
19
+ // TODO: this is a hack.
20
+ return gltf_node_gen_1.PBGltfNode.decode(new Uint8Array());
21
+ },
22
+ jsonSchema: {
23
+ type: "object",
24
+ properties: {},
25
+ serializationType: "protocol-buffer",
26
+ protocolBuffer: "PBGltfNode"
27
+ }
28
+ };
@@ -0,0 +1,28 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.GltfNodeStateSchema = void 0;
4
+ const gltf_node_state_gen_1 = require("./pb/decentraland/sdk/components/gltf_node_state.gen");
5
+ /**
6
+ * @internal
7
+ */
8
+ exports.GltfNodeStateSchema = {
9
+ COMPONENT_ID: 1201,
10
+ serialize(value, builder) {
11
+ const writer = gltf_node_state_gen_1.PBGltfNodeState.encode(value);
12
+ const buffer = new Uint8Array(writer.finish(), 0, writer.len);
13
+ builder.writeBuffer(buffer, false);
14
+ },
15
+ deserialize(reader) {
16
+ return gltf_node_state_gen_1.PBGltfNodeState.decode(reader.buffer(), reader.remainingBytes());
17
+ },
18
+ create() {
19
+ // TODO: this is a hack.
20
+ return gltf_node_state_gen_1.PBGltfNodeState.decode(new Uint8Array());
21
+ },
22
+ jsonSchema: {
23
+ type: "object",
24
+ properties: {},
25
+ serializationType: "protocol-buffer",
26
+ protocolBuffer: "PBGltfNodeState"
27
+ }
28
+ };
@@ -0,0 +1,28 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.TextureCameraSchema = void 0;
4
+ const texture_camera_gen_1 = require("./pb/decentraland/sdk/components/texture_camera.gen");
5
+ /**
6
+ * @internal
7
+ */
8
+ exports.TextureCameraSchema = {
9
+ COMPONENT_ID: 1207,
10
+ serialize(value, builder) {
11
+ const writer = texture_camera_gen_1.PBTextureCamera.encode(value);
12
+ const buffer = new Uint8Array(writer.finish(), 0, writer.len);
13
+ builder.writeBuffer(buffer, false);
14
+ },
15
+ deserialize(reader) {
16
+ return texture_camera_gen_1.PBTextureCamera.decode(reader.buffer(), reader.remainingBytes());
17
+ },
18
+ create() {
19
+ // TODO: this is a hack.
20
+ return texture_camera_gen_1.PBTextureCamera.decode(new Uint8Array());
21
+ },
22
+ jsonSchema: {
23
+ type: "object",
24
+ properties: {},
25
+ serializationType: "protocol-buffer",
26
+ protocolBuffer: "PBTextureCamera"
27
+ }
28
+ };
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,28 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.UiCanvasSchema = void 0;
4
+ const ui_canvas_gen_1 = require("./pb/decentraland/sdk/components/ui_canvas.gen");
5
+ /**
6
+ * @internal
7
+ */
8
+ exports.UiCanvasSchema = {
9
+ COMPONENT_ID: 1203,
10
+ serialize(value, builder) {
11
+ const writer = ui_canvas_gen_1.PBUiCanvas.encode(value);
12
+ const buffer = new Uint8Array(writer.finish(), 0, writer.len);
13
+ builder.writeBuffer(buffer, false);
14
+ },
15
+ deserialize(reader) {
16
+ return ui_canvas_gen_1.PBUiCanvas.decode(reader.buffer(), reader.remainingBytes());
17
+ },
18
+ create() {
19
+ // TODO: this is a hack.
20
+ return ui_canvas_gen_1.PBUiCanvas.decode(new Uint8Array());
21
+ },
22
+ jsonSchema: {
23
+ type: "object",
24
+ properties: {},
25
+ serializationType: "protocol-buffer",
26
+ protocolBuffer: "PBUiCanvas"
27
+ }
28
+ };
@@ -0,0 +1,28 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.UiScrollResultSchema = void 0;
4
+ const ui_scroll_result_gen_1 = require("./pb/decentraland/sdk/components/ui_scroll_result.gen");
5
+ /**
6
+ * @internal
7
+ */
8
+ exports.UiScrollResultSchema = {
9
+ COMPONENT_ID: 1202,
10
+ serialize(value, builder) {
11
+ const writer = ui_scroll_result_gen_1.PBUiScrollResult.encode(value);
12
+ const buffer = new Uint8Array(writer.finish(), 0, writer.len);
13
+ builder.writeBuffer(buffer, false);
14
+ },
15
+ deserialize(reader) {
16
+ return ui_scroll_result_gen_1.PBUiScrollResult.decode(reader.buffer(), reader.remainingBytes());
17
+ },
18
+ create() {
19
+ // TODO: this is a hack.
20
+ return ui_scroll_result_gen_1.PBUiScrollResult.decode(new Uint8Array());
21
+ },
22
+ jsonSchema: {
23
+ type: "object",
24
+ properties: {},
25
+ serializationType: "protocol-buffer",
26
+ protocolBuffer: "PBUiScrollResult"
27
+ }
28
+ };