@dcl/ecs 7.6.7 → 7.6.8-12354882097.commit-0c727b8

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.
@@ -183,12 +183,12 @@ export function crdtSceneSystem(engine, onProcessEntityComponentChange) {
183
183
  ...message,
184
184
  messageBuffer: buffer.buffer().subarray(offset, buffer.currentWriteOffset())
185
185
  });
186
- if (onProcessEntityComponentChange) {
187
- const rawValue = message.type === CrdtMessageType.PUT_COMPONENT || message.type === CrdtMessageType.APPEND_VALUE
188
- ? component.get(message.entityId)
189
- : undefined;
190
- onProcessEntityComponentChange(message.entityId, message.type, component, rawValue);
191
- }
186
+ }
187
+ if (onProcessEntityComponentChange) {
188
+ const rawValue = message.type === CrdtMessageType.PUT_COMPONENT || message.type === CrdtMessageType.APPEND_VALUE
189
+ ? component.get(message.entityId)
190
+ : undefined;
191
+ onProcessEntityComponentChange(message.entityId, message.type, component, rawValue);
192
192
  }
193
193
  }
194
194
  }
@@ -34,6 +34,18 @@ export interface PointerEventsSystem {
34
34
  * @param entity - Entity where the callback was attached
35
35
  */
36
36
  removeOnPointerUp(entity: Entity): void;
37
+ /**
38
+ * @public
39
+ * Remove the callback for onPointerHoverEnter event
40
+ * @param entity - Entity where the callback was attached
41
+ */
42
+ removeOnPointerHoverEnter(entity: Entity): void;
43
+ /**
44
+ * @public
45
+ * Remove the callback for onPointerHoverLeave event
46
+ * @param entity - Entity where the callback was attached
47
+ */
48
+ removeOnPointerHoverLeave(entity: Entity): void;
37
49
  /**
38
50
  * @public
39
51
  * Execute callback when the user press the InputButton pointing at the entity
@@ -68,6 +80,26 @@ export interface PointerEventsSystem {
68
80
  * @param opts - Opts to trigger Feedback and Button
69
81
  */
70
82
  onPointerUp(entity: Entity, cb: EventSystemCallback, opts?: Partial<EventSystemOptions>): void;
83
+ /**
84
+ * @public
85
+ * Execute callback when the user place the pointer over the entity
86
+ * @param pointerData - Entity to attach the callback - Opts to trigger Feedback and Button
87
+ * @param cb - Function to execute when click fires
88
+ */
89
+ onPointerHoverEnter(pointerData: {
90
+ entity: Entity;
91
+ opts?: Partial<EventSystemOptions>;
92
+ }, cb: EventSystemCallback): void;
93
+ /**
94
+ * @public
95
+ * Execute callback when the user take the pointer out of the entity
96
+ * @param pointerData - Entity to attach the callback - Opts to trigger Feedback and Button
97
+ * @param cb - Function to execute when click fires
98
+ */
99
+ onPointerHoverLeave(pointerData: {
100
+ entity: Entity;
101
+ opts?: Partial<EventSystemOptions>;
102
+ }, cb: EventSystemCallback): void;
71
103
  }
72
104
  /**
73
105
  * @public
@@ -16,6 +16,8 @@ export function createPointerEventsSystem(engine, inputSystem) {
16
16
  EventType[EventType["Click"] = 0] = "Click";
17
17
  EventType[EventType["Down"] = 1] = "Down";
18
18
  EventType[EventType["Up"] = 2] = "Up";
19
+ EventType[EventType["HoverEnter"] = 3] = "HoverEnter";
20
+ EventType[EventType["HoverLeave"] = 4] = "HoverLeave";
19
21
  })(EventType || (EventType = {}));
20
22
  const eventsMap = new Map();
21
23
  function getEvent(entity) {
@@ -44,6 +46,12 @@ export function createPointerEventsSystem(engine, inputSystem) {
44
46
  if (eventType === EventType.Up) {
45
47
  return 0 /* PointerEventType.PET_UP */;
46
48
  }
49
+ else if (eventType === EventType.HoverLeave) {
50
+ return 3 /* PointerEventType.PET_HOVER_LEAVE */;
51
+ }
52
+ else if (eventType === EventType.HoverEnter) {
53
+ return 2 /* PointerEventType.PET_HOVER_ENTER */;
54
+ }
47
55
  return 1 /* PointerEventType.PET_DOWN */;
48
56
  }
