@dcl/ecs 7.5.1-9299912306.commit-7629bda → 7.5.1-9349876127.commit-ca3ef96

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 (25) hide show
  1. package/dist/components/generated/pb/decentraland/sdk/components/avatar_modifier_area.gen.d.ts +0 -43
  2. package/dist/components/generated/pb/decentraland/sdk/components/avatar_modifier_area.gen.js +1 -151
  3. package/dist/components/generated/pb/decentraland/sdk/components/camera_mode_area.gen.d.ts +1 -37
  4. package/dist/components/generated/pb/decentraland/sdk/components/camera_mode_area.gen.js +1 -119
  5. package/dist/components/generated/pb/decentraland/sdk/components/ui_text.gen.d.ts +0 -6
  6. package/dist/components/generated/pb/decentraland/sdk/components/ui_text.gen.js +1 -37
  7. package/dist/components/generated/pb/decentraland/sdk/components/ui_transform.gen.d.ts +0 -2
  8. package/dist/components/generated/pb/decentraland/sdk/components/ui_transform.gen.js +0 -10
  9. package/dist/runtime/initialization/index.js +5 -0
  10. package/dist/systems/events.js +0 -1
  11. package/dist/systems/pointer-event-collider-checker.d.ts +8 -0
  12. package/dist/systems/pointer-event-collider-checker.js +45 -0
  13. package/dist-cjs/components/generated/pb/decentraland/sdk/components/avatar_modifier_area.gen.d.ts +0 -43
  14. package/dist-cjs/components/generated/pb/decentraland/sdk/components/avatar_modifier_area.gen.js +2 -152
  15. package/dist-cjs/components/generated/pb/decentraland/sdk/components/camera_mode_area.gen.d.ts +1 -37
  16. package/dist-cjs/components/generated/pb/decentraland/sdk/components/camera_mode_area.gen.js +2 -120
  17. package/dist-cjs/components/generated/pb/decentraland/sdk/components/ui_text.gen.d.ts +0 -6
  18. package/dist-cjs/components/generated/pb/decentraland/sdk/components/ui_text.gen.js +1 -37
  19. package/dist-cjs/components/generated/pb/decentraland/sdk/components/ui_transform.gen.d.ts +0 -2
  20. package/dist-cjs/components/generated/pb/decentraland/sdk/components/ui_transform.gen.js +0 -10
  21. package/dist-cjs/runtime/initialization/index.js +5 -0
  22. package/dist-cjs/systems/events.js +0 -1
  23. package/dist-cjs/systems/pointer-event-collider-checker.d.ts +8 -0
  24. package/dist-cjs/systems/pointer-event-collider-checker.js +72 -0
  25. package/package.json +2 -2
@@ -10,17 +10,6 @@ export declare const enum AvatarModifierType {
10
10
  /** AMT_DISABLE_PASSPORTS - selecting (e.g. clicking) an avatar will not bring up their profile. */
11
11
  AMT_DISABLE_PASSPORTS = 1
12
12
  }
13
- /**
14
- * @public
15
- */
16
- export declare const enum AvatarControlType {
17
- /** CCT_NONE - avatar cannot move */
18
- CCT_NONE = 0,
19
- /** CCT_RELATIVE - avatar moves relative to the camera origin */
20
- CCT_RELATIVE = 1,
21
- /** CCT_TANK - avatar moves like a tank: left/right rotate the player, forward/backward advance/retreat the player */
22
- CCT_TANK = 2
23
- }
24
13
  /**
25
14
  * The AvatarModifierArea component can be attached to an Entity to define a region of space where
26
15
  * avatar behavior changes.
@@ -45,31 +34,6 @@ export interface PBAvatarModifierArea {
45
34
  excludeIds: string[];
46
35
  /** list of modifiers to apply */
47
36
  modifiers: AvatarModifierType[];
