@gamelearn/arcade-components 0.4.0 → 0.4.1-beta-terminal
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/arcade-render/element/AnimateElement.js +6 -2
- package/dist/components/arcade-render/element/index.js +10 -18
- package/dist/components/arcade-render/loading/LoadingLogic.js +28 -1
- package/dist/components/arcade-render/mocks/index.js +3 -3
- package/dist/components/chained-image-click-puzzle-component/components/ChainedImageClickPuzzleComponent.js +73 -0
- package/dist/components/chained-image-click-puzzle-component/components/CurrentImagePuzzle.js +155 -0
- package/dist/components/chained-image-click-puzzle-component/index.js +13 -0
- package/dist/components/chained-image-click-puzzle-component/mocks/mockForStory.js +163 -0
- package/dist/components/comic-component/mocks/mockForStory.js +4 -4
- package/dist/components/conversational-pro-component/components/scene/Panel.js +3 -0
- package/dist/components/conversational-pro-component/mocks/mockForStory.js +20 -20
- package/dist/components/drag-item-puzzle-component/components/DragItemPuzzleComponent.js +329 -0
- package/dist/components/drag-item-puzzle-component/components/Messages.js +55 -0
- package/dist/components/drag-item-puzzle-component/index.js +13 -0
- package/dist/components/drag-item-puzzle-component/mocks/mockForStory.js +79 -0
- package/dist/components/hanged-puzzle-component/mocks/mockForStory.js +1 -1
- package/dist/components/image-click-wrapper-component/components/Area/index.js +1 -1
- package/dist/components/image-click-wrapper-component/components/Feedback/index.js +4 -5
- package/dist/components/image-click-wrapper-component/components/ImageClickWrapperComponent.js +31 -17
- package/dist/components/image-component/mocks/mockForStory.js +3 -3
- package/dist/components/index.js +40 -0
- package/dist/components/inventory-item/components/InventoryItem.js +2 -1
- package/dist/components/keyboard-puzzle-component/mocks/mockForStory.js +1 -1
- package/dist/components/login-puzzle-component/mocks/mockForStory.js +3 -3
- package/dist/components/pdf-component/components/PdfComponent.js +40 -7
- package/dist/components/pdf-component/components/PdfVisor.js +86 -33
- package/dist/components/pdf-component/mocks/mockForProps.js +21 -5
- package/dist/components/terminal-puzzle-component/components/FilesGroup/Item.js +32 -0
- package/dist/components/terminal-puzzle-component/components/FilesGroup/index.js +74 -0
- package/dist/components/terminal-puzzle-component/components/Image/index.js +26 -0
- package/dist/components/terminal-puzzle-component/components/TerminalPuzzleComponent.js +163 -0
- package/dist/components/terminal-puzzle-component/components/Visor/index.js +133 -0
- package/dist/components/terminal-puzzle-component/components/utils/index.js +29 -0
- package/dist/components/terminal-puzzle-component/index.js +13 -0
- package/dist/components/terminal-puzzle-component/mocks/mockForStory.js +190 -0
- package/dist/components/video-component/mocks/mockForStory.js +5 -5
- package/dist/components/video-visor/mocks/mockForStory.js +4 -4
- package/dist/components/web-builder-puzzle-component/Popups/PopupColorComponent/index.js +99 -0
- package/dist/components/web-builder-puzzle-component/Popups/PopupImageComponent/index.js +113 -0
- package/dist/components/web-builder-puzzle-component/Popups/PopupTextComponent/index.js +122 -0
- package/dist/components/web-builder-puzzle-component/Popups/index.js +31 -0
- package/dist/components/web-builder-puzzle-component/Templates/Bank.js +98 -0
- package/dist/components/web-builder-puzzle-component/Templates/Facebook.js +39 -0
- package/dist/components/web-builder-puzzle-component/Templates/resourcePath.js +9 -0
- package/dist/components/web-builder-puzzle-component/components/EditButton/index.js +28 -0
- package/dist/components/web-builder-puzzle-component/components/Feedback/index.js +38 -0
- package/dist/components/web-builder-puzzle-component/components/PublishButton/index.js +29 -0
- package/dist/components/web-builder-puzzle-component/components/WebBuilderBody/BankBody.js +124 -0
- package/dist/components/web-builder-puzzle-component/components/WebBuilderBody/FacebookBody.js +154 -0
- package/dist/components/web-builder-puzzle-component/components/WebBuilderBody/index.js +32 -0
- package/dist/components/web-builder-puzzle-component/components/WebBuilderFront/index.js +98 -0
- package/dist/components/web-builder-puzzle-component/components/WebBuilderHeader/BankHeader.js +92 -0
- package/dist/components/web-builder-puzzle-component/components/WebBuilderHeader/FacebookHeader.js +50 -0
- package/dist/components/web-builder-puzzle-component/components/WebBuilderHeader/index.js +47 -0
- package/dist/components/web-builder-puzzle-component/components/WebBuilderPuzzleComponent.js +337 -0
- package/dist/components/web-builder-puzzle-component/components/WebBuilderTopBar/index.js +36 -0
- package/dist/components/web-builder-puzzle-component/index.js +13 -0
- package/dist/components/web-builder-puzzle-component/mocks/mockForStory.js +29 -0
- package/dist/components/writer-puzzle-component/components/ElectionComponent.js +89 -0
- package/dist/components/writer-puzzle-component/components/FeedbackComponent.js +138 -0
- package/dist/components/writer-puzzle-component/components/FeedbackElement.js +40 -0
- package/dist/components/writer-puzzle-component/components/FinishedTextComponent.js +36 -0
- package/dist/components/writer-puzzle-component/components/FixedComponent.js +166 -0
- package/dist/components/writer-puzzle-component/components/Rewards.js +203 -0
- package/dist/components/writer-puzzle-component/components/SingleElection.js +141 -0
- package/dist/components/writer-puzzle-component/components/WriterPuzzleComponent.js +552 -0
- package/dist/components/writer-puzzle-component/index.js +13 -0
- package/dist/components/writer-puzzle-component/mocks/mockForStory.js +861 -0
- package/dist/helpers/drawLOD.js +35 -47
- package/dist/helpers/useGLB.js +22 -8
- package/package.json +6 -14
package/dist/helpers/drawLOD.js
CHANGED
|
@@ -94,12 +94,14 @@ function makeTextSprite(message, opts) {
|
|
|
94
94
|
sprite.center.set(0.5, 0.5);
|
|
95
95
|
return sprite;
|
|
96
96
|
}
|
|
97
|
+
/*
|
|
98
|
+
const texturablesDone = (params) => {
|
|
99
|
+
params._texturableElements.forEach((elem) => {
|
|
100
|
+
elem.userData._isDone = true;
|
|
101
|
+
})
|
|
102
|
+
}
|
|
103
|
+
*/
|
|
97
104
|
|
|
98
|
-
var texturablesDone = function texturablesDone(params) {
|
|
99
|
-
params._texturableElements.forEach(function (elem) {
|
|
100
|
-
elem._isDone = true;
|
|
101
|
-
});
|
|
102
|
-
};
|
|
103
105
|
|
|
104
106
|
var materialize = function materialize(params, lod) {
|
|
105
107
|
var totalLods = 0;
|
|
@@ -113,13 +115,10 @@ var materialize = function materialize(params, lod) {
|
|
|
113
115
|
|
|
114
116
|
if (currentIndex < lastIndex) {
|
|
115
117
|
materialize(params, progressiveOrder[currentIndex + 1]);
|
|
116
|
-
} else {
|
|
117
|
-
|
|
118
|
-
|
|
118
|
+
} else {// texturablesDone(params);
|
|
119
|
+
}
|
|
120
|
+
} else {// texturablesDone(params);
|
|
119
121
|
}
|
|
120
|
-
} else {
|
|
121
|
-
texturablesDone(params);
|
|
122
|
-
}
|
|
123
122
|
}
|
|
124
123
|
};
|
|
125
124
|
|
|
@@ -128,18 +127,19 @@ var materialize = function materialize(params, lod) {
|
|
|
128
127
|
return;
|
|
129
128
|
}
|
|
130
129
|
|
|
131
|
-
|
|
132
|
-
var jsonUrl = elem.url.replace('.glb', '.json');
|
|
130
|
+
var jsonUrl = elem.userData.url.replace('.glb', '.json');
|
|
133
131
|
fetch(jsonUrl).then(function (response) {
|
|
134
132
|
return response.json();
|
|
135
133
|
}).then(function (materials) {
|
|
136
134
|
elem.traverse(function (obj) {
|
|
137
|
-
if (obj.isMesh || obj.isSkinnedMesh) {
|
|
135
|
+
if ((obj.isMesh || obj.isSkinnedMesh) && (!obj.material._isDone || !obj.material._isDone[lod])) {
|
|
138
136
|
obj.material.wireframe = false;
|
|
137
|
+
if (!obj.material._isDone) obj.material._isDone = {};
|
|
138
|
+
obj.material._isDone[lod] = true;
|
|
139
139
|
|
|
140
140
|
if (materials[obj.material.name]) {
|
|
141
141
|
materials[obj.material.name].forEach(function (item) {
|
|
142
|
-
var imgSrc = "".concat(elem.url, ".textures.").concat(lod, ".").concat(item.positionInArray, ".png");
|
|
142
|
+
var imgSrc = "".concat(elem.userData.url, ".textures.").concat(lod, ".").concat(item.positionInArray, ".png");
|
|
143
143
|
imgLoader.load(imgSrc, function (result) {
|
|
144
144
|
if (showStats) {
|
|
145
145
|
statsTextures(lod, imgSrc, result);
|
|
@@ -184,34 +184,13 @@ var materialize = function materialize(params, lod) {
|
|
|
184
184
|
};
|
|
185
185
|
|
|
186
186
|
var updateSceneLods = function updateSceneLods(params) {
|
|
187
|
-
if (!pureGlbMode && !pureGeometryMode
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
} else {
|
|
193
|
-
materialize(params, currentLOD);
|
|
194
|
-
}
|
|
195
|
-
}
|
|
196
|
-
};
|
|
197
|
-
|
|
198
|
-
var getPerspectiveCamera = function getPerspectiveCamera(params) {
|
|
199
|
-
params._scene.children.forEach(function (item) {
|
|
200
|
-
if (item.type === 'PerspectiveCamera') {
|
|
201
|
-
params._camera = item;
|
|
202
|
-
|
|
203
|
-
if (showHelpers) {
|
|
204
|
-
var helper = new THREE.CameraHelper(params._camera.clone());
|
|
205
|
-
|
|
206
|
-
params._helpers.add(helper);
|
|
207
|
-
|
|
208
|
-
helper.update();
|
|
209
|
-
}
|
|
210
|
-
|
|
211
|
-
;
|
|
212
|
-
return;
|
|
187
|
+
if (!pureGlbMode && !pureGeometryMode) {
|
|
188
|
+
if (progressiveMode) {
|
|
189
|
+
materialize(params, progressiveOrder[0]);
|
|
190
|
+
} else {
|
|
191
|
+
materialize(params, currentLOD);
|
|
213
192
|
}
|
|
214
|
-
}
|
|
193
|
+
}
|
|
215
194
|
};
|
|
216
195
|
|
|
217
196
|
var invalidateOutOfFrustum = function invalidateOutOfFrustum(params) {
|
|
@@ -262,7 +241,7 @@ var checkDistances = function checkDistances(params) {
|
|
|
262
241
|
|
|
263
242
|
var statsGeometries = function statsGeometries(params) {
|
|
264
243
|
params._texturableElements.forEach(function (item) {
|
|
265
|
-
var url = item.url.replace('.glb', '.geometry.glb');
|
|
244
|
+
var url = item.userData.url.replace('.glb', '.geometry.glb');
|
|
266
245
|
fetch(url).then(function (response) {
|
|
267
246
|
return response.blob();
|
|
268
247
|
}).then(function (blob) {
|
|
@@ -289,7 +268,7 @@ var setTexturableElements = function setTexturableElements(params) {
|
|
|
289
268
|
params._texturableElements = [];
|
|
290
269
|
|
|
291
270
|
params._scene.traverse(function (item) {
|
|
292
|
-
if (item.url) {
|
|
271
|
+
if (item.userData.url) {
|
|
293
272
|
params._texturableElements.push(item);
|
|
294
273
|
}
|
|
295
274
|
});
|
|
@@ -313,7 +292,8 @@ var getHelpers = function getHelpers(scene) {
|
|
|
313
292
|
return helper;
|
|
314
293
|
};
|
|
315
294
|
|
|
316
|
-
var drawLOD = function drawLOD(scene) {
|
|
295
|
+
var drawLOD = function drawLOD(scene, camera) {
|
|
296
|
+
if (!camera.parent) return;
|
|
317
297
|
var params = {};
|
|
318
298
|
params._texturesFrustum = texturesFrustum;
|
|
319
299
|
params._texturesDistance = texturesDistance;
|
|
@@ -326,11 +306,19 @@ var drawLOD = function drawLOD(scene) {
|
|
|
326
306
|
|
|
327
307
|
params._scene.add(params._helpers);
|
|
328
308
|
|
|
329
|
-
params._camera =
|
|
309
|
+
params._camera = camera;
|
|
330
310
|
params._frustum = null;
|
|
331
311
|
|
|
332
312
|
if (params._texturesFrustum || params._texturesDistance) {
|
|
333
|
-
|
|
313
|
+
if (showHelpers) {
|
|
314
|
+
var helper = new THREE.CameraHelper(params._camera.clone());
|
|
315
|
+
|
|
316
|
+
params._helpers.add(helper);
|
|
317
|
+
|
|
318
|
+
helper.update();
|
|
319
|
+
}
|
|
320
|
+
|
|
321
|
+
;
|
|
334
322
|
|
|
335
323
|
if (params._camera) {
|
|
336
324
|
params._frustum = new THREE.Frustum();
|
package/dist/helpers/useGLB.js
CHANGED
|
@@ -18,22 +18,36 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { de
|
|
|
18
18
|
// used
|
|
19
19
|
var dracoDecoderPath = 'https://www.gstatic.com/draco/versioned/decoders/1.4.1/'; // TODO: Maybe download those files to statics.gamelearn
|
|
20
20
|
|
|
21
|
+
var whiteImage = new Image();
|
|
22
|
+
whiteImage.src = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mP8/x8AAwMCAO+ip1sAAAAASUVORK5CYII=';
|
|
21
23
|
var dracoLoader = new _DRACOLoader.DRACOLoader();
|
|
22
24
|
var gltfLoader = new _GLTFLoader.GLTFLoader();
|
|
23
25
|
dracoLoader.setDecoderPath(dracoDecoderPath);
|
|
24
26
|
gltfLoader.setDRACOLoader(dracoLoader);
|
|
25
27
|
|
|
26
|
-
var
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
28
|
+
var treatGeometry = function treatGeometry(res) {
|
|
29
|
+
res.scene.traverse(function (obj) {
|
|
30
|
+
if (obj.isMesh || obj.isSkinnedMesh) {
|
|
31
|
+
var keys = Object.keys(obj.material);
|
|
32
|
+
keys.forEach(function (key) {
|
|
33
|
+
var value = obj.material[key];
|
|
34
|
+
|
|
35
|
+
if (value && value.isTexture) {
|
|
36
|
+
obj.material[key].image = whiteImage;
|
|
37
|
+
}
|
|
38
|
+
});
|
|
39
|
+
obj.material.needsUpdate = true;
|
|
40
|
+
}
|
|
41
|
+
});
|
|
42
|
+
};
|
|
34
43
|
|
|
44
|
+
var fetchGlb = function fetchGlb(originalUrl) {
|
|
45
|
+
var isTexturableObject = originalUrl.includes('/character/') || originalUrl.includes('/object/');
|
|
46
|
+
var url = isTexturableObject ? originalUrl.replace('.glb', '.geometry.glb') : originalUrl;
|
|
35
47
|
return new Promise(function (resolve, reject) {
|
|
36
48
|
gltfLoader.load(url, function (result) {
|
|
49
|
+
treatGeometry(result);
|
|
50
|
+
result.scene.userData.url = originalUrl;
|
|
37
51
|
resolve(result);
|
|
38
52
|
}, null, function (error) {
|
|
39
53
|
return reject(error);
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@gamelearn/arcade-components",
|
|
3
3
|
"license": "Gamelearn",
|
|
4
|
-
"version": "0.4.
|
|
4
|
+
"version": "0.4.1-beta-terminal",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"files": [
|
|
7
7
|
"dist",
|
|
@@ -18,6 +18,8 @@
|
|
|
18
18
|
"@testing-library/react": "11.1.0",
|
|
19
19
|
"@testing-library/user-event": "12.1.10",
|
|
20
20
|
"hls.js": "0.12.4",
|
|
21
|
+
"html-react-parser": "^0.10.2",
|
|
22
|
+
"interactjs": "^1.10.11",
|
|
21
23
|
"konva": "^7.2.5",
|
|
22
24
|
"prop-types": "15.7.2",
|
|
23
25
|
"react-konva": "^17.0.2-0",
|
|
@@ -36,9 +38,7 @@
|
|
|
36
38
|
"eject": "react-scripts eject",
|
|
37
39
|
"storybook": "start-storybook -p 6006 -s public",
|
|
38
40
|
"build-storybook": "build-storybook -s public",
|
|
39
|
-
"generate": "plop"
|
|
40
|
-
"postinstall": "husky install",
|
|
41
|
-
"pre-commit": "lint-staged"
|
|
41
|
+
"generate": "plop"
|
|
42
42
|
},
|
|
43
43
|
"browserslist": {
|
|
44
44
|
"production": [
|
|
@@ -56,8 +56,7 @@
|
|
|
56
56
|
"@babel/cli": "7.12.10",
|
|
57
57
|
"@babel/preset-env": "7.12.11",
|
|
58
58
|
"@babel/preset-react": "7.12.10",
|
|
59
|
-
"@gamelearn/ui-components-core": "5.
|
|
60
|
-
"@gamelearn/version": "^1.0.3",
|
|
59
|
+
"@gamelearn/ui-components-core": "5.16.0",
|
|
61
60
|
"@react-three/test-renderer": "6.0.6",
|
|
62
61
|
"@storybook/addon-actions": "6.1.11",
|
|
63
62
|
"@storybook/addon-essentials": "6.1.11",
|
|
@@ -67,8 +66,6 @@
|
|
|
67
66
|
"@storybook/react": "6.1.11",
|
|
68
67
|
"babel-loader": "8.2.2",
|
|
69
68
|
"cross-env": "7.0.3",
|
|
70
|
-
"husky": "^6.0.0",
|
|
71
|
-
"lint-staged": "^11.0.0",
|
|
72
69
|
"plop": "^2.7.4",
|
|
73
70
|
"react": "0.0.0-experimental-27659559e",
|
|
74
71
|
"react-dom": "0.0.0-experimental-27659559e",
|
|
@@ -79,10 +76,5 @@
|
|
|
79
76
|
"moduleNameMapper": {
|
|
80
77
|
"^react-pdf$": "react-pdf/dist/umd/entry.jest"
|
|
81
78
|
}
|
|
82
|
-
},
|
|
83
|
-
"lint-staged": {
|
|
84
|
-
"src/**/*.{js,jsx,ts,tsx,json,css,scss,md}": [
|
|
85
|
-
"prettier --write"
|
|
86
|
-
]
|
|
87
79
|
}
|
|
88
|
-
}
|
|
80
|
+
}
|