49
57
  function removeEvent(entity, type) {
@@ -66,7 +74,10 @@ export function createPointerEventsSystem(engine, inputSystem) {
66
74
  if (command)
67
75
  checkNotThenable(cb(command.up), 'Click event returned a thenable. Only synchronous functions are allowed');
68
76
  }
69
- if (eventType === EventType.Down || eventType === EventType.Up) {
77
+ if (eventType === EventType.Down ||
78
+ eventType === EventType.Up ||
79
+ eventType === EventType.HoverEnter ||
80
+ eventType === EventType.HoverLeave) {
70
81
  const command = inputSystem.getInputCommand(opts.button, getPointerEvent(eventType), entity);
71
82
  if (command) {
72
83
  checkNotThenable(cb(command), 'Event handler returned a thenable. Only synchronous functions are allowed');
@@ -97,6 +108,22 @@ export function createPointerEventsSystem(engine, inputSystem) {
97
108
  getEvent(entity).set(EventType.Up, { cb, opts: options });
98
109
  setPointerEvent(entity, 0 /* PointerEventType.PET_UP */, options);
99
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);
126
+ };
100
127
  return {
101
128
  removeOnClick(entity) {
102
129
  removeEvent(entity, EventType.Click);
@@ -107,6 +134,12 @@ export function createPointerEventsSystem(engine, inputSystem) {
107
134
  removeOnPointerUp(entity) {
108
135
  removeEvent(entity, EventType.Up);
109
136
  },
137
+ removeOnPointerHoverEnter(entity) {
138
+ removeEvent(entity, EventType.HoverEnter);
139
+ },
140
+ removeOnPointerHoverLeave(entity) {
141
+ removeEvent(entity, EventType.HoverLeave);
142
+ },
110
143
  onClick(value, cb) {
111
144
  const { entity } = value;
112
145
  const options = getDefaultOpts(value.opts);
@@ -117,6 +150,8 @@ export function createPointerEventsSystem(engine, inputSystem) {
117
150
  setPointerEvent(entity, 1 /* PointerEventType.PET_DOWN */, options);
118
151
  },
119
152
  onPointerDown,
120
- onPointerUp
153
+ onPointerUp,
154
+ onPointerHoverEnter,
155
+ onPointerHoverLeave
121
156
  };
122
157
  }
@@ -209,12 +209,12 @@ function crdtSceneSystem(engine, onProcessEntityComponentChange) {
209
209
  ...message,
210
210
  messageBuffer: buffer.buffer().subarray(offset, buffer.currentWriteOffset())
211
211
  });
212
- if (onProcessEntityComponentChange) {
213
- const rawValue = message.type === types_1.CrdtMessageType.PUT_COMPONENT || message.type === types_1.CrdtMessageType.APPEND_VALUE
214
- ? component.get(message.entityId)
215
- : undefined;
216
- onProcessEntityComponentChange(message.entityId, message.type, component, rawValue);
217
- }
212
+ }
213
+ if (onProcessEntityComponentChange) {
214
+ const rawValue = message.type === types_1.CrdtMessageType.PUT_COMPONENT || message.type === types_1.CrdtMessageType.APPEND_VALUE
215
+ ? component.get(message.entityId)
216
+ : undefined;
217
+ onProcessEntityComponentChange(message.entityId, message.type, component, rawValue);
218
218
  }
219
219
  }
220
220
  }
@@ -34,6 +34,18 @@ export interface PointerEventsSystem {
34
34
  * @param entity - Entity where the callback was attached
35
35
  */
36
36
  removeOnPointerUp(entity: Entity): void;
37
+ /**
38
+ * @public
39
+ * Remove the callback for onPointerHoverEnter event
40
+ * @param entity - Entity where the callback was attached
41
+ */
42
+ removeOnPointerHoverEnter(entity: Entity): void;
43
+ /**
44
+ * @public
45
+ * Remove the callback for onPointerHoverLeave event
46
+ * @param entity - Entity where the callback was attached
47
+ */
48
+ removeOnPointerHoverLeave(entity: Entity): void;
37
49
  /**
38
50
  * @public
39
51
  * Execute callback when the user press the InputButton pointing at the entity
@@ -68,6 +80,26 @@ export interface PointerEventsSystem {
68
80
  * @param opts - Opts to trigger Feedback and Button
69
81
  */
70
82
  onPointerUp(entity: Entity, cb: EventSystemCallback, opts?: Partial<EventSystemOptions>): void;
83
+ /**
84
+ * @public
85
+ * Execute callback when the user place the pointer over the entity
86
+ * @param pointerData - Entity to attach the callback - Opts to trigger Feedback and Button
87
+ * @param cb - Function to execute when click fires
88
+ */
89
+ onPointerHoverEnter(pointerData: {
90
+ entity: Entity;
91
+ opts?: Partial<EventSystemOptions>;
92
+ }, cb: EventSystemCallback): void;
93
+ /**
94
+ * @public
95
+ * Execute callback when the user take the pointer out of the entity
96
+ * @param pointerData - Entity to attach the callback - Opts to trigger Feedback and Button
97
+ * @param cb - Function to execute when click fires
98
+ */
99
+ onPointerHoverLeave(pointerData: {
100
+ entity: Entity;
101
+ opts?: Partial<EventSystemOptions>;
102
+ }, cb: EventSystemCallback): void;
71
103
  }
72
104
  /**
73
105
  * @public
@@ -43,6 +43,8 @@ function createPointerEventsSystem(engine, inputSystem) {
43
43
  EventType[EventType["Click"] = 0] = "Click";
44
44
  EventType[EventType["Down"] = 1] = "Down";
45
45
  EventType[EventType["Up"] = 2] = "Up";
46
+ EventType[EventType["HoverEnter"] = 3] = "HoverEnter";
47
+ EventType[EventType["HoverLeave"] = 4] = "HoverLeave";
46
48
  })(EventType || (EventType = {}));
47
49
  const eventsMap = new Map();
48
50
  function getEvent(entity) {
@@ -71,6 +73,12 @@ function createPointerEventsSystem(engine, inputSystem) {
71
73
  if (eventType === EventType.Up) {
72
74
  return 0 /* PointerEventType.PET_UP */;
73
75
  }