48
- movementSettings?: AvatarMovementSettings | undefined;
49
- /** if true, the player will be considered inside the area when they are within 0.3m of the area. default true */
50
- useColliderRange?: boolean | undefined;
51
- }
52
- /**
53
- * @public
54
- */
55
- export interface AvatarMovementSettings {
56
- controlMode?: AvatarControlType | undefined;
57
- /** if not explicitly set, the following properties default to user's preference settings */
58
- runSpeed?: number | undefined;
59
- /** how fast the player gets up to speed or comes to rest. higher = more responsive */
60
- friction?: number | undefined;
61
- /** how fast the player accelerates vertically when not on a solid surface, in m/s. should normally be negative */
62
- gravity?: number | undefined;
63
- /** how high the player can jump, in meters. should normally be positive. gravity must have the same sign for jumping to be possible */
64
- jumpHeight?: number | undefined;
65
- /** max fall speed in m/s. should normally be negative */
66
- maxFallSpeed?: number | undefined;
67
- /** speed the player turns in tank mode, in radians/s */
68
- turnSpeed?: number | undefined;
69
- /** speed the player walks at, in m/s */
70
- walkSpeed?: number | undefined;
71
- /** whether to allow player to move at a slower speed (e.g. with a walk-key or when using a gamepad/joystick). defaults to true */
72
- allowWeightedMovement?: boolean | undefined;
73
37
  }
74
38
  /**
75
39
  * @public
@@ -78,10 +42,3 @@ export declare namespace PBAvatarModifierArea {
78
42
  function encode(message: PBAvatarModifierArea, writer?: _m0.Writer): _m0.Writer;
79
43
  function decode(input: _m0.Reader | Uint8Array, length?: number): PBAvatarModifierArea;
80
44
  }
81
- /**
82
- * @public
83
- */
84
- export declare namespace AvatarMovementSettings {
85
- function encode(message: AvatarMovementSettings, writer?: _m0.Writer): _m0.Writer;
86
- function decode(input: _m0.Reader | Uint8Array, length?: number): AvatarMovementSettings;
87
- }
@@ -13,20 +13,8 @@ export var AvatarModifierType;
13
13
  /** AMT_DISABLE_PASSPORTS - selecting (e.g. clicking) an avatar will not bring up their profile. */
14
14
  AvatarModifierType[AvatarModifierType["AMT_DISABLE_PASSPORTS"] = 1] = "AMT_DISABLE_PASSPORTS";
15
15
  })(AvatarModifierType || (AvatarModifierType = {}));
16
- /**
17
- * @public
18
- */
19
- export var AvatarControlType;
20
- (function (AvatarControlType) {
21
- /** CCT_NONE - avatar cannot move */
22
- AvatarControlType[AvatarControlType["CCT_NONE"] = 0] = "CCT_NONE";
23
- /** CCT_RELATIVE - avatar moves relative to the camera origin */
24
- AvatarControlType[AvatarControlType["CCT_RELATIVE"] = 1] = "CCT_RELATIVE";
25
- /** CCT_TANK - avatar moves like a tank: left/right rotate the player, forward/backward advance/retreat the player */
26
- AvatarControlType[AvatarControlType["CCT_TANK"] = 2] = "CCT_TANK";
27
- })(AvatarControlType || (AvatarControlType = {}));
28
16
  function createBasePBAvatarModifierArea() {
29
- return { area: undefined, excludeIds: [], modifiers: [], movementSettings: undefined, useColliderRange: undefined };
17
+ return { area: undefined, excludeIds: [], modifiers: [] };
30
18
  }
