@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.
- package/dist/components/extended/AvatarEquippedData.d.ts +10 -0
- package/dist/components/extended/AvatarEquippedData.js +15 -0
- package/dist/components/extended/AvatarShape.d.ts +10 -0
- package/dist/components/extended/AvatarShape.js +15 -0
- package/dist/components/extended/MeshCollider.d.ts +8 -0
- package/dist/components/extended/MeshCollider.js +6 -0
- package/dist/components/extended/MeshRenderer.d.ts +8 -0
- package/dist/components/extended/MeshRenderer.js +5 -0
- package/dist/components/extended/Tween.d.ts +5 -94
- package/dist/components/extended/Tween.js +1 -119
- package/dist/components/generated/CameraLayer.gen.d.ts +1 -0
- package/dist/components/generated/CameraLayer.gen.js +25 -0
- package/dist/components/generated/CameraLayers.gen.d.ts +1 -0
- package/dist/components/generated/CameraLayers.gen.js +25 -0
- package/dist/components/generated/GlobalLight.gen.d.ts +1 -0
- package/dist/components/generated/GlobalLight.gen.js +25 -0
- package/dist/components/generated/GltfNode.gen.d.ts +1 -0
- package/dist/components/generated/GltfNode.gen.js +25 -0
- package/dist/components/generated/GltfNodeState.gen.d.ts +1 -0
- package/dist/components/generated/GltfNodeState.gen.js +25 -0
- package/dist/components/generated/TextureCamera.gen.d.ts +1 -0
- package/dist/components/generated/TextureCamera.gen.js +25 -0
- package/dist/components/generated/UiCanvas.gen.d.ts +1 -0
- package/dist/components/generated/UiCanvas.gen.js +25 -0
- package/dist/components/generated/UiScrollResult.gen.d.ts +1 -0
- package/dist/components/generated/UiScrollResult.gen.js +25 -0
- package/dist/components/generated/component-names.gen.js +8 -0
- package/dist/components/generated/global.gen.d.ts +17 -1
- package/dist/components/generated/global.gen.js +8 -0
- package/dist/components/generated/index.gen.d.ts +34 -2
- package/dist/components/generated/index.gen.js +42 -4
- package/dist/components/generated/pb/decentraland/common/texture.gen.d.ts +20 -0
- package/dist/components/generated/pb/decentraland/common/texture.gen.js +65 -0
- package/dist/components/generated/pb/decentraland/sdk/components/avatar_equipped_data.gen.d.ts +2 -0
- package/dist/components/generated/pb/decentraland/sdk/components/avatar_equipped_data.gen.js +10 -1
- package/dist/components/generated/pb/decentraland/sdk/components/avatar_modifier_area.gen.d.ts +43 -0
- package/dist/components/generated/pb/decentraland/sdk/components/avatar_modifier_area.gen.js +151 -1
- package/dist/components/generated/pb/decentraland/sdk/components/avatar_shape.gen.d.ts +2 -0
- package/dist/components/generated/pb/decentraland/sdk/components/avatar_shape.gen.js +10 -0
- package/dist/components/generated/pb/decentraland/sdk/components/camera_layer.gen.d.ts +30 -0
- package/dist/components/generated/pb/decentraland/sdk/components/camera_layer.gen.js +104 -0
- package/dist/components/generated/pb/decentraland/sdk/components/camera_layers.gen.d.ts +14 -0
- package/dist/components/generated/pb/decentraland/sdk/components/camera_layers.gen.js +50 -0
- package/dist/components/generated/pb/decentraland/sdk/components/camera_mode_area.gen.d.ts +37 -1
- package/dist/components/generated/pb/decentraland/sdk/components/camera_mode_area.gen.js +119 -1
- package/dist/components/generated/pb/decentraland/sdk/components/common/input_action.gen.d.ts +4 -1
- package/dist/components/generated/pb/decentraland/sdk/components/common/input_action.gen.js +3 -0
- package/dist/components/generated/pb/decentraland/sdk/components/global_light.gen.d.ts +34 -0
- package/dist/components/generated/pb/decentraland/sdk/components/global_light.gen.js +61 -0
- package/dist/components/generated/pb/decentraland/sdk/components/gltf_container_loading_state.gen.d.ts +19 -0
- package/dist/components/generated/pb/decentraland/sdk/components/gltf_container_loading_state.gen.js +46 -1
- package/dist/components/generated/pb/decentraland/sdk/components/gltf_node.gen.d.ts +50 -0
- package/dist/components/generated/pb/decentraland/sdk/components/gltf_node.gen.js +41 -0
- package/dist/components/generated/pb/decentraland/sdk/components/gltf_node_state.gen.d.ts +27 -0
- package/dist/components/generated/pb/decentraland/sdk/components/gltf_node_state.gen.js +59 -0
- package/dist/components/generated/pb/decentraland/sdk/components/material.gen.d.ts +22 -0
- package/dist/components/generated/pb/decentraland/sdk/components/material.gen.js +57 -1
- package/dist/components/generated/pb/decentraland/sdk/components/mesh_collider.gen.d.ts +20 -0
- package/dist/components/generated/pb/decentraland/sdk/components/mesh_collider.gen.js +56 -0
- package/dist/components/generated/pb/decentraland/sdk/components/mesh_renderer.gen.d.ts +21 -3
- package/dist/components/generated/pb/decentraland/sdk/components/mesh_renderer.gen.js +56 -0
- package/dist/components/generated/pb/decentraland/sdk/components/primary_pointer_info.gen.d.ts +8 -2
- package/dist/components/generated/pb/decentraland/sdk/components/primary_pointer_info.gen.js +3 -0
- package/dist/components/generated/pb/decentraland/sdk/components/texture_camera.gen.d.ts +74 -0
- package/dist/components/generated/pb/decentraland/sdk/components/texture_camera.gen.js +191 -0
- package/dist/components/generated/pb/decentraland/sdk/components/ui_canvas.gen.d.ts +19 -0
- package/dist/components/generated/pb/decentraland/sdk/components/ui_canvas.gen.js +60 -0
- package/dist/components/generated/pb/decentraland/sdk/components/ui_scroll_result.gen.d.ts +15 -0
- package/dist/components/generated/pb/decentraland/sdk/components/ui_scroll_result.gen.js +42 -0
- package/dist/components/generated/pb/decentraland/sdk/components/ui_text.gen.d.ts +4 -0
- package/dist/components/generated/pb/decentraland/sdk/components/ui_text.gen.js +20 -0
- package/dist/components/generated/pb/decentraland/sdk/components/ui_transform.gen.d.ts +35 -0
- package/dist/components/generated/pb/decentraland/sdk/components/ui_transform.gen.js +90 -0
- package/dist/components/index.d.ts +11 -11
- package/dist/components/index.js +11 -11
- package/dist/components/types.d.ts +2 -3
- package/dist/engine/index.js +0 -10
- package/dist/engine/input.d.ts +6 -0
- package/dist/engine/input.js +7 -1
- package/dist/engine/types.d.ts +0 -7
- package/dist/index.d.ts +5 -6
- package/dist/index.js +3 -4
- package/dist/runtime/initialization/index.d.ts +0 -7
- package/dist/runtime/initialization/index.js +0 -6
- package/dist/systems/crdt/index.d.ts +0 -1
- package/dist/systems/crdt/index.js +5 -17
- package/dist/systems/events.d.ts +100 -1
- package/dist/systems/events.js +143 -65
- package/dist-cjs/components/extended/AvatarEquippedData.d.ts +10 -0
- package/dist-cjs/components/extended/AvatarEquippedData.js +19 -0
- package/dist-cjs/components/extended/AvatarShape.d.ts +10 -0
- package/dist-cjs/components/extended/AvatarShape.js +19 -0
- package/dist-cjs/components/extended/MeshCollider.d.ts +8 -0
- package/dist-cjs/components/extended/MeshCollider.js +6 -0
- package/dist-cjs/components/extended/MeshRenderer.d.ts +8 -0
- package/dist-cjs/components/extended/MeshRenderer.js +5 -0
- package/dist-cjs/components/extended/Tween.d.ts +5 -94
- package/dist-cjs/components/extended/Tween.js +1 -119
- package/dist-cjs/components/generated/CameraLayer.gen.d.ts +1 -0
- package/dist-cjs/components/generated/CameraLayer.gen.js +28 -0
- package/dist-cjs/components/generated/CameraLayers.gen.d.ts +1 -0
- package/dist-cjs/components/generated/CameraLayers.gen.js +28 -0
- package/dist-cjs/components/generated/GlobalLight.gen.d.ts +1 -0
- package/dist-cjs/components/generated/GlobalLight.gen.js +28 -0
- package/dist-cjs/components/generated/GltfNode.gen.d.ts +1 -0
- package/dist-cjs/components/generated/GltfNode.gen.js +28 -0
- package/dist-cjs/components/generated/GltfNodeState.gen.d.ts +1 -0
- package/dist-cjs/components/generated/GltfNodeState.gen.js +28 -0
- package/dist-cjs/components/generated/TextureCamera.gen.d.ts +1 -0
- package/dist-cjs/components/generated/TextureCamera.gen.js +28 -0
- package/dist-cjs/components/generated/UiCanvas.gen.d.ts +1 -0
- package/dist-cjs/components/generated/UiCanvas.gen.js +28 -0
- package/dist-cjs/components/generated/UiScrollResult.gen.d.ts +1 -0
- package/dist-cjs/components/generated/UiScrollResult.gen.js +28 -0
- package/dist-cjs/components/generated/component-names.gen.js +8 -0
- package/dist-cjs/components/generated/global.gen.d.ts +17 -1
- package/dist-cjs/components/generated/global.gen.js +10 -1
- package/dist-cjs/components/generated/index.gen.d.ts +34 -2
- package/dist-cjs/components/generated/index.gen.js +52 -6
- package/dist-cjs/components/generated/pb/decentraland/common/texture.gen.d.ts +20 -0
- package/dist-cjs/components/generated/pb/decentraland/common/texture.gen.js +66 -1
- package/dist-cjs/components/generated/pb/decentraland/sdk/components/avatar_equipped_data.gen.d.ts +2 -0
- package/dist-cjs/components/generated/pb/decentraland/sdk/components/avatar_equipped_data.gen.js +10 -1
- package/dist-cjs/components/generated/pb/decentraland/sdk/components/avatar_modifier_area.gen.d.ts +43 -0
- package/dist-cjs/components/generated/pb/decentraland/sdk/components/avatar_modifier_area.gen.js +152 -2
- package/dist-cjs/components/generated/pb/decentraland/sdk/components/avatar_shape.gen.d.ts +2 -0
- package/dist-cjs/components/generated/pb/decentraland/sdk/components/avatar_shape.gen.js +10 -0
- package/dist-cjs/components/generated/pb/decentraland/sdk/components/camera_layer.gen.d.ts +30 -0
- package/dist-cjs/components/generated/pb/decentraland/sdk/components/camera_layer.gen.js +110 -0
- package/dist-cjs/components/generated/pb/decentraland/sdk/components/camera_layers.gen.d.ts +14 -0
- package/dist-cjs/components/generated/pb/decentraland/sdk/components/camera_layers.gen.js +56 -0
- package/dist-cjs/components/generated/pb/decentraland/sdk/components/camera_mode_area.gen.d.ts +37 -1
- package/dist-cjs/components/generated/pb/decentraland/sdk/components/camera_mode_area.gen.js +120 -2
- package/dist-cjs/components/generated/pb/decentraland/sdk/components/common/input_action.gen.d.ts +4 -1
- package/dist-cjs/components/generated/pb/decentraland/sdk/components/common/input_action.gen.js +3 -0
- package/dist-cjs/components/generated/pb/decentraland/sdk/components/global_light.gen.d.ts +34 -0
- package/dist-cjs/components/generated/pb/decentraland/sdk/components/global_light.gen.js +67 -0
- package/dist-cjs/components/generated/pb/decentraland/sdk/components/gltf_container_loading_state.gen.d.ts +19 -0
- package/dist-cjs/components/generated/pb/decentraland/sdk/components/gltf_container_loading_state.gen.js +46 -1
- package/dist-cjs/components/generated/pb/decentraland/sdk/components/gltf_node.gen.d.ts +50 -0
- package/dist-cjs/components/generated/pb/decentraland/sdk/components/gltf_node.gen.js +47 -0
- package/dist-cjs/components/generated/pb/decentraland/sdk/components/gltf_node_state.gen.d.ts +27 -0
- package/dist-cjs/components/generated/pb/decentraland/sdk/components/gltf_node_state.gen.js +65 -0
- package/dist-cjs/components/generated/pb/decentraland/sdk/components/material.gen.d.ts +22 -0
- package/dist-cjs/components/generated/pb/decentraland/sdk/components/material.gen.js +58 -2
- package/dist-cjs/components/generated/pb/decentraland/sdk/components/mesh_collider.gen.d.ts +20 -0
- package/dist-cjs/components/generated/pb/decentraland/sdk/components/mesh_collider.gen.js +57 -1
- package/dist-cjs/components/generated/pb/decentraland/sdk/components/mesh_renderer.gen.d.ts +21 -3
- package/dist-cjs/components/generated/pb/decentraland/sdk/components/mesh_renderer.gen.js +57 -1
- package/dist-cjs/components/generated/pb/decentraland/sdk/components/primary_pointer_info.gen.d.ts +8 -2
- package/dist-cjs/components/generated/pb/decentraland/sdk/components/primary_pointer_info.gen.js +3 -0
- package/dist-cjs/components/generated/pb/decentraland/sdk/components/texture_camera.gen.d.ts +74 -0
- package/dist-cjs/components/generated/pb/decentraland/sdk/components/texture_camera.gen.js +197 -0
- package/dist-cjs/components/generated/pb/decentraland/sdk/components/ui_canvas.gen.d.ts +19 -0
- package/dist-cjs/components/generated/pb/decentraland/sdk/components/ui_canvas.gen.js +66 -0
- package/dist-cjs/components/generated/pb/decentraland/sdk/components/ui_scroll_result.gen.d.ts +15 -0
- package/dist-cjs/components/generated/pb/decentraland/sdk/components/ui_scroll_result.gen.js +48 -0
- package/dist-cjs/components/generated/pb/decentraland/sdk/components/ui_text.gen.d.ts +4 -0
- package/dist-cjs/components/generated/pb/decentraland/sdk/components/ui_text.gen.js +20 -0
- package/dist-cjs/components/generated/pb/decentraland/sdk/components/ui_transform.gen.d.ts +35 -0
- package/dist-cjs/components/generated/pb/decentraland/sdk/components/ui_transform.gen.js +91 -1
- package/dist-cjs/components/index.d.ts +11 -11
- package/dist-cjs/components/index.js +15 -15
- package/dist-cjs/components/types.d.ts +2 -3
- package/dist-cjs/engine/index.js +0 -10
- package/dist-cjs/engine/input.d.ts +6 -0
- package/dist-cjs/engine/input.js +7 -1
- package/dist-cjs/engine/types.d.ts +0 -7
- package/dist-cjs/index.d.ts +5 -6
- package/dist-cjs/index.js +4 -5
- package/dist-cjs/runtime/initialization/index.d.ts +0 -7
- package/dist-cjs/runtime/initialization/index.js +1 -7
- package/dist-cjs/systems/crdt/index.d.ts +0 -1
- package/dist-cjs/systems/crdt/index.js +6 -18
- package/dist-cjs/systems/events.d.ts +100 -1
- package/dist-cjs/systems/events.js +143 -65
- package/package.json +2 -2
- package/dist/components/extended/TriggerArea.d.ts +0 -22
- package/dist/components/extended/TriggerArea.js +0 -27
- package/dist/components/manual/Tags.d.ts +0 -34
- package/dist/components/manual/Tags.js +0 -37
- package/dist/systems/triggerArea.d.ts +0 -50
- package/dist/systems/triggerArea.js +0 -113
- package/dist-cjs/components/extended/TriggerArea.d.ts +0 -22
- package/dist-cjs/components/extended/TriggerArea.js +0 -31
- package/dist-cjs/components/manual/Tags.d.ts +0 -34
- package/dist-cjs/components/manual/Tags.js +0 -39
- package/dist-cjs/systems/triggerArea.d.ts +0 -50
- 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;
|