76
+ else if (eventType === EventType.HoverLeave) {
77
+ return 3 /* PointerEventType.PET_HOVER_LEAVE */;
78
+ }
79
+ else if (eventType === EventType.HoverEnter) {
80
+ return 2 /* PointerEventType.PET_HOVER_ENTER */;
81
+ }
74
82
  return 1 /* PointerEventType.PET_DOWN */;
75
83
  }
76
84
  function removeEvent(entity, type) {
@@ -93,7 +101,10 @@ function createPointerEventsSystem(engine, inputSystem) {
93
101
  if (command)
94
102
  (0, invariant_1.checkNotThenable)(cb(command.up), 'Click event returned a thenable. Only synchronous functions are allowed');
95
103
  }
96
- if (eventType === EventType.Down || eventType === EventType.Up) {
104
+ if (eventType === EventType.Down ||
105
+ eventType === EventType.Up ||
106
+ eventType === EventType.HoverEnter ||
107
+ eventType === EventType.HoverLeave) {
97
108
  const command = inputSystem.getInputCommand(opts.button, getPointerEvent(eventType), entity);
98
109
  if (command) {
99
110
  (0, invariant_1.checkNotThenable)(cb(command), 'Event handler returned a thenable. Only synchronous functions are allowed');
@@ -124,6 +135,22 @@ function createPointerEventsSystem(engine, inputSystem) {
124
135
  getEvent(entity).set(EventType.Up, { cb, opts: options });
125
136
  setPointerEvent(entity, 0 /* PointerEventType.PET_UP */, options);
126
137
  };
138
+ const onPointerHoverEnter = (...args) => {
139
+ const [data, cb] = args;
140
+ const { entity, opts } = data;
141
+ const options = (0, exports.getDefaultOpts)(opts);
142
+ removeEvent(entity, EventType.HoverEnter);
143
+ getEvent(entity).set(EventType.HoverEnter, { cb, opts: options });
144
+ setPointerEvent(entity, 2 /* PointerEventType.PET_HOVER_ENTER */, options);
145
+ };
146
+ const onPointerHoverLeave = (...args) => {
147
+ const [data, cb] = args;
148
+ const { entity, opts } = data;
149
+ const options = (0, exports.getDefaultOpts)(opts);
150
+ removeEvent(entity, EventType.HoverLeave);
151
+ getEvent(entity).set(EventType.HoverLeave, { cb, opts: options });
152
+ setPointerEvent(entity, 3 /* PointerEventType.PET_HOVER_LEAVE */, options);
153
+ };
127
154
  return {
128
155
  removeOnClick(entity) {
129
156
  removeEvent(entity, EventType.Click);
@@ -134,6 +161,12 @@ function createPointerEventsSystem(engine, inputSystem) {
134
161
  removeOnPointerUp(entity) {
135
162
  removeEvent(entity, EventType.Up);
136
163
  },
164
+ removeOnPointerHoverEnter(entity) {
165
+ removeEvent(entity, EventType.HoverEnter);
166
+ },
167
+ removeOnPointerHoverLeave(entity) {
168
+ removeEvent(entity, EventType.HoverLeave);
169
+ },
137
170
  onClick(value, cb) {
138
171
  const { entity } = value;
139
172
  const options = (0, exports.getDefaultOpts)(value.opts);
@@ -144,7 +177,9 @@ function createPointerEventsSystem(engine, inputSystem) {
144
177
  setPointerEvent(entity, 1 /* PointerEventType.PET_DOWN */, options);
145
178
  },
146
179
  onPointerDown,
147
- onPointerUp
180
+ onPointerUp,
181
+ onPointerHoverEnter,
182
+ onPointerHoverLeave
148
183
  };
149
184
  }
150
185
  exports.createPointerEventsSystem = createPointerEventsSystem;
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@dcl/ecs",
3
3
  "description": "Decentraland ECS",
4
- "version": "7.6.7",
4
+ "version": "7.6.8-12354882097.commit-0c727b8",
5
5
  "author": "DCL",
6
6
  "bugs": "https://github.com/decentraland/ecs/issues",
7
7
  "files": [
@@ -33,5 +33,5 @@
33
33
  },
34
34
  "types": "./dist/index.d.ts",
35
35
  "typings": "./dist/index.d.ts",
36
- "commit": "085da37eac19a1ee4794076a6acf221cf8b796fe"
36
+ "commit": "0c727b82d18c849bc14e34108ef9ce7e3531ca64"
37
37
  }