31
19
  /**
32
20
  * @public
@@ -45,12 +33,6 @@ export var PBAvatarModifierArea;
45
33
  writer.int32(v);
46
34
  }
47
35
  writer.ldelim();
48
- if (message.movementSettings !== undefined) {
49
- AvatarMovementSettings.encode(message.movementSettings, writer.uint32(34).fork()).ldelim();
50
- }
51
- if (message.useColliderRange !== undefined) {
52
- writer.uint32(40).bool(message.useColliderRange);
53
- }
54
36
  return writer;
55
37
  }
56
38
  PBAvatarModifierArea.encode = encode;
@@ -86,18 +68,6 @@ export var PBAvatarModifierArea;
86
68
  continue;
87
69
  }
88
70
  break;
89
- case 4:
90
- if (tag !== 34) {
91
- break;
92
- }
93
- message.movementSettings = AvatarMovementSettings.decode(reader, reader.uint32());
94
- continue;
95
- case 5:
96
- if (tag !== 40) {
97
- break;
98
- }
99
- message.useColliderRange = reader.bool();
100
- continue;
101
71
  }
102
72
  if ((tag & 7) === 4 || tag === 0) {
103
73
  break;
@@ -108,123 +78,3 @@ export var PBAvatarModifierArea;
108
78
  }
109
79
  PBAvatarModifierArea.decode = decode;
110
80
  })(PBAvatarModifierArea || (PBAvatarModifierArea = {}));
111
- function createBaseAvatarMovementSettings() {
112
- return {
113
- controlMode: undefined,
114
- runSpeed: undefined,
115
- friction: undefined,
116
- gravity: undefined,
117
- jumpHeight: undefined,
118
- maxFallSpeed: undefined,
119
- turnSpeed: undefined,
120
- walkSpeed: undefined,
121
- allowWeightedMovement: undefined,
122
- };
123
- }
124
- /**
125
- * @public
126
- */
127
- export var AvatarMovementSettings;
128
- (function (AvatarMovementSettings) {
129
- function encode(message, writer = _m0.Writer.create()) {
130
- if (message.controlMode !== undefined) {
131
- writer.uint32(8).int32(message.controlMode);
132
- }
133
- if (message.runSpeed !== undefined) {
134
- writer.uint32(21).float(message.runSpeed);
135
- }
136
- if (message.friction !== undefined) {
137
- writer.uint32(29).float(message.friction);
138
- }
139
- if (message.gravity !== undefined) {
140
- writer.uint32(37).float(message.gravity);
141
- }
142
- if (message.jumpHeight !== undefined) {
143
- writer.uint32(45).float(message.jumpHeight);
144
- }
145
- if (message.maxFallSpeed !== undefined) {
146
- writer.uint32(53).float(message.maxFallSpeed);
147
- }
148
- if (message.turnSpeed !== undefined) {
149
- writer.uint32(61).float(message.turnSpeed);
150
- }
151
- if (message.walkSpeed !== undefined) {
152
- writer.uint32(69).float(message.walkSpeed);
153
- }
154
- if (message.allowWeightedMovement !== undefined) {
155
- writer.uint32(72).bool(message.allowWeightedMovement);
156
- }
157
- return writer;
158
- }
159
- AvatarMovementSettings.encode = encode;
160
- function decode(input, length) {
161
- const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input);
162
- let end = length === undefined ? reader.len : reader.pos + length;
163
- const message = createBaseAvatarMovementSettings();
164
- while (reader.pos < end) {
165
- const tag = reader.uint32();
166
- switch (tag >>> 3) {
167
- case 1:
168
- if (tag !== 8) {
169
- break;
170
- }
171
- message.controlMode = reader.int32();
172
- continue;
173
- case 2:
174
- if (tag !== 21) {
175
- break;
176
- }
177
- message.runSpeed = reader.float();
178
- continue;
179
- case 3:
180
- if (tag !== 29) {
181
- break;
182
- }
183
- message.friction = reader.float();
184
- continue;
185
- case 4:
186
- if (tag !== 37) {
187
- break;
188
- }
189
- message.gravity = reader.float();
190
- continue;
191
- case 5:
192
- if (tag !== 45) {
193
- break;
194
- }
195
- message.jumpHeight = reader.float();
196
- continue;
197
- case 6:
198
- if (tag !== 53) {
199
- break;
200
- }
201
- message.maxFallSpeed = reader.float();
202
- continue;
203
- case 7:
204
- if (tag !== 61) {
205
- break;
206
- }
207
- message.turnSpeed = reader.float();
208
- continue;
209
- case 8:
210
- if (tag !== 69) {
211
- break;
212
- }
213
- message.walkSpeed = reader.float();
214
- continue;
215
- case 9:
216
- if (tag !== 72) {
217
- break;
218
- }
219
- message.allowWeightedMovement = reader.bool();
220
- continue;
221
- }
222
- if ((tag & 7) === 4 || tag === 0) {
223
- break;
224
- }
225
- reader.skipType(tag & 7);
226
- }
227
- return message;
228
- }
229
- AvatarMovementSettings.decode = decode;
230
- })(AvatarMovementSettings || (AvatarMovementSettings = {}));
@@ -3,7 +3,7 @@ import { Vector3 } from "../../common/vectors.gen";
3
3
  import { CameraType } from "./common/camera_type.gen";
