@dcl/ecs 7.12.2 → 7.12.3-19242573384.commit-09d14b4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (189) hide show
  1. package/dist/components/extended/AvatarEquippedData.d.ts +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/extended/Tween.d.ts +5 -94
  10. package/dist/components/extended/Tween.js +1 -119
  11. package/dist/components/generated/CameraLayer.gen.d.ts +1 -0
  12. package/dist/components/generated/CameraLayer.gen.js +25 -0
  13. package/dist/components/generated/CameraLayers.gen.d.ts +1 -0
  14. package/dist/components/generated/CameraLayers.gen.js +25 -0
  15. package/dist/components/generated/GlobalLight.gen.d.ts +1 -0
  16. package/dist/components/generated/GlobalLight.gen.js +25 -0
  17. package/dist/components/generated/GltfNode.gen.d.ts +1 -0
  18. package/dist/components/generated/GltfNode.gen.js +25 -0
  19. package/dist/components/generated/GltfNodeState.gen.d.ts +1 -0
  20. package/dist/components/generated/GltfNodeState.gen.js +25 -0
  21. package/dist/components/generated/TextureCamera.gen.d.ts +1 -0
  22. package/dist/components/generated/TextureCamera.gen.js +25 -0
  23. package/dist/components/generated/UiCanvas.gen.d.ts +1 -0
  24. package/dist/components/generated/UiCanvas.gen.js +25 -0
  25. package/dist/components/generated/UiScrollResult.gen.d.ts +1 -0
  26. package/dist/components/generated/UiScrollResult.gen.js +25 -0
  27. package/dist/components/generated/component-names.gen.js +8 -0
  28. package/dist/components/generated/global.gen.d.ts +17 -1
  29. package/dist/components/generated/global.gen.js +8 -0
  30. package/dist/components/generated/index.gen.d.ts +34 -2
  31. package/dist/components/generated/index.gen.js +42 -4
  32. package/dist/components/generated/pb/decentraland/common/texture.gen.d.ts +20 -0
  33. package/dist/components/generated/pb/decentraland/common/texture.gen.js +65 -0
  34. package/dist/components/generated/pb/decentraland/sdk/components/avatar_equipped_data.gen.d.ts +2 -0
  35. package/dist/components/generated/pb/decentraland/sdk/components/avatar_equipped_data.gen.js +10 -1
  36. package/dist/components/generated/pb/decentraland/sdk/components/avatar_modifier_area.gen.d.ts +43 -0
  37. package/dist/components/generated/pb/decentraland/sdk/components/avatar_modifier_area.gen.js +151 -1
  38. package/dist/components/generated/pb/decentraland/sdk/components/avatar_shape.gen.d.ts +2 -0
  39. package/dist/components/generated/pb/decentraland/sdk/components/avatar_shape.gen.js +10 -0
  40. package/dist/components/generated/pb/decentraland/sdk/components/camera_layer.gen.d.ts +30 -0
  41. package/dist/components/generated/pb/decentraland/sdk/components/camera_layer.gen.js +104 -0
  42. package/dist/components/generated/pb/decentraland/sdk/components/camera_layers.gen.d.ts +14 -0
  43. package/dist/components/generated/pb/decentraland/sdk/components/camera_layers.gen.js +50 -0
  44. package/dist/components/generated/pb/decentraland/sdk/components/camera_mode_area.gen.d.ts +37 -1
  45. package/dist/components/generated/pb/decentraland/sdk/components/camera_mode_area.gen.js +119 -1
  46. package/dist/components/generated/pb/decentraland/sdk/components/common/input_action.gen.d.ts +4 -1
  47. package/dist/components/generated/pb/decentraland/sdk/components/common/input_action.gen.js +3 -0
  48. package/dist/components/generated/pb/decentraland/sdk/components/global_light.gen.d.ts +34 -0
  49. package/dist/components/generated/pb/decentraland/sdk/components/global_light.gen.js +61 -0
  50. package/dist/components/generated/pb/decentraland/sdk/components/gltf_container_loading_state.gen.d.ts +19 -0
  51. package/dist/components/generated/pb/decentraland/sdk/components/gltf_container_loading_state.gen.js +46 -1
  52. package/dist/components/generated/pb/decentraland/sdk/components/gltf_node.gen.d.ts +50 -0
  53. package/dist/components/generated/pb/decentraland/sdk/components/gltf_node.gen.js +41 -0
  54. package/dist/components/generated/pb/decentraland/sdk/components/gltf_node_state.gen.d.ts +27 -0
  55. package/dist/components/generated/pb/decentraland/sdk/components/gltf_node_state.gen.js +59 -0
  56. package/dist/components/generated/pb/decentraland/sdk/components/material.gen.d.ts +22 -0
  57. package/dist/components/generated/pb/decentraland/sdk/components/material.gen.js +57 -1
  58. package/dist/components/generated/pb/decentraland/sdk/components/mesh_collider.gen.d.ts +20 -0
  59. package/dist/components/generated/pb/decentraland/sdk/components/mesh_collider.gen.js +56 -0
  60. package/dist/components/generated/pb/decentraland/sdk/components/mesh_renderer.gen.d.ts +21 -3
  61. package/dist/components/generated/pb/decentraland/sdk/components/mesh_renderer.gen.js +56 -0
  62. package/dist/components/generated/pb/decentraland/sdk/components/primary_pointer_info.gen.d.ts +8 -2
  63. package/dist/components/generated/pb/decentraland/sdk/components/primary_pointer_info.gen.js +3 -0
  64. package/dist/components/generated/pb/decentraland/sdk/components/texture_camera.gen.d.ts +74 -0
  65. package/dist/components/generated/pb/decentraland/sdk/components/texture_camera.gen.js +191 -0
  66. package/dist/components/generated/pb/decentraland/sdk/components/ui_canvas.gen.d.ts +19 -0
  67. package/dist/components/generated/pb/decentraland/sdk/components/ui_canvas.gen.js +60 -0
  68. package/dist/components/generated/pb/decentraland/sdk/components/ui_scroll_result.gen.d.ts +15 -0
  69. package/dist/components/generated/pb/decentraland/sdk/components/ui_scroll_result.gen.js +42 -0
  70. package/dist/components/generated/pb/decentraland/sdk/components/ui_text.gen.d.ts +4 -0
  71. package/dist/components/generated/pb/decentraland/sdk/components/ui_text.gen.js +20 -0
  72. package/dist/components/generated/pb/decentraland/sdk/components/ui_transform.gen.d.ts +35 -0
  73. package/dist/components/generated/pb/decentraland/sdk/components/ui_transform.gen.js +90 -0
  74. package/dist/components/index.d.ts +11 -11
  75. package/dist/components/index.js +11 -11
  76. package/dist/components/types.d.ts +2 -3
  77. package/dist/engine/index.js +0 -10
  78. package/dist/engine/input.d.ts +6 -0
  79. package/dist/engine/input.js +7 -1
  80. package/dist/engine/types.d.ts +0 -7
  81. package/dist/index.d.ts +5 -6
  82. package/dist/index.js +3 -4
  83. package/dist/runtime/initialization/index.d.ts +0 -7
  84. package/dist/runtime/initialization/index.js +0 -6
  85. package/dist/systems/crdt/index.d.ts +0 -1
  86. package/dist/systems/crdt/index.js +5 -17
  87. package/dist/systems/events.d.ts +100 -1
  88. package/dist/systems/events.js +143 -65
  89. package/dist-cjs/components/extended/AvatarEquippedData.d.ts +10 -0
  90. package/dist-cjs/components/extended/AvatarEquippedData.js +19 -0
  91. package/dist-cjs/components/extended/AvatarShape.d.ts +10 -0
  92. package/dist-cjs/components/extended/AvatarShape.js +19 -0
  93. package/dist-cjs/components/extended/MeshCollider.d.ts +8 -0
  94. package/dist-cjs/components/extended/MeshCollider.js +6 -0
  95. package/dist-cjs/components/extended/MeshRenderer.d.ts +8 -0
  96. package/dist-cjs/components/extended/MeshRenderer.js +5 -0
  97. package/dist-cjs/components/extended/Tween.d.ts +5 -94
  98. package/dist-cjs/components/extended/Tween.js +1 -119
  99. package/dist-cjs/components/generated/CameraLayer.gen.d.ts +1 -0
  100. package/dist-cjs/components/generated/CameraLayer.gen.js +28 -0
  101. package/dist-cjs/components/generated/CameraLayers.gen.d.ts +1 -0
  102. package/dist-cjs/components/generated/CameraLayers.gen.js +28 -0
  103. package/dist-cjs/components/generated/GlobalLight.gen.d.ts +1 -0
  104. package/dist-cjs/components/generated/GlobalLight.gen.js +28 -0
  105. package/dist-cjs/components/generated/GltfNode.gen.d.ts +1 -0
  106. package/dist-cjs/components/generated/GltfNode.gen.js +28 -0
  107. package/dist-cjs/components/generated/GltfNodeState.gen.d.ts +1 -0
  108. package/dist-cjs/components/generated/GltfNodeState.gen.js +28 -0
  109. package/dist-cjs/components/generated/TextureCamera.gen.d.ts +1 -0
  110. package/dist-cjs/components/generated/TextureCamera.gen.js +28 -0
  111. package/dist-cjs/components/generated/UiCanvas.gen.d.ts +1 -0
  112. package/dist-cjs/components/generated/UiCanvas.gen.js +28 -0
  113. package/dist-cjs/components/generated/UiScrollResult.gen.d.ts +1 -0
  114. package/dist-cjs/components/generated/UiScrollResult.gen.js +28 -0
  115. package/dist-cjs/components/generated/component-names.gen.js +8 -0
  116. package/dist-cjs/components/generated/global.gen.d.ts +17 -1
  117. package/dist-cjs/components/generated/global.gen.js +10 -1
  118. package/dist-cjs/components/generated/index.gen.d.ts +34 -2
  119. package/dist-cjs/components/generated/index.gen.js +52 -6
  120. package/dist-cjs/components/generated/pb/decentraland/common/texture.gen.d.ts +20 -0
  121. package/dist-cjs/components/generated/pb/decentraland/common/texture.gen.js +66 -1
  122. package/dist-cjs/components/generated/pb/decentraland/sdk/components/avatar_equipped_data.gen.d.ts +2 -0
  123. package/dist-cjs/components/generated/pb/decentraland/sdk/components/avatar_equipped_data.gen.js +10 -1
  124. package/dist-cjs/components/generated/pb/decentraland/sdk/components/avatar_modifier_area.gen.d.ts +43 -0
  125. package/dist-cjs/components/generated/pb/decentraland/sdk/components/avatar_modifier_area.gen.js +152 -2
  126. package/dist-cjs/components/generated/pb/decentraland/sdk/components/avatar_shape.gen.d.ts +2 -0
  127. package/dist-cjs/components/generated/pb/decentraland/sdk/components/avatar_shape.gen.js +10 -0
  128. package/dist-cjs/components/generated/pb/decentraland/sdk/components/camera_layer.gen.d.ts +30 -0
  129. package/dist-cjs/components/generated/pb/decentraland/sdk/components/camera_layer.gen.js +110 -0
  130. package/dist-cjs/components/generated/pb/decentraland/sdk/components/camera_layers.gen.d.ts +14 -0
  131. package/dist-cjs/components/generated/pb/decentraland/sdk/components/camera_layers.gen.js +56 -0
  132. package/dist-cjs/components/generated/pb/decentraland/sdk/components/camera_mode_area.gen.d.ts +37 -1
  133. package/dist-cjs/components/generated/pb/decentraland/sdk/components/camera_mode_area.gen.js +120 -2
  134. package/dist-cjs/components/generated/pb/decentraland/sdk/components/common/input_action.gen.d.ts +4 -1
  135. package/dist-cjs/components/generated/pb/decentraland/sdk/components/common/input_action.gen.js +3 -0
  136. package/dist-cjs/components/generated/pb/decentraland/sdk/components/global_light.gen.d.ts +34 -0
  137. package/dist-cjs/components/generated/pb/decentraland/sdk/components/global_light.gen.js +67 -0
  138. package/dist-cjs/components/generated/pb/decentraland/sdk/components/gltf_container_loading_state.gen.d.ts +19 -0
  139. package/dist-cjs/components/generated/pb/decentraland/sdk/components/gltf_container_loading_state.gen.js +46 -1
  140. package/dist-cjs/components/generated/pb/decentraland/sdk/components/gltf_node.gen.d.ts +50 -0
  141. package/dist-cjs/components/generated/pb/decentraland/sdk/components/gltf_node.gen.js +47 -0
  142. package/dist-cjs/components/generated/pb/decentraland/sdk/components/gltf_node_state.gen.d.ts +27 -0
  143. package/dist-cjs/components/generated/pb/decentraland/sdk/components/gltf_node_state.gen.js +65 -0
  144. package/dist-cjs/components/generated/pb/decentraland/sdk/components/material.gen.d.ts +22 -0
  145. package/dist-cjs/components/generated/pb/decentraland/sdk/components/material.gen.js +58 -2
  146. package/dist-cjs/components/generated/pb/decentraland/sdk/components/mesh_collider.gen.d.ts +20 -0
  147. package/dist-cjs/components/generated/pb/decentraland/sdk/components/mesh_collider.gen.js +57 -1
  148. package/dist-cjs/components/generated/pb/decentraland/sdk/components/mesh_renderer.gen.d.ts +21 -3
  149. package/dist-cjs/components/generated/pb/decentraland/sdk/components/mesh_renderer.gen.js +57 -1
  150. package/dist-cjs/components/generated/pb/decentraland/sdk/components/primary_pointer_info.gen.d.ts +8 -2
  151. package/dist-cjs/components/generated/pb/decentraland/sdk/components/primary_pointer_info.gen.js +3 -0
  152. package/dist-cjs/components/generated/pb/decentraland/sdk/components/texture_camera.gen.d.ts +74 -0
  153. package/dist-cjs/components/generated/pb/decentraland/sdk/components/texture_camera.gen.js +197 -0
  154. package/dist-cjs/components/generated/pb/decentraland/sdk/components/ui_canvas.gen.d.ts +19 -0
  155. package/dist-cjs/components/generated/pb/decentraland/sdk/components/ui_canvas.gen.js +66 -0
  156. package/dist-cjs/components/generated/pb/decentraland/sdk/components/ui_scroll_result.gen.d.ts +15 -0
  157. package/dist-cjs/components/generated/pb/decentraland/sdk/components/ui_scroll_result.gen.js +48 -0
  158. package/dist-cjs/components/generated/pb/decentraland/sdk/components/ui_text.gen.d.ts +4 -0
  159. package/dist-cjs/components/generated/pb/decentraland/sdk/components/ui_text.gen.js +20 -0
  160. package/dist-cjs/components/generated/pb/decentraland/sdk/components/ui_transform.gen.d.ts +35 -0
  161. package/dist-cjs/components/generated/pb/decentraland/sdk/components/ui_transform.gen.js +91 -1
  162. package/dist-cjs/components/index.d.ts +11 -11
  163. package/dist-cjs/components/index.js +15 -15
  164. package/dist-cjs/components/types.d.ts +2 -3
  165. package/dist-cjs/engine/index.js +0 -10
  166. package/dist-cjs/engine/input.d.ts +6 -0
  167. package/dist-cjs/engine/input.js +7 -1
  168. package/dist-cjs/engine/types.d.ts +0 -7
  169. package/dist-cjs/index.d.ts +5 -6
  170. package/dist-cjs/index.js +4 -5
  171. package/dist-cjs/runtime/initialization/index.d.ts +0 -7
  172. package/dist-cjs/runtime/initialization/index.js +1 -7
  173. package/dist-cjs/systems/crdt/index.d.ts +0 -1
  174. package/dist-cjs/systems/crdt/index.js +6 -18
  175. package/dist-cjs/systems/events.d.ts +100 -1
  176. package/dist-cjs/systems/events.js +143 -65
  177. package/package.json +2 -2
  178. package/dist/components/extended/TriggerArea.d.ts +0 -22
  179. package/dist/components/extended/TriggerArea.js +0 -27
  180. package/dist/components/manual/Tags.d.ts +0 -34
  181. package/dist/components/manual/Tags.js +0 -37
  182. package/dist/systems/triggerArea.d.ts +0 -50
  183. package/dist/systems/triggerArea.js +0 -113
  184. package/dist-cjs/components/extended/TriggerArea.d.ts +0 -22
  185. package/dist-cjs/components/extended/TriggerArea.js +0 -31
  186. package/dist-cjs/components/manual/Tags.d.ts +0 -34
  187. package/dist-cjs/components/manual/Tags.js +0 -39
  188. package/dist-cjs/systems/triggerArea.d.ts +0 -50
  189. package/dist-cjs/systems/triggerArea.js +0 -140
