@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.
Files changed (71) hide show
  1. package/dist/components/arcade-render/element/AnimateElement.js +6 -2
  2. package/dist/components/arcade-render/element/index.js +10 -18
  3. package/dist/components/arcade-render/loading/LoadingLogic.js +28 -1
  4. package/dist/components/arcade-render/mocks/index.js +3 -3
  5. package/dist/components/chained-image-click-puzzle-component/components/ChainedImageClickPuzzleComponent.js +73 -0
  6. package/dist/components/chained-image-click-puzzle-component/components/CurrentImagePuzzle.js +155 -0
  7. package/dist/components/chained-image-click-puzzle-component/index.js +13 -0
  8. package/dist/components/chained-image-click-puzzle-component/mocks/mockForStory.js +163 -0
  9. package/dist/components/comic-component/mocks/mockForStory.js +4 -4
  10. package/dist/components/conversational-pro-component/components/scene/Panel.js +3 -0
  11. package/dist/components/conversational-pro-component/mocks/mockForStory.js +20 -20
  12. package/dist/components/drag-item-puzzle-component/components/DragItemPuzzleComponent.js +329 -0
  13. package/dist/components/drag-item-puzzle-component/components/Messages.js +55 -0
  14. package/dist/components/drag-item-puzzle-component/index.js +13 -0
  15. package/dist/components/drag-item-puzzle-component/mocks/mockForStory.js +79 -0
  16. package/dist/components/hanged-puzzle-component/mocks/mockForStory.js +1 -1
  17. package/dist/components/image-click-wrapper-component/components/Area/index.js +1 -1
  18. package/dist/components/image-click-wrapper-component/components/Feedback/index.js +4 -5
  19. package/dist/components/image-click-wrapper-component/components/ImageClickWrapperComponent.js +31 -17
  20. package/dist/components/image-component/mocks/mockForStory.js +3 -3
  21. package/dist/components/index.js +40 -0
  22. package/dist/components/inventory-item/components/InventoryItem.js +2 -1
  23. package/dist/components/keyboard-puzzle-component/mocks/mockForStory.js +1 -1
  24. package/dist/components/login-puzzle-component/mocks/mockForStory.js +3 -3
  25. package/dist/components/pdf-component/components/PdfComponent.js +40 -7
  26. package/dist/components/pdf-component/components/PdfVisor.js +86 -33
  27. package/dist/components/pdf-component/mocks/mockForProps.js +21 -5
  28. package/dist/components/terminal-puzzle-component/components/FilesGroup/Item.js +32 -0
  29. package/dist/components/terminal-puzzle-component/components/FilesGroup/index.js +74 -0
  30. package/dist/components/terminal-puzzle-component/components/Image/index.js +26 -0
  31. package/dist/components/terminal-puzzle-component/components/TerminalPuzzleComponent.js +163 -0
  32. package/dist/components/terminal-puzzle-component/components/Visor/index.js +133 -0
  33. package/dist/components/terminal-puzzle-component/components/utils/index.js +29 -0
  34. package/dist/components/terminal-puzzle-component/index.js +13 -0
  35. package/dist/components/terminal-puzzle-component/mocks/mockForStory.js +190 -0
  36. package/dist/components/video-component/mocks/mockForStory.js +5 -5
  37. package/dist/components/video-visor/mocks/mockForStory.js +4 -4
  38. package/dist/components/web-builder-puzzle-component/Popups/PopupColorComponent/index.js +99 -0
  39. package/dist/components/web-builder-puzzle-component/Popups/PopupImageComponent/index.js +113 -0
  40. package/dist/components/web-builder-puzzle-component/Popups/PopupTextComponent/index.js +122 -0
  41. package/dist/components/web-builder-puzzle-component/Popups/index.js +31 -0
  42. package/dist/components/web-builder-puzzle-component/Templates/Bank.js +98 -0
  43. package/dist/components/web-builder-puzzle-component/Templates/Facebook.js +39 -0
  44. package/dist/components/web-builder-puzzle-component/Templates/resourcePath.js +9 -0
  45. package/dist/components/web-builder-puzzle-component/components/EditButton/index.js +28 -0
  46. package/dist/components/web-builder-puzzle-component/components/Feedback/index.js +38 -0
  47. package/dist/components/web-builder-puzzle-component/components/PublishButton/index.js +29 -0
  48. package/dist/components/web-builder-puzzle-component/components/WebBuilderBody/BankBody.js +124 -0
  49. package/dist/components/web-builder-puzzle-component/components/WebBuilderBody/FacebookBody.js +154 -0
  50. package/dist/components/web-builder-puzzle-component/components/WebBuilderBody/index.js +32 -0
  51. package/dist/components/web-builder-puzzle-component/components/WebBuilderFront/index.js +98 -0
  52. package/dist/components/web-builder-puzzle-component/components/WebBuilderHeader/BankHeader.js +92 -0
  53. package/dist/components/web-builder-puzzle-component/components/WebBuilderHeader/FacebookHeader.js +50 -0
  54. package/dist/components/web-builder-puzzle-component/components/WebBuilderHeader/index.js +47 -0
  55. package/dist/components/web-builder-puzzle-component/components/WebBuilderPuzzleComponent.js +337 -0
  56. package/dist/components/web-builder-puzzle-component/components/WebBuilderTopBar/index.js +36 -0
  57. package/dist/components/web-builder-puzzle-component/index.js +13 -0
  58. package/dist/components/web-builder-puzzle-component/mocks/mockForStory.js +29 -0
  59. package/dist/components/writer-puzzle-component/components/ElectionComponent.js +89 -0
  60. package/dist/components/writer-puzzle-component/components/FeedbackComponent.js +138 -0
  61. package/dist/components/writer-puzzle-component/components/FeedbackElement.js +40 -0
  62. package/dist/components/writer-puzzle-component/components/FinishedTextComponent.js +36 -0
  63. package/dist/components/writer-puzzle-component/components/FixedComponent.js +166 -0
  64. package/dist/components/writer-puzzle-component/components/Rewards.js +203 -0
  65. package/dist/components/writer-puzzle-component/components/SingleElection.js +141 -0
  66. package/dist/components/writer-puzzle-component/components/WriterPuzzleComponent.js +552 -0
  67. package/dist/components/writer-puzzle-component/index.js +13 -0
  68. package/dist/components/writer-puzzle-component/mocks/mockForStory.js +861 -0
  69. package/dist/helpers/drawLOD.js +35 -47
  70. package/dist/helpers/useGLB.js +22 -8
  71. package/package.json +6 -14
@@ -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
- params._scene._isDone = true;
118
- texturablesDone(params);
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
- if (elem._isDone) return;
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
- /*&& !params._scene._isDone*/
189
- ) {
190
- if (progressiveMode) {
191
- materialize(params, progressiveOrder[0]);
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 = null;
309
+ params._camera = camera;
330
310
  params._frustum = null;
331
311
 
332
312
  if (params._texturesFrustum || params._texturesDistance) {
333
- getPerspectiveCamera(params);
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();
@@ -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 fetchGlb = function fetchGlb(originalUrl) {
27
- var takeGeometry = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
28
- var url = originalUrl;
29
-
30
- if (takeGeometry) {
31
- var isTexturableObject = url.includes('/character/') || url.includes('/object/');
32
- url = isTexturableObject ? url.replace('.glb', '.geometry.glb') : url;
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.0",
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.10.1",
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
+ }