4
4
  /**
5
5
  * The CameraModeArea component can be attached to an Entity to define a region of space where
6
- * the player's camera mode (1st-person, 3rd-person or cinematic) is overridden.
6
+ * the player's camera mode (1st-person or 3rd-person) is overridden.
7
7
  *
8
8
  * The Entity's Transform position determines the center-point of the region, while its size is
9
9
  * given as a vector in the `area` property below. The Transform rotation is applied, but the scale
@@ -13,8 +13,6 @@ import { CameraType } from "./common/camera_type.gen";
13
13
  *
14
14
  * Note that, while commonly used to delineate a 2D area in a scene (hence the name), the region
15
15
  * is actually a 3D volume.
16
- *
17
- * When mode is set to CtCinematic, the cinematic_settings field must also be provided.
18
16
  */
19
17
  /**
20
18
  * @public
@@ -24,33 +22,6 @@ export interface PBCameraModeArea {
24
22
  area: Vector3 | undefined;
25
23
  /** the camera mode to enforce */
26
24
  mode: CameraType;
27
- cinematicSettings?: CinematicSettings | undefined;
28
- /** if true, the player will be considered inside the area when they are within 0.3m of the area. default true */
29
- useColliderRange?: boolean | undefined;
30
- }
31
- /**
32
- * @public
33
- */
34
- export interface CinematicSettings {
35
- /** Entity that defines the cinematic camera transform. */
36
- cameraEntity: number;
37
- /**
38
- * Position -> camera's position
39
- * Rotation -> camera's direction
40
- * scale.z -> zoom level
41
- * scale.x and scale.y -> unused
42
- */
43
- allowManualRotation?: boolean | undefined;
44
- /** how far the camera can rotate around the y-axis / look left/right, in radians. default unrestricted */
45
- yawRange?: number | undefined;
46
- /** how far the camera can rotate around the x-axis / look up-down, in radians. default unrestricted */
47
- pitchRange?: number | undefined;
48
- /** note: cameras can never look up/down further than Vec3::Y */
49
- rollRange?: number | undefined;
50
- /** minimum zoom level. must be greater than 0. defaults to the input zoom level */
51
- zoomMin?: number | undefined;
52
- /** maximum zoom level. must be greater than 0. defaults to the input zoom level */
53
- zoomMax?: number | undefined;
54
25
  }
55
26
  /**
56
27
  * @public
@@ -59,10 +30,3 @@ export declare namespace PBCameraModeArea {
59
30
  function encode(message: PBCameraModeArea, writer?: _m0.Writer): _m0.Writer;
60
31
  function decode(input: _m0.Reader | Uint8Array, length?: number): PBCameraModeArea;
61
32
  }
62
- /**
63
- * @public
64
- */
65
- export declare namespace CinematicSettings {
66
- function encode(message: CinematicSettings, writer?: _m0.Writer): _m0.Writer;
67
- function decode(input: _m0.Reader | Uint8Array, length?: number): CinematicSettings;
68
- }
@@ -3,7 +3,7 @@ import _m0 from "protobufjs/minimal";
3
3
  import { Vector3 } from "../../common/vectors.gen";
4
4
  const protobufPackageSarasa = "decentraland.sdk.components";
5
5
  function createBasePBCameraModeArea() {
6
- return { area: undefined, mode: 0, cinematicSettings: undefined, useColliderRange: undefined };
6
+ return { area: undefined, mode: 0 };
7
7
  }