@@ -1,113 +0,0 @@
1
- import * as components from '../components';
2
- import { EntityState } from '../engine/entity';
3
- /**
4
- * @internal
5
- */
6
- export function createTriggerAreaEventsSystem(engine) {
7
- const triggerAreaResultComponent = components.TriggerAreaResult(engine);
8
- const entitiesMap = new Map();
9
- function hasCallbacksMap(entity) {
10
- return entitiesMap.has(entity) && entitiesMap.get(entity) !== undefined;
11
- }
12
- function addEntityCallback(entity, triggerType, callback) {
13
- if (hasCallbacksMap(entity)) {
14
- entitiesMap.get(entity).triggerCallbackMap.set(triggerType, callback);
15
- }
16
- else {
17
- entitiesMap.set(entity, {
18
- triggerCallbackMap: new Map([[triggerType, callback]]),
19
- lastConsumedTimestamp: -1
20
- });
21
- }
22
- }
23
- function removeEntityCallback(entity, triggerType) {
24
- if (!entitiesMap.has(entity) || !entitiesMap.get(entity).triggerCallbackMap.has(triggerType))
25
- return;
26
- const triggerCallbackMap = entitiesMap.get(entity).triggerCallbackMap;
27
- triggerCallbackMap.delete(triggerType);
28
- // Remove entity if no more trigger callbacks are registered
29
- if (triggerCallbackMap.size === 0)
30
- entitiesMap.delete(entity);
31
- }
32
- function onTriggerEnter(entity, cb) {
33
- addEntityCallback(entity, 0 /* TriggerAreaEventType.TAET_ENTER */, cb);
34
- }
35
- function removeOnTriggerEnter(entity) {
36
- removeEntityCallback(entity, 0 /* TriggerAreaEventType.TAET_ENTER */);
37
- }
38
- function onTriggerStay(entity, cb) {
39
- addEntityCallback(entity, 1 /* TriggerAreaEventType.TAET_STAY */, cb);
40
- }
41
- function removeOnTriggerStay(entity) {
42
- removeEntityCallback(entity, 1 /* TriggerAreaEventType.TAET_STAY */);
43
- }
44
- function onTriggerExit(entity, cb) {
45
- addEntityCallback(entity, 2 /* TriggerAreaEventType.TAET_EXIT */, cb);
46
- }
47
- function removeOnTriggerExit(entity) {
48
- removeEntityCallback(entity, 2 /* TriggerAreaEventType.TAET_EXIT */);
49
- }
50
- engine.addSystem(function TriggerAreaResultSystem() {
51
- const garbageEntries = [];
52
- for (const [entity, data] of entitiesMap) {
53
- if (engine.getEntityState(entity) === EntityState.Removed) {
54
- garbageEntries.push(entity);
55
- continue;
56
- }
57
- const result = triggerAreaResultComponent.get(entity);
58
- // The Explorer may be taking time before the result component is put
59
- if (result.size === 0)
60
- continue;
61
- const values = Array.from(result.values());
62
- // determine starting index for new values (more than one could be added between System updates)
63
- // search backwards to find the anchor at lastConsumedTimestamp
64
- let startIndex = 0;
65
- if (data.lastConsumedTimestamp >= 0) {
66
- const newestTimestamp = values[values.length - 1].timestamp;
67
- // if nothing new, skip processing
68
- if (newestTimestamp <= data.lastConsumedTimestamp) {
69
- continue;
70
- }
71
- // Find index of value with the lastConsumedTimestamp
72
- let i = values.length - 2;
73
- while (i >= 0 && values[i].timestamp > data.lastConsumedTimestamp)
74
- i--;
75
- // Mark the following value index as the starting point to trigger all the new value callbacks
76
- startIndex = i + 1;
77
- }
78
- if (startIndex >= values.length)
79
- continue;
80
- // Trigger callbacks for all the new values
81
- for (let i = startIndex; i < values.length; i++) {
82
- switch (values[i].eventType) {
83
- case 0 /* TriggerAreaEventType.TAET_ENTER */:
84
- if (!data.triggerCallbackMap.has(0 /* TriggerAreaEventType.TAET_ENTER */))
85
- continue;
86
- data.triggerCallbackMap.get(0 /* TriggerAreaEventType.TAET_ENTER */)(values[i]);
87
- break;
88
- case 1 /* TriggerAreaEventType.TAET_STAY */:
89
- if (!data.triggerCallbackMap.has(1 /* TriggerAreaEventType.TAET_STAY */))
90
- continue;
91
- data.triggerCallbackMap.get(1 /* TriggerAreaEventType.TAET_STAY */)(values[i]);
92
- break;
93
- case 2 /* TriggerAreaEventType.TAET_EXIT */:
94
- if (!data.triggerCallbackMap.has(2 /* TriggerAreaEventType.TAET_EXIT */))
95
- continue;
96
- data.triggerCallbackMap.get(2 /* TriggerAreaEventType.TAET_EXIT */)(values[i]);
97
- break;
98
- }
99
- }
100
- data.lastConsumedTimestamp = values[values.length - 1].timestamp;
101
- }
102
- // Clean up garbage entries
103
- garbageEntries.forEach((garbageEntity) => entitiesMap.delete(garbageEntity));
104
- });
105
- return {
106
- onTriggerEnter,
107
- removeOnTriggerEnter,
108
- onTriggerStay,
109
- removeOnTriggerStay,
110
- onTriggerExit,
111
- removeOnTriggerExit
112
- };
113
- }
@@ -1,22 +0,0 @@
1
- import { Entity, IEngine, LastWriteWinElementSetComponentDefinition } from '../../engine';
2
- import { ColliderLayer, PBTriggerArea } from '../generated/index.gen';
3
- /**
4
- * @public
5
- */
6
- export interface TriggerAreaComponentDefinitionExtended extends LastWriteWinElementSetComponentDefinition<PBTriggerArea> {
7
- /**
8
- * @public
9
- * Set a box in the MeshCollider component
10
- * @param entity - entity to create or replace the TriggerArea component
11
- * @param collisionMask - the collision layers mask for the trigger to react, default: Player
12
- */
13
- setBox(entity: Entity, collisionMask?: ColliderLayer | ColliderLayer[]): void;
14
- /**
15
- * @public
16
- * Set a sphere in the MeshCollider component
17
- * @param entity - entity to create or replace the TriggerArea component
18
- * @param collisionMask - the collision layers mask for the trigger to react, default: Player
19
- */
20
- setSphere(entity: Entity, collisionMask?: ColliderLayer | ColliderLayer[]): void;
21
- }
22
- export declare function defineTriggerAreaComponent(engine: Pick<IEngine, 'defineComponentFromSchema'>): TriggerAreaComponentDefinitionExtended;
@@ -1,31 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.defineTriggerAreaComponent = void 0;
4
- const index_gen_1 = require("../generated/index.gen");
5
- function defineTriggerAreaComponent(engine) {
6
- const theComponent = (0, index_gen_1.TriggerArea)(engine);
7
- function getCollisionMask(layers) {
8
- if (Array.isArray(layers)) {
9
- return layers.map((item) => item).reduce((prev, item) => prev | item, 0);
10
- }
11
- else if (layers) {
12
- return layers;
13
- }
14
- }
15
- return {
16
- ...theComponent,
17
- setBox(entity, collisionMask) {
18
- theComponent.createOrReplace(entity, {
19
- mesh: 0 /* TriggerAreaMeshType.TAMT_BOX */,
20
- collisionMask: getCollisionMask(collisionMask)
21
- });
22
- },
23
- setSphere(entity, collisionMask) {
24
- theComponent.createOrReplace(entity, {
25
- mesh: 1 /* TriggerAreaMeshType.TAMT_SPHERE */,
26
- collisionMask: getCollisionMask(collisionMask)
27
- });
28
- }
29
- };
30
- }
31
- exports.defineTriggerAreaComponent = defineTriggerAreaComponent;
@@ -1,34 +0,0 @@
1
- import { IEngine, LastWriteWinElementSetComponentDefinition } from '../../engine/types';
2
- import { Entity } from '../../engine';
3
- export interface TagsType {
4
- tags: string[];
5
- }
6
- export interface TagsComponentDefinitionExtended extends LastWriteWinElementSetComponentDefinition<TagsType> {
7
- /**
8
- * @public
9
- *
10
- * Add a tag to the entity's Tags component or create the component if it doesn't exist and add the tag
11
- * @param entity - entity to add the tag to
12
- * @param tagName - the tag name to add
13
- * @returns true
14
- */
15
- add(entity: Entity, tagName: string): boolean;
16
- /**
17
- * @public
18
- *
19
- * Remove a tag from the entity's Tags component
20
- * @param entity - entity to remove the tag from
21
- * @param tagName - the tag name to remove
22
- * @returns true if successful, false if the entity doesn't have a Tags component or the tag doesn't exist
23
- */
24
- remove(entity: Entity, tagName: string): boolean;
25
- }
26
- /**
27
- * @public
28
- *
29
- * Define the Tags component
30
- * @param engine - the engine to define the component on
31
- * @returns the Tags component definition
32
- */
33
- declare function defineTagsComponent(engine: Pick<IEngine, 'defineComponent'>): TagsComponentDefinitionExtended;
34
- export default defineTagsComponent;
@@ -1,39 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const schemas_1 = require("../../schemas");
4
- /**
5
- * @public
6
- *
7
- * Define the Tags component
8
- * @param engine - the engine to define the component on
9
- * @returns the Tags component definition
10
- */
11
- function defineTagsComponent(engine) {
12
- const Tags = engine.defineComponent('core-schema::Tags', {
13
- tags: schemas_1.Schemas.Array(schemas_1.Schemas.String)
14
- });
15
- return {
16
- ...Tags,
17
- add(entity, tagName) {
18
- const tagsComponent = Tags.getMutableOrNull(entity);
19
- if (tagsComponent) {
20
- tagsComponent.tags.push(tagName);
21
- }
22
- else {
23
- Tags.createOrReplace(entity, { tags: [tagName] });
24
- }
25
- return true;
26
- },
27
- remove(entity, tagName) {
28
- const tagsComponent = Tags.getMutableOrNull(entity);
29
- if (!tagsComponent || !tagsComponent.tags)
30
- return false;
31
- const newTags = tagsComponent.tags.filter((tag) => tag !== tagName);
32
- if (newTags.length === tagsComponent.tags.length)
33
- return false;
34
- tagsComponent.tags = newTags;
35
- return true;
36
- }
37
- };
38
- }
39
- exports.default = defineTagsComponent;
@@ -1,50 +0,0 @@
1
- import { DeepReadonlyObject, Entity } from '../engine';
2
- import { PBTriggerAreaResult } from '../components';
3
- /**
4
- * @public
5
- */
6
- export type TriggerAreaEventSystemCallback = (result: DeepReadonlyObject<PBTriggerAreaResult>) => void;
7
- /**
8
- * @public
9
- */
10
- export interface TriggerAreaEventsSystem {
11
- /**
12
- * @public
13
- * Execute callback when an entity enters the Trigger Area
14
- * @param entity - The entity that already has the TriggerArea component
15
- * @param cb - Function to execute the 'Enter' type of result is detected
16
- */
17
- onTriggerEnter(entity: Entity, cb: TriggerAreaEventSystemCallback): void;
18
- /**
19
- * @public
20
- * Remove the callback for Trigger Area 'Enter' type of result
21
- * @param entity - Entity where the Trigger Area was attached
22
- */
23
- removeOnTriggerEnter(entity: Entity): void;
24
- /**
25
- * @public
26
- * Execute callback when an entity stays in the Trigger Area
27
- * @param entity - The entity that already has the TriggerArea component
28
- * @param cb - Function to execute the 'Stay' type of result is detected
29
- */
30
- onTriggerStay(entity: Entity, cb: TriggerAreaEventSystemCallback): void;
31
- /**
32
- * @public
33
- * Remove the callback for Trigger Area 'Stay' type of result
34
- * @param entity - Entity where the Trigger Area was attached
35
- */
36
- removeOnTriggerStay(entity: Entity): void;
37
- /**
38
- * @public
39
- * Execute callback when an entity exits the Trigger Area
40
- * @param entity - The entity that already has the TriggerArea component
41
- * @param cb - Function to execute the 'Exit' type of result is detected
42
- */
43
- onTriggerExit(entity: Entity, cb: TriggerAreaEventSystemCallback): void;
44
- /**
45
- * @public
46
- * Remove the callback for Trigger Area 'Exit' type of result
47
- * @param entity - Entity where the Trigger Area was attached
48
- */
49
- removeOnTriggerExit(entity: Entity): void;
50
- }
@@ -1,140 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || function (mod) {
19
- if (mod && mod.__esModule) return mod;
20
- var result = {};
21
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
- __setModuleDefault(result, mod);
23
- return result;
24
- };
25
- Object.defineProperty(exports, "__esModule", { value: true });
26
- exports.createTriggerAreaEventsSystem = void 0;
27
- const components = __importStar(require("../components"));
28
- const entity_1 = require("../engine/entity");
29
- /**
30
- * @internal
31
- */
32
- function createTriggerAreaEventsSystem(engine) {
33
- const triggerAreaResultComponent = components.TriggerAreaResult(engine);
34
- const entitiesMap = new Map();
35
- function hasCallbacksMap(entity) {
36
- return entitiesMap.has(entity) && entitiesMap.get(entity) !== undefined;
37
- }
38
- function addEntityCallback(entity, triggerType, callback) {
39
- if (hasCallbacksMap(entity)) {
40
- entitiesMap.get(entity).triggerCallbackMap.set(triggerType, callback);
41
- }
42
- else {
43
- entitiesMap.set(entity, {
44
- triggerCallbackMap: new Map([[triggerType, callback]]),
45
- lastConsumedTimestamp: -1
46
- });
47
- }
48
- }
49
- function removeEntityCallback(entity, triggerType) {
50
- if (!entitiesMap.has(entity) || !entitiesMap.get(entity).triggerCallbackMap.has(triggerType))
51
- return;
52
- const triggerCallbackMap = entitiesMap.get(entity).triggerCallbackMap;
53
- triggerCallbackMap.delete(triggerType);
54
- // Remove entity if no more trigger callbacks are registered
55
- if (triggerCallbackMap.size === 0)
56
- entitiesMap.delete(entity);
57
- }
58
- function onTriggerEnter(entity, cb) {
59
- addEntityCallback(entity, 0 /* TriggerAreaEventType.TAET_ENTER */, cb);
60
- }
61
- function removeOnTriggerEnter(entity) {
62
- removeEntityCallback(entity, 0 /* TriggerAreaEventType.TAET_ENTER */);
63
- }
64
- function onTriggerStay(entity, cb) {
65
- addEntityCallback(entity, 1 /* TriggerAreaEventType.TAET_STAY */, cb);
66
- }
67
- function removeOnTriggerStay(entity) {
68
- removeEntityCallback(entity, 1 /* TriggerAreaEventType.TAET_STAY */);
69
- }
70
- function onTriggerExit(entity, cb) {
71
- addEntityCallback(entity, 2 /* TriggerAreaEventType.TAET_EXIT */, cb);
72
- }
73
- function removeOnTriggerExit(entity) {
74
- removeEntityCallback(entity, 2 /* TriggerAreaEventType.TAET_EXIT */);
75
- }
76
- engine.addSystem(function TriggerAreaResultSystem() {
77
- const garbageEntries = [];
78
- for (const [entity, data] of entitiesMap) {
79
- if (engine.getEntityState(entity) === entity_1.EntityState.Removed) {
80
- garbageEntries.push(entity);
81
- continue;
82
- }
83
- const result = triggerAreaResultComponent.get(entity);
84
- // The Explorer may be taking time before the result component is put
85
- if (result.size === 0)
86
- continue;
87
- const values = Array.from(result.values());
88
- // determine starting index for new values (more than one could be added between System updates)
89
- // search backwards to find the anchor at lastConsumedTimestamp
90
- let startIndex = 0;
91
- if (data.lastConsumedTimestamp >= 0) {
92
- const newestTimestamp = values[values.length - 1].timestamp;
93
- // if nothing new, skip processing
94
- if (newestTimestamp <= data.lastConsumedTimestamp) {
95
- continue;
96
- }
97
- // Find index of value with the lastConsumedTimestamp
98
- let i = values.length - 2;
99
- while (i >= 0 && values[i].timestamp > data.lastConsumedTimestamp)
100
- i--;
101
- // Mark the following value index as the starting point to trigger all the new value callbacks
102
- startIndex = i + 1;
103
- }
104
- if (startIndex >= values.length)
105
- continue;
106
- // Trigger callbacks for all the new values
107
- for (let i = startIndex; i < values.length; i++) {
108
- switch (values[i].eventType) {
109
- case 0 /* TriggerAreaEventType.TAET_ENTER */:
110
- if (!data.triggerCallbackMap.has(0 /* TriggerAreaEventType.TAET_ENTER */))
111
- continue;
112
- data.triggerCallbackMap.get(0 /* TriggerAreaEventType.TAET_ENTER */)(values[i]);
113
- break;
114
- case 1 /* TriggerAreaEventType.TAET_STAY */:
115
- if (!data.triggerCallbackMap.has(1 /* TriggerAreaEventType.TAET_STAY */))
116
- continue;
117
- data.triggerCallbackMap.get(1 /* TriggerAreaEventType.TAET_STAY */)(values[i]);
118
- break;
119
- case 2 /* TriggerAreaEventType.TAET_EXIT */:
120
- if (!data.triggerCallbackMap.has(2 /* TriggerAreaEventType.TAET_EXIT */))
121
- continue;
122
- data.triggerCallbackMap.get(2 /* TriggerAreaEventType.TAET_EXIT */)(values[i]);
123
- break;
124
- }
125
- }
126
- data.lastConsumedTimestamp = values[values.length - 1].timestamp;
127
- }
128
- // Clean up garbage entries
129
- garbageEntries.forEach((garbageEntity) => entitiesMap.delete(garbageEntity));
130
- });
131
- return {
132
- onTriggerEnter,
133
- removeOnTriggerEnter,
134
- onTriggerStay,
135
- removeOnTriggerStay,
136
- onTriggerExit,
137
- removeOnTriggerExit
138
- };
139
- }
140
- exports.createTriggerAreaEventsSystem = createTriggerAreaEventsSystem;