@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
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
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
|
}
|
package/dist/systems/events.d.ts
CHANGED
|
@@ -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
|
package/dist/systems/events.js
CHANGED
|
@@ -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 ||
|
|
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
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
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 ||
|
|
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.
|
|
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": "
|
|
36
|
+
"commit": "0c727b82d18c849bc14e34108ef9ce7e3531ca64"
|
|
37
37
|
}
|