8
8
  /**
9
9
  * @public
@@ -17,12 +17,6 @@ export var PBCameraModeArea;
17
17
  if (message.mode !== 0) {
18
18
  writer.uint32(16).int32(message.mode);
19
19
  }
20
- if (message.cinematicSettings !== undefined) {
21
- CinematicSettings.encode(message.cinematicSettings, writer.uint32(26).fork()).ldelim();
22
- }
23
- if (message.useColliderRange !== undefined) {
24
- writer.uint32(32).bool(message.useColliderRange);
25
- }
26
20
  return writer;
27
21
  }
28
22
  PBCameraModeArea.encode = encode;
@@ -45,18 +39,6 @@ export var PBCameraModeArea;
45
39
  }
46
40
  message.mode = reader.int32();
47
41
  continue;
48
- case 3:
49
- if (tag !== 26) {
50
- break;
51
- }
52
- message.cinematicSettings = CinematicSettings.decode(reader, reader.uint32());
53
- continue;
54
- case 4:
55
- if (tag !== 32) {
56
- break;
57
- }
58
- message.useColliderRange = reader.bool();
59
- continue;
60
42
  }
61
43
  if ((tag & 7) === 4 || tag === 0) {
62
44
  break;
@@ -67,103 +49,3 @@ export var PBCameraModeArea;
67
49
  }
68
50
  PBCameraModeArea.decode = decode;
69
51
  })(PBCameraModeArea || (PBCameraModeArea = {}));
70
- function createBaseCinematicSettings() {
71
- return {
72
- cameraEntity: 0,
73
- allowManualRotation: undefined,
74
- yawRange: undefined,
75
- pitchRange: undefined,
76
- rollRange: undefined,
77
- zoomMin: undefined,
78
- zoomMax: undefined,
79
- };
80
- }
81
- /**
82
- * @public
83
- */
84
- export var CinematicSettings;
85
- (function (CinematicSettings) {
86
- function encode(message, writer = _m0.Writer.create()) {
87
- if (message.cameraEntity !== 0) {
88
- writer.uint32(8).uint32(message.cameraEntity);
89
- }
90
- if (message.allowManualRotation !== undefined) {
91
- writer.uint32(16).bool(message.allowManualRotation);
92
- }
93
- if (message.yawRange !== undefined) {
94
- writer.uint32(29).float(message.yawRange);
95
- }
96
- if (message.pitchRange !== undefined) {
97
- writer.uint32(37).float(message.pitchRange);
98
- }
99
- if (message.rollRange !== undefined) {
100
- writer.uint32(45).float(message.rollRange);
101
- }
102
- if (message.zoomMin !== undefined) {
103
- writer.uint32(53).float(message.zoomMin);
104
- }
105
- if (message.zoomMax !== undefined) {
106
- writer.uint32(61).float(message.zoomMax);
107
- }
108
- return writer;
109
- }
110
- CinematicSettings.encode = encode;
111
- function decode(input, length) {
112
- const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input);
113
- let end = length === undefined ? reader.len : reader.pos + length;
114
- const message = createBaseCinematicSettings();
115
- while (reader.pos < end) {
116
- const tag = reader.uint32();
117
- switch (tag >>> 3) {
118
- case 1:
119
- if (tag !== 8) {
120
- break;
121
- }
122
- message.cameraEntity = reader.uint32();
123
- continue;
124
- case 2:
125
- if (tag !== 16) {
126
- break;
127
- }
128
- message.allowManualRotation = reader.bool();
129
- continue;
130
- case 3:
131
- if (tag !== 29) {
132
- break;
133
- }
134
- message.yawRange = reader.float();
135
- continue;
136
- case 4:
137
- if (tag !== 37) {
138
- break;
139
- }
140
- message.pitchRange = reader.float();
141
- continue;
142
- case 5:
143
- if (tag !== 45) {
144
- break;
145
- }
146
- message.rollRange = reader.float();
147
- continue;
148
- case 6:
149
- if (tag !== 53) {
150
- break;
151
- }
152
- message.zoomMin = reader.float();
153
- continue;
154
- case 7:
155
- if (tag !== 61) {
156
- break;
157
- }
158
- message.zoomMax = reader.float();
159
- continue;
160
- }
161
- if ((tag & 7) === 4 || tag === 0) {
162
- break;
163
- }
164
- reader.skipType(tag & 7);
165
- }
166
- return message;
167
- }
168
- CinematicSettings.decode = decode;
169
- })(CinematicSettings || (CinematicSettings = {}));
@@ -15,12 +15,6 @@ export interface PBUiText {
15
15
  font?: Font | undefined;
16
16
  /** size of the text (default: 10) */
17
17
  fontSize?: number | undefined;
18
- /** width of the outline (default: 0) */
19
- outlineWidth?: number | undefined;
20
- /** RGBA color of the outline (default: opaque black) */
21
- outlineColor?: Color4 | undefined;
22
- /** wrap text when the border is reached (default false) */
23
- textWrapping?: boolean | undefined;
24
18
  }
25
19
  /**
26
20
  * @public
@@ -3,16 +3,7 @@ import _m0 from "protobufjs/minimal";
3
3
  import { Color4 } from "../../common/colors.gen";
4
4
  const protobufPackageSarasa = "decentraland.sdk.components";
5
5
  function createBasePBUiText() {
6
- return {
7
- value: "",
8
- color: undefined,
9
- textAlign: undefined,
10
- font: undefined,
11
- fontSize: undefined,
12
- outlineWidth: undefined,
13
- outlineColor: undefined,
14
- textWrapping: undefined,
15
- };
6
+ return { value: "", color: undefined, textAlign: undefined, font: undefined, fontSize: undefined };
16
7
  }
17
8
  /**
18
9
  * @public
@@ -35,15 +26,6 @@ export var PBUiText;
35
26
  if (message.fontSize !== undefined) {
36
27
  writer.uint32(40).int32(message.fontSize);
37
28
  }
38
- if (message.outlineWidth !== undefined) {
39
- writer.uint32(53).float(message.outlineWidth);
40
- }
41
- if (message.outlineColor !== undefined) {
42
- Color4.encode(message.outlineColor, writer.uint32(58).fork()).ldelim();
43
- }
44
- if (message.textWrapping !== undefined) {
45
- writer.uint32(64).bool(message.textWrapping);
46
- }
47
29
  return writer;
48
30
  }
49
31
  PBUiText.encode = encode;
@@ -84,24 +66,6 @@ export var PBUiText;
84
66
  }
85
67
  message.fontSize = reader.int32();
86
68
  continue;
87
- case 6:
88
- if (tag !== 53) {
89
- break;
90
- }
91
- message.outlineWidth = reader.float();
92
- continue;
93
- case 7:
94
- if (tag !== 58) {
95
- break;
96
- }
97
- message.outlineColor = Color4.decode(reader, reader.uint32());
98
- continue;
99
- case 8:
100
- if (tag !== 64) {
101
- break;
102
- }
103
- message.textWrapping = reader.bool();
104
- continue;
105
69
  }
106
70
  if ((tag & 7) === 4 || tag === 0) {
107
71
  break;
@@ -178,8 +178,6 @@ export interface PBUiTransform {
178
178
  paddingBottom: number;
179
179
  /** default: PointerFilterMode.PFM_NONE */
180
180
  pointerFilter?: PointerFilterMode | undefined;
181
- /** default: 1 */
182
- opacity?: number | undefined;
183
181
  }
