@dcl/ecs 7.13.1-19324737285.commit-cb42004 → 7.13.1-19516109426.commit-e1e79aa
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/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 +16 -0
- package/dist/components/generated/global.gen.js +8 -0
- package/dist/components/generated/index.gen.d.ts +32 -0
- package/dist/components/generated/index.gen.js +40 -0
- 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/generated/pb/decentraland/sdk/components/virtual_camera.gen.d.ts +0 -3
- package/dist/components/generated/pb/decentraland/sdk/components/virtual_camera.gen.js +1 -10
- package/dist/components/index.d.ts +11 -7
- package/dist/components/index.js +11 -5
- package/dist/components/types.d.ts +2 -0
- package/dist/engine/input.d.ts +6 -0
- package/dist/engine/input.js +7 -1
- package/dist/runtime/initialization/index.d.ts +1 -1
- package/dist/runtime/initialization/index.js +1 -1
- package/dist/systems/events.d.ts +100 -1
- package/dist/systems/events.js +143 -65
- package/dist/systems/tween.js +63 -88
- 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/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 +16 -0
- package/dist-cjs/components/generated/global.gen.js +10 -1
- package/dist-cjs/components/generated/index.gen.d.ts +32 -0
- package/dist-cjs/components/generated/index.gen.js +50 -2
- 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/generated/pb/decentraland/sdk/components/virtual_camera.gen.d.ts +0 -3
- package/dist-cjs/components/generated/pb/decentraland/sdk/components/virtual_camera.gen.js +1 -10
- package/dist-cjs/components/index.d.ts +11 -7
- package/dist-cjs/components/index.js +15 -7
- package/dist-cjs/components/types.d.ts +2 -0
- package/dist-cjs/engine/input.d.ts +6 -0
- package/dist-cjs/engine/input.js +7 -1
- package/dist-cjs/runtime/initialization/index.d.ts +1 -1
- package/dist-cjs/runtime/initialization/index.js +1 -1
- package/dist-cjs/systems/events.d.ts +100 -1
- package/dist-cjs/systems/events.js +143 -65
- package/dist-cjs/systems/tween.js +63 -88
- package/package.json +2 -2
package/dist/systems/events.js
CHANGED
|
@@ -18,6 +18,9 @@ export function createPointerEventsSystem(engine, inputSystem) {
|
|
|
18
18
|
EventType[EventType["Up"] = 2] = "Up";
|
|
19
19
|
EventType[EventType["HoverEnter"] = 3] = "HoverEnter";
|
|
20
20
|
EventType[EventType["HoverLeave"] = 4] = "HoverLeave";
|
|
21
|
+
EventType[EventType["Drag"] = 5] = "Drag";
|
|
22
|
+
EventType[EventType["DragLocked"] = 6] = "DragLocked";
|
|
23
|
+
EventType[EventType["DragEnd"] = 7] = "DragEnd";
|
|
21
24
|
})(EventType || (EventType = {}));
|
|
22
25
|
const eventsMap = new Map();
|
|
23
26
|
function getEvent(entity) {
|
|
@@ -52,77 +55,148 @@ export function createPointerEventsSystem(engine, inputSystem) {
|
|
|
52
55
|
else if (eventType === EventType.HoverEnter) {
|
|
53
56
|
return 2 /* PointerEventType.PET_HOVER_ENTER */;
|
|
54
57
|
}
|
|
58
|
+
else if (eventType === EventType.Drag) {
|
|
59
|
+
return 5 /* PointerEventType.PET_DRAG */;
|
|
60
|
+
}
|
|
61
|
+
else if (eventType === EventType.DragLocked) {
|
|
62
|
+
return 4 /* PointerEventType.PET_DRAG_LOCKED */;
|
|
63
|
+
}
|
|
64
|
+
else if (eventType === EventType.DragEnd) {
|
|
65
|
+
return 6 /* PointerEventType.PET_DRAG_END */;
|
|
66
|
+
}
|
|
55
67
|
return 1 /* PointerEventType.PET_DOWN */;
|
|
56
68
|
}
|
|
69
|
+
function getEventType(pet) {
|
|
70
|
+
if (pet === 0 /* PointerEventType.PET_UP */) {
|
|
71
|
+
return EventType.Up;
|
|
72
|
+
}
|
|
73
|
+
else if (pet === 2 /* PointerEventType.PET_HOVER_ENTER */) {
|
|
74
|
+
return EventType.HoverEnter;
|
|
75
|
+
}
|
|
76
|
+
else if (pet === 3 /* PointerEventType.PET_HOVER_LEAVE */) {
|
|
77
|
+
return EventType.HoverLeave;
|
|
78
|
+
}
|
|
79
|
+
else if (pet === 5 /* PointerEventType.PET_DRAG */) {
|
|
80
|
+
return EventType.Drag;
|
|
81
|
+
}
|
|
82
|
+
else if (pet === 4 /* PointerEventType.PET_DRAG_LOCKED */) {
|
|
83
|
+
return EventType.DragLocked;
|
|
84
|
+
}
|
|
85
|
+
else if (pet === 6 /* PointerEventType.PET_DRAG_END */) {
|
|
86
|
+
return EventType.DragEnd;
|
|
87
|
+
}
|
|
88
|
+
else {
|
|
89
|
+
return EventType.Down;
|
|
90
|
+
}
|
|
91
|
+
}
|
|
57
92
|
function removeEvent(entity, type) {
|
|
58
93
|
const event = getEvent(entity);
|
|
59
|
-
const
|
|
60
|
-
if (
|
|
61
|
-
|
|
94
|
+
const pointerEventList = event.get(type);
|
|
95
|
+
if (pointerEventList === undefined) {
|
|
96
|
+
return;
|
|
97
|
+
}
|
|
98
|
+
for (const button of pointerEventList.keys()) {
|
|
99
|
+
removePointerEvent(entity, getPointerEvent(type), button);
|
|
62
100
|
}
|
|
63
101
|
event.delete(type);
|
|
64
102
|
}
|
|
65
103
|
engine.addSystem(function EventSystem() {
|
|
66
|
-
|
|
104
|
+
if (eventsMap.size === 0) {
|
|
105
|
+
return;
|
|
106
|
+
}
|
|
107
|
+
for (const entity of eventsMap.keys()) {
|
|
67
108
|
if (engine.getEntityState(entity) === EntityState.Removed) {
|
|
68
109
|
eventsMap.delete(entity);
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
for (const command of inputSystem.getInputCommands()) {
|
|
113
|
+
const entity = command.hit?.entityId;
|
|
114
|
+
if (entity === undefined) {
|
|
115
|
+
continue;
|
|
116
|
+
}
|
|
117
|
+
const entityMap = eventsMap.get(entity);
|
|
118
|
+
if (entityMap === undefined) {
|
|
69
119
|
continue;
|
|
70
120
|
}
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
121
|
+
const typeMap = entityMap.get(getEventType(command.state));
|
|
122
|
+
if (typeMap) {
|
|
123
|
+
const data = typeMap.get(command.button);
|
|
124
|
+
if (data) {
|
|
125
|
+
checkNotThenable(data.cb(command), 'Event handler returned a thenable. Only synchronous functions are allowed');
|
|
76
126
|
}
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
127
|
+
const anyData = typeMap.get(3 /* InputAction.IA_ANY */);
|
|
128
|
+
if (anyData) {
|
|
129
|
+
checkNotThenable(anyData.cb(command), 'Event handler returned a thenable. Only synchronous functions are allowed');
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
// check clicks separately
|
|
133
|
+
if (command.state === 0 /* PointerEventType.PET_UP */) {
|
|
134
|
+
const clickMap = entityMap.get(EventType.Click);
|
|
135
|
+
if (clickMap) {
|
|
136
|
+
const data = clickMap.get(command.button);
|
|
137
|
+
if (data && inputSystem.getClick(command.button, entity)) {
|
|
138
|
+
checkNotThenable(data.cb(command), 'Click event returned a thenable. Only synchronous functions are allowed');
|
|
139
|
+
}
|
|
140
|
+
const anyData = clickMap.get(3 /* InputAction.IA_ANY */);
|
|
141
|
+
if (anyData && inputSystem.getClick(command.button, entity)) {
|
|
142
|
+
checkNotThenable(anyData.cb(command), 'Event handler returned a thenable. Only synchronous functions are allowed');
|
|
84
143
|
}
|
|
85
144
|
}
|
|
86
145
|
}
|
|
87
146
|
}
|
|
88
147
|
});
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
148
|
+
// return a function with the correct event type.
|
|
149
|
+
// we use onPointerDown as the "archetype" for the returned function, but it fits with
|
|
150
|
+
// all the onPointer* declarations
|
|
151
|
+
const onPointerFunction = (ty) => {
|
|
152
|
+
return (arg0, arg1, arg2) => {
|
|
153
|
+
let entity;
|
|
154
|
+
let optsList;
|
|
155
|
+
if (typeof arg0 === 'number') {
|
|
156
|
+
// called as onPointerDown(entity: Entity, cb: EventSystemCallback, opts?: Partial<EventSystemOptions>): void
|
|
157
|
+
entity = arg0;
|
|
158
|
+
const cb = arg1;
|
|
159
|
+
const opts = arg2;
|
|
160
|
+
optsList = [{ cb, ...getDefaultOpts(opts) }];
|
|
161
|
+
}
|
|
162
|
+
else if (typeof arg1 === 'function') {
|
|
163
|
+
// called as onPointerDown(pointerData: { entity: Entity; opts?: Partial<EventSystemOptions> }, cb: EventSystemCallback): void
|
|
164
|
+
const { entity: e, opts } = arg0;
|
|
165
|
+
const cb = arg1;
|
|
166
|
+
entity = e;
|
|
167
|
+
optsList = [{ cb, ...getDefaultOpts(opts) }];
|
|
168
|
+
}
|
|
169
|
+
else {
|
|
170
|
+
// called as onPointerDown(pointerData: { entity: Entity; optsList: EventSystemOptionsCallback[] }): void
|
|
171
|
+
const { entity: e, optsList: o } = arg0;
|
|
172
|
+
entity = e;
|
|
173
|
+
optsList = o;
|
|
174
|
+
}
|
|
175
|
+
const previous = getEvent(entity).get(ty) ?? new Map();
|
|
176
|
+
const callbacks = new Map();
|
|
177
|
+
for (const opts of optsList) {
|
|
178
|
+
const prevOpts = previous.get(opts.button);
|
|
179
|
+
if (prevOpts !== undefined) {
|
|
180
|
+
if (prevOpts.hoverText !== opts.hoverText ||
|
|
181
|
+
prevOpts.maxDistance !== opts.maxDistance ||
|
|
182
|
+
prevOpts.showFeedback !== opts.showFeedback ||
|
|
183
|
+
prevOpts.showHighlight !== opts.showHighlight) {
|
|
184
|
+
removePointerEvent(entity, getPointerEvent(ty), opts.button);
|
|
185
|
+
setPointerEvent(entity, getPointerEvent(ty), opts);
|
|
186
|
+
}
|
|
187
|
+
}
|
|
188
|
+
else {
|
|
189
|
+
setPointerEvent(entity, getPointerEvent(ty), opts);
|
|
190
|
+
}
|
|
191
|
+
callbacks.set(opts.button, opts);
|
|
192
|
+
}
|
|
193
|
+
for (const button of previous.keys()) {
|
|
194
|
+
if (!callbacks.has(button)) {
|
|
195
|
+
removePointerEvent(entity, getPointerEvent(ty), button);
|
|
196
|
+
}
|
|
197
|
+
}
|
|
198
|
+
getEvent(entity).set(ty, callbacks);
|
|
199
|
+
};
|
|
126
200
|
};
|
|
127
201
|
return {
|
|
128
202
|
removeOnClick(entity) {
|
|
@@ -140,18 +214,22 @@ export function createPointerEventsSystem(engine, inputSystem) {
|
|
|
140
214
|
removeOnPointerHoverLeave(entity) {
|
|
141
215
|
removeEvent(entity, EventType.HoverLeave);
|
|
142
216
|
},
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
removeEvent(entity, EventType.
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
217
|
+
removeOnPointerDrag(entity) {
|
|
218
|
+
removeEvent(entity, EventType.Drag);
|
|
219
|
+
},
|
|
220
|
+
removeOnPointerDragLocked(entity) {
|
|
221
|
+
removeEvent(entity, EventType.DragLocked);
|
|
222
|
+
},
|
|
223
|
+
removeOnPointerDragEnd(entity) {
|
|
224
|
+
removeEvent(entity, EventType.DragEnd);
|
|
151
225
|
},
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
226
|
+
onClick: onPointerFunction(EventType.Click),
|
|
227
|
+
onPointerDown: onPointerFunction(EventType.Down),
|
|
228
|
+
onPointerUp: onPointerFunction(EventType.Up),
|
|
229
|
+
onPointerHoverEnter: onPointerFunction(EventType.HoverEnter),
|
|
230
|
+
onPointerHoverLeave: onPointerFunction(EventType.HoverLeave),
|
|
231
|
+
onPointerDrag: onPointerFunction(EventType.Drag),
|
|
232
|
+
onPointerDragLocked: onPointerFunction(EventType.DragLocked),
|
|
233
|
+
onPointerDragEnd: onPointerFunction(EventType.DragEnd)
|
|
156
234
|
};
|
|
157
235
|
}
|
package/dist/systems/tween.js
CHANGED
|
@@ -21,16 +21,16 @@ export function createTweenSystem(engine) {
|
|
|
21
21
|
const tweenState = TweenState.getOrNull(entity);
|
|
22
22
|
const tween = Tween.getOrNull(entity);
|
|
23
23
|
const tweenCache = cache.get(entity);
|
|
24
|
-
if (!tweenState || !tween
|
|
24
|
+
if (!tweenState || !tween)
|
|
25
25
|
return false;
|
|
26
26
|
/* istanbul ignore next */
|
|
27
27
|
if (
|
|
28
28
|
// Renderer notified that the tween is completed
|
|
29
|
-
|
|
30
|
-
((tweenState.state === 1 /* TweenStateStatus.TS_COMPLETED */ && !tweenCache.changed) ||
|
|
31
|
-
(tweenChanged(entity) && !tweenCache.changed)) &&
|
|
29
|
+
(tweenChanged(entity) || tweenState.state === 1 /* TweenStateStatus.TS_COMPLETED */) &&
|
|
32
30
|
// Avoid sending isCompleted multiple times
|
|
33
|
-
!tweenCache
|
|
31
|
+
!tweenCache?.completed &&
|
|
32
|
+
// Amount of frames needed to consider a tween completed
|
|
33
|
+
(tweenCache?.frames ?? 0) > 2) {
|
|
34
34
|
return true;
|
|
35
35
|
}
|
|
36
36
|
return false;
|
|
@@ -42,111 +42,86 @@ export function createTweenSystem(engine) {
|
|
|
42
42
|
if ((currentTween && !prevTween) || (!currentTween && prevTween)) {
|
|
43
43
|
return true;
|
|
44
44
|
}
|
|
45
|
-
if (!currentTween || !prevTween)
|
|
46
|
-
return false;
|
|
47
45
|
const currentBuff = new ReadWriteByteBuffer();
|
|
48
46
|
Tween.schema.serialize(currentTween, currentBuff);
|
|
49
|
-
const
|
|
50
|
-
return
|
|
47
|
+
const equal = dataCompare(currentBuff.toBinary(), prevTween);
|
|
48
|
+
return equal;
|
|
51
49
|
}
|
|
52
|
-
|
|
50
|
+
const restartTweens = [];
|
|
51
|
+
// Logic for sequence tweens
|
|
53
52
|
engine.addSystem(() => {
|
|
53
|
+
for (const restart of restartTweens) {
|
|
54
|
+
restart();
|
|
55
|
+
}
|
|
56
|
+
restartTweens.length = 0;
|
|
54
57
|
for (const [entity, tween] of engine.getEntitiesWith(Tween)) {
|
|
55
58
|
if (tweenChanged(entity)) {
|
|
56
59
|
const buffer = new ReadWriteByteBuffer();
|
|
57
60
|
Tween.schema.serialize(tween, buffer);
|
|
58
61
|
cache.set(entity, {
|
|
59
62
|
tween: buffer.toBinary(),
|
|
63
|
+
frames: 0,
|
|
60
64
|
completed: false,
|
|
61
65
|
changed: true
|
|
62
66
|
});
|
|
63
67
|
continue;
|
|
64
68
|
}
|
|
65
69
|
const tweenCache = cache.get(entity);
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
70
|
+
tweenCache.frames += 1;
|
|
71
|
+
tweenCache.changed = false;
|
|
72
|
+
if (isCompleted(entity)) {
|
|
73
|
+
// Reset tween frames.
|
|
74
|
+
tweenCache.frames = 0;
|
|
75
|
+
// set the tween completed to avoid calling this again for the same tween
|
|
76
|
+
tweenCache.completed = true;
|
|
77
|
+
const tweenSequence = TweenSequence.getOrNull(entity);
|
|
78
|
+
if (!tweenSequence)
|
|
79
|
+
continue;
|
|
80
|
+
const { sequence } = tweenSequence;
|
|
81
|
+
if (sequence && sequence.length) {
|
|
82
|
+
const [nextTweenSequence, ...otherTweens] = sequence;
|
|
83
|
+
Tween.createOrReplace(entity, nextTweenSequence);
|
|
84
|
+
const mutableTweenHelper = TweenSequence.getMutable(entity);
|
|
85
|
+
mutableTweenHelper.sequence = otherTweens;
|
|
86
|
+
if (tweenSequence.loop === 0 /* TweenLoop.TL_RESTART */) {
|
|
87
|
+
mutableTweenHelper.sequence.push(tween);
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
else if (tweenSequence.loop === 1 /* TweenLoop.TL_YOYO */) {
|
|
91
|
+
Tween.createOrReplace(entity, backwardsTween(tween));
|
|
92
|
+
}
|
|
93
|
+
else if (tweenSequence.loop === 0 /* TweenLoop.TL_RESTART */) {
|
|
94
|
+
Tween.deleteFrom(entity);
|
|
95
|
+
cache.delete(entity);
|
|
96
|
+
restartTweens.push(() => {
|
|
97
|
+
Tween.createOrReplace(entity, tween);
|
|
98
|
+
});
|
|
71
99
|
}
|
|
72
100
|
}
|
|
73
101
|
}
|
|
74
102
|
}, Number.NEGATIVE_INFINITY);
|
|
75
|
-
function
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
if (tween.mode?.$case === 'move' && tween.mode.move) {
|
|
79
|
-
return { ...tween, mode: { ...tween.mode, move: { start: tween.mode.move.end, end: tween.mode.move.start } } };
|
|
80
|
-
}
|
|
81
|
-
if (tween.mode?.$case === 'rotate' && tween.mode.rotate) {
|
|
82
|
-
return {
|
|
83
|
-
...tween,
|
|
84
|
-
mode: { ...tween.mode, rotate: { start: tween.mode.rotate.end, end: tween.mode.rotate.start } }
|
|
85
|
-
};
|
|
86
|
-
}
|
|
87
|
-
if (tween.mode?.$case === 'scale' && tween.mode.scale) {
|
|
88
|
-
return { ...tween, mode: { ...tween.mode, scale: { start: tween.mode.scale.end, end: tween.mode.scale.start } } };
|
|
89
|
-
}
|
|
90
|
-
if (tween.mode?.$case === 'textureMove' && tween.mode.textureMove) {
|
|
91
|
-
return {
|
|
92
|
-
...tween,
|
|
93
|
-
mode: { ...tween.mode, textureMove: { start: tween.mode.textureMove.end, end: tween.mode.textureMove.start } }
|
|
94
|
-
};
|
|
95
|
-
}
|
|
96
|
-
/* istanbul ignore next */
|
|
97
|
-
throw new Error('Invalid tween');
|
|
103
|
+
function backwardsTween(tween) {
|
|
104
|
+
if (tween.mode?.$case === 'move' && tween.mode.move) {
|
|
105
|
+
return { ...tween, mode: { ...tween.mode, move: { start: tween.mode.move.end, end: tween.mode.move.start } } };
|
|
98
106
|
}
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
}
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
const [nextTweenSequence, ...otherTweens] = sequence;
|
|
117
|
-
Tween.createOrReplace(entity, nextTweenSequence);
|
|
118
|
-
const mutableTweenHelper = TweenSequence.getMutable(entity);
|
|
119
|
-
mutableTweenHelper.sequence = otherTweens;
|
|
120
|
-
if (tweenSequence.loop === 0 /* TweenLoop.TL_RESTART */) {
|
|
121
|
-
mutableTweenHelper.sequence.push(tween);
|
|
122
|
-
}
|
|
123
|
-
// Reset completed flag for the next tween in sequence
|
|
124
|
-
// Mark as changed so the cache system will detect the change and reset the cache properly
|
|
125
|
-
tweenCache.completed = false;
|
|
126
|
-
tweenCache.changed = true;
|
|
127
|
-
}
|
|
128
|
-
else if (tweenSequence.loop === 1 /* TweenLoop.TL_YOYO */) {
|
|
129
|
-
Tween.createOrReplace(entity, backwardsTween(tween));
|
|
130
|
-
// Reset completed flag for the backwards tween
|
|
131
|
-
// Mark as changed so the cache system will detect the change and reset the cache properly
|
|
132
|
-
tweenCache.completed = false;
|
|
133
|
-
tweenCache.changed = true;
|
|
134
|
-
}
|
|
135
|
-
else if (tweenSequence.loop === 0 /* TweenLoop.TL_RESTART */) {
|
|
136
|
-
Tween.deleteFrom(entity);
|
|
137
|
-
cache.delete(entity);
|
|
138
|
-
restartTweens.push(() => {
|
|
139
|
-
Tween.createOrReplace(entity, tween);
|
|
140
|
-
});
|
|
141
|
-
}
|
|
142
|
-
}
|
|
143
|
-
}
|
|
144
|
-
}, Number.NEGATIVE_INFINITY);
|
|
107
|
+
if (tween.mode?.$case === 'rotate' && tween.mode.rotate) {
|
|
108
|
+
return {
|
|
109
|
+
...tween,
|
|
110
|
+
mode: { ...tween.mode, rotate: { start: tween.mode.rotate.end, end: tween.mode.rotate.start } }
|
|
111
|
+
};
|
|
112
|
+
}
|
|
113
|
+
if (tween.mode?.$case === 'scale' && tween.mode.scale) {
|
|
114
|
+
return { ...tween, mode: { ...tween.mode, scale: { start: tween.mode.scale.end, end: tween.mode.scale.start } } };
|
|
115
|
+
}
|
|
116
|
+
if (tween.mode?.$case === 'textureMove' && tween.mode.textureMove) {
|
|
117
|
+
return {
|
|
118
|
+
...tween,
|
|
119
|
+
mode: { ...tween.mode, textureMove: { start: tween.mode.textureMove.end, end: tween.mode.textureMove.start } }
|
|
120
|
+
};
|
|
121
|
+
}
|
|
122
|
+
/* istanbul ignore next */
|
|
123
|
+
throw new Error('Invalid tween');
|
|
145
124
|
}
|
|
146
|
-
// Some Explorers may not inject the flag and TweenSequence logic must be enabled in that case
|
|
147
|
-
const enableTweenSequenceLogic = globalThis.ENABLE_SDK_TWEEN_SEQUENCE;
|
|
148
|
-
if (enableTweenSequenceLogic !== false)
|
|
149
|
-
initializeTweenSequenceSystem();
|
|
150
125
|
const tweenSystem = {
|
|
151
126
|
// This event is fired only once per tween
|
|
152
127
|
tweenCompleted: isCompleted
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { IEngine, LastWriteWinElementSetComponentDefinition } from '../../engine';
|
|
2
|
+
import { PBAvatarEquippedData } from '../generated/pb/decentraland/sdk/components/avatar_equipped_data.gen';
|
|
3
|
+
/**
|
|
4
|
+
* @public
|
|
5
|
+
*/
|
|
6
|
+
export type AvatarEquippedDataComponentDefinitionExtended = LastWriteWinElementSetComponentDefinition<AvatarEquippedDataType>;
|
|
7
|
+
export type AvatarEquippedDataType = Omit<PBAvatarEquippedData, 'forceRender'> & {
|
|
8
|
+
forceRender?: string[] | undefined;
|
|
9
|
+
};
|
|
10
|
+
export declare function defineAvatarEquippedDataComponent(engine: Pick<IEngine, 'defineComponentFromSchema'>): AvatarEquippedDataComponentDefinitionExtended;
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.defineAvatarEquippedDataComponent = void 0;
|
|
4
|
+
const AvatarEquippedData_gen_1 = require("../generated/AvatarEquippedData.gen");
|
|
5
|
+
function defineAvatarEquippedDataComponent(engine) {
|
|
6
|
+
const patchedSchema = { ...AvatarEquippedData_gen_1.AvatarEquippedDataSchema };
|
|
7
|
+
const origSerialize = patchedSchema.serialize;
|
|
8
|
+
patchedSchema.serialize = (value, builder) => {
|
|
9
|
+
if (value.forceRender === undefined) {
|
|
10
|
+
origSerialize({ forceRender: [], ...value }, builder);
|
|
11
|
+
}
|
|
12
|
+
else {
|
|
13
|
+
origSerialize(value, builder);
|
|
14
|
+
}
|
|
15
|
+
};
|
|
16
|
+
const theComponent = engine.defineComponentFromSchema('core::AvatarEquippedData', patchedSchema);
|
|
17
|
+
return theComponent;
|
|
18
|
+
}
|
|
19
|
+
exports.defineAvatarEquippedDataComponent = defineAvatarEquippedDataComponent;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { IEngine, LastWriteWinElementSetComponentDefinition } from '../../engine';
|
|
2
|
+
import { PBAvatarShape } from '../generated/pb/decentraland/sdk/components/avatar_shape.gen';
|
|
3
|
+
/**
|
|
4
|
+
* @public
|
|
5
|
+
*/
|
|
6
|
+
export type AvatarShapeComponentDefinitionExtended = LastWriteWinElementSetComponentDefinition<AvatarShapeType>;
|
|
7
|
+
export type AvatarShapeType = Omit<PBAvatarShape, 'forceRender'> & {
|
|
8
|
+
forceRender?: string[] | undefined;
|
|
9
|
+
};
|
|
10
|
+
export declare function defineAvatarShapeComponent(engine: Pick<IEngine, 'defineComponentFromSchema'>): AvatarShapeComponentDefinitionExtended;
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.defineAvatarShapeComponent = void 0;
|
|
4
|
+
const AvatarShape_gen_1 = require("../generated/AvatarShape.gen");
|
|
5
|
+
function defineAvatarShapeComponent(engine) {
|
|
6
|
+
const patchedSchema = { ...AvatarShape_gen_1.AvatarShapeSchema };
|
|
7
|
+
const origSerialize = patchedSchema.serialize;
|
|
8
|
+
patchedSchema.serialize = (value, builder) => {
|
|
9
|
+
if (value.forceRender === undefined) {
|
|
10
|
+
origSerialize({ forceRender: [], ...value }, builder);
|
|
11
|
+
}
|
|
12
|
+
else {
|
|
13
|
+
origSerialize(value, builder);
|
|
14
|
+
}
|
|
15
|
+
};
|
|
16
|
+
const theComponent = engine.defineComponentFromSchema('core::AvatarShape', patchedSchema);
|
|
17
|
+
return theComponent;
|
|
18
|
+
}
|
|
19
|
+
exports.defineAvatarShapeComponent = defineAvatarShapeComponent;
|
|
@@ -34,5 +34,13 @@ export interface MeshColliderComponentDefinitionExtended extends LastWriteWinEle
|
|
|
34
34
|
* @param colliderMask - the set of layer where the collider reacts, default: Physics and Pointer
|
|
35
35
|
*/
|
|
36
36
|
setSphere(entity: Entity, colliderLayers?: ColliderLayer | ColliderLayer[]): void;
|
|
37
|
+
/**
|
|
38
|
+
* @public
|
|
39
|
+
* Set a gltf internal mesh in the MeshCollider component
|
|
40
|
+
* @param entity - entity to create or replace the MeshRenderer component
|
|
41
|
+
* @param source - the path to the gltf
|
|
42
|
+
* @param meshName - the name of the mesh in the gltf
|
|
43
|
+
*/
|
|
44
|
+
setGltfMesh(entity: Entity, source: string, meshName: string, colliderLayers?: ColliderLayer | ColliderLayer[]): void;
|
|
37
45
|
}
|
|
38
46
|
export declare function defineMeshColliderComponent(engine: Pick<IEngine, 'defineComponentFromSchema'>): MeshColliderComponentDefinitionExtended;
|
|
@@ -37,6 +37,12 @@ function defineMeshColliderComponent(engine) {
|
|
|
37
37
|
mesh: { $case: 'sphere', sphere: {} },
|
|
38
38
|
collisionMask: getCollisionMask(colliderLayers)
|
|
39
39
|
});
|
|
40
|
+
},
|
|
41
|
+
setGltfMesh(entity, source, meshName, colliderLayers) {
|
|
42
|
+
theComponent.createOrReplace(entity, {
|
|
43
|
+
mesh: { $case: 'gltf', gltf: { gltfSrc: source, name: meshName } },
|
|
44
|
+
collisionMask: getCollisionMask(colliderLayers)
|
|
45
|
+
});
|
|
40
46
|
}
|
|
41
47
|
};
|
|
42
48
|
}
|
|
@@ -32,5 +32,13 @@ export interface MeshRendererComponentDefinitionExtended extends LastWriteWinEle
|
|
|
32
32
|
* @param entity - entity to create or replace the MeshRenderer component
|
|
33
33
|
*/
|
|
34
34
|
setSphere(entity: Entity): void;
|
|
35
|
+
/**
|
|
36
|
+
* @public
|
|
37
|
+
* Set a gltf internal mesh in the MeshRenderer component
|
|
38
|
+
* @param entity - entity to create or replace the MeshRenderer component
|
|
39
|
+
* @param source - the path to the gltf
|
|
40
|
+
* @param meshName - the name of the mesh in the gltf
|
|
41
|
+
*/
|
|
42
|
+
setGltfMesh(entity: Entity, source: string, meshName: string): void;
|
|
35
43
|
}
|
|
36
44
|
export declare function defineMeshRendererComponent(engine: Pick<IEngine, 'defineComponentFromSchema'>): MeshRendererComponentDefinitionExtended;
|
|
@@ -25,6 +25,11 @@ function defineMeshRendererComponent(engine) {
|
|
|
25
25
|
theComponent.createOrReplace(entity, {
|
|
26
26
|
mesh: { $case: 'sphere', sphere: {} }
|
|
27
27
|
});
|
|
28
|
+
},
|
|
29
|
+
setGltfMesh(entity, source, meshName) {
|
|
30
|
+
theComponent.createOrReplace(entity, {
|
|
31
|
+
mesh: { $case: 'gltf', gltf: { gltfSrc: source, name: meshName } }
|
|
32
|
+
});
|
|
28
33
|
}
|
|
29
34
|
};
|
|
30
35
|
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.CameraLayerSchema = void 0;
|
|
4
|
+
const camera_layer_gen_1 = require("./pb/decentraland/sdk/components/camera_layer.gen");
|
|
5
|
+
/**
|
|
6
|
+
* @internal
|
|
7
|
+
*/
|
|
8
|
+
exports.CameraLayerSchema = {
|
|
9
|
+
COMPONENT_ID: 1211,
|
|
10
|
+
serialize(value, builder) {
|
|
11
|
+
const writer = camera_layer_gen_1.PBCameraLayer.encode(value);
|
|
12
|
+
const buffer = new Uint8Array(writer.finish(), 0, writer.len);
|
|
13
|
+
builder.writeBuffer(buffer, false);
|
|
14
|
+
},
|
|
15
|
+
deserialize(reader) {
|
|
16
|
+
return camera_layer_gen_1.PBCameraLayer.decode(reader.buffer(), reader.remainingBytes());
|
|
17
|
+
},
|
|
18
|
+
create() {
|
|
19
|
+
// TODO: this is a hack.
|
|
20
|
+
return camera_layer_gen_1.PBCameraLayer.decode(new Uint8Array());
|
|
21
|
+
},
|
|
22
|
+
jsonSchema: {
|
|
23
|
+
type: "object",
|
|
24
|
+
properties: {},
|
|
25
|
+
serializationType: "protocol-buffer",
|
|
26
|
+
protocolBuffer: "PBCameraLayer"
|
|
27
|
+
}
|
|
28
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.CameraLayersSchema = void 0;
|
|
4
|
+
const camera_layers_gen_1 = require("./pb/decentraland/sdk/components/camera_layers.gen");
|
|
5
|
+
/**
|
|
6
|
+
* @internal
|
|
7
|
+
*/
|
|
8
|
+
exports.CameraLayersSchema = {
|
|
9
|
+
COMPONENT_ID: 1208,
|
|
10
|
+
serialize(value, builder) {
|
|
11
|
+
const writer = camera_layers_gen_1.PBCameraLayers.encode(value);
|
|
12
|
+
const buffer = new Uint8Array(writer.finish(), 0, writer.len);
|
|
13
|
+
builder.writeBuffer(buffer, false);
|
|
14
|
+
},
|
|
15
|
+
deserialize(reader) {
|
|
16
|
+
return camera_layers_gen_1.PBCameraLayers.decode(reader.buffer(), reader.remainingBytes());
|
|
17
|
+
},
|
|
18
|
+
create() {
|
|
19
|
+
// TODO: this is a hack.
|
|
20
|
+
return camera_layers_gen_1.PBCameraLayers.decode(new Uint8Array());
|
|
21
|
+
},
|
|
22
|
+
jsonSchema: {
|
|
23
|
+
type: "object",
|
|
24
|
+
properties: {},
|
|
25
|
+
serializationType: "protocol-buffer",
|
|
26
|
+
protocolBuffer: "PBCameraLayers"
|
|
27
|
+
}
|
|
28
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|