184
182
  /**
185
183
  * @public
@@ -158,7 +158,6 @@ function createBasePBUiTransform() {
158
158
  paddingBottomUnit: 0,
159
159
  paddingBottom: 0,
160
160
  pointerFilter: undefined,
161
- opacity: undefined,
162
161
  };
163
162
  }
164
163
  /**
@@ -323,9 +322,6 @@ export var PBUiTransform;
323
322
  if (message.pointerFilter !== undefined) {
324
323
  writer.uint32(416).int32(message.pointerFilter);
325
324
  }
326
- if (message.opacity !== undefined) {
327
- writer.uint32(429).float(message.opacity);
328
- }
329
325
  return writer;
330
326
  }
331
327
  PBUiTransform.encode = encode;
@@ -648,12 +644,6 @@ export var PBUiTransform;
648
644
  }
649
645
  message.pointerFilter = reader.int32();
650
646
  continue;
651
- case 53:
652
- if (tag !== 429) {
653
- break;
654
- }
655
- message.opacity = reader.float();
656
- continue;
657
647
  }
658
648
  if ((tag & 7) === 4 || tag === 0) {
659
649
  break;
@@ -9,6 +9,7 @@ import { createInputSystem } from './../../engine/input';
9
9
  import { createRaycastSystem } from '../../systems/raycast';
10
10
  import { createVideoEventsSystem } from '../../systems/videoEvents';
11
11
  import { createTweenSystem } from '../../systems/tween';
12
+ import { pointerEventColliderChecker } from '../../systems/pointer-event-collider-checker';
12
13
  /**
13
14
  * @public
14
15
  * The engine is the part of the scene that sits in the middle and manages all of the other parts.
@@ -51,6 +52,10 @@ export const videoEventsSystem = /* @__PURE__ */ createVideoEventsSystem(engine)
51
52
  * Register callback functions to a particular entity on video events.
52
53
  */
53
54
  export const tweenSystem = createTweenSystem(engine);
55
+ /**
56
+ * Adds pointer event collider system only in DEV env
57
+ */
58
+ pointerEventColliderChecker(engine);
54
59
  /**
55
60
  * @public
56
61
  * Runs an async function
@@ -55,7 +55,6 @@ export function createPointerEventsSystem(engine, inputSystem) {
55
55
  }
56
56
  event.delete(type);
57
57
  }
58
- // @internal
59
58
  engine.addSystem(function EventSystem() {
60
59
  for (const [entity, event] of eventsMap) {
61
60
  if (engine.getEntityState(entity) === EntityState.Removed) {
@@ -0,0 +1,8 @@
1
+ import { IEngine } from '../engine/types';
2
+ /**
3
+ * It checks all the entities that has a PointerEvent and check if it has a collider.
4
+ * *
5
+ * @public
6
+ * @params engine
7
+ */
8
+ export declare function pointerEventColliderChecker(engine: IEngine): void;
@@ -0,0 +1,45 @@
1
+ /* istanbul ignore file */
2
+ import * as components from '../components';
3
+ /**
4
+ * It checks all the entities that has a PointerEvent and check if it has a collider.
5
+ * *
6
+ * @public
7
+ * @params engine
8
+ */
9
+ export function pointerEventColliderChecker(engine) {
10
+ const PointerEvents = components.PointerEvents(engine);
11
+ const MeshCollider = components.MeshCollider(engine);
12
+ const GltfContainer = components.GltfContainer(engine);
13
+ const UiTransform = components.UiTransform(engine);
14
+ const alreadyShownlog = new Set();
15
+ let timer = 0;
16
+ function systemChecker(dt) {
17
+ timer += dt;
18
+ if (timer <= 10) {
19
+ return;
20
+ }
21
+ timer = 0;
22
+ for (const [entity] of engine.getEntitiesWith(PointerEvents)) {
23
+ if (alreadyShownlog.has(entity))
24
+ continue;
25
+ // Maybe the collider is inside the GLTFContainer. Ignore it
26
+ if (GltfContainer.has(entity))
27
+ continue;
28
+ // UI handles the pointer's in a diff way.
29
+ if (UiTransform.has(entity))
30
+ continue;
31
+ // check for Mesh Pointer Collision Layer
32
+ const mesh = MeshCollider.getOrNull(entity);
33
+ if (mesh) {
34
+ if (mesh.collisionMask === undefined || mesh.collisionMask & 1 /* components.ColliderLayer.CL_POINTER */) {
35
+ continue;
36
+ }
37
+ }
38
+ alreadyShownlog.add(entity);
39
+ console.log(`⚠️ Missing MeshCollider component on entity ${entity}. Add a MeshCollider to the entity so it can be clickeable by the player.
40
+ See https://docs.decentraland.org/creator/development-guide/sdk7/colliders/#pointer-blocking`);
41
+ }
42
+ }
43
+ engine.removeSystem(systemChecker);
44
+ engine.addSystem(systemChecker);
45
+ }