@gamelearn/arcade-components 0.11.2 → 0.14.0
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/loading/LoadingLogic.js +4 -3
- package/dist/components/arcade-render/scene/ConfigController.js +70 -4
- package/dist/components/arcade-render/scene/index.js +8 -3
- package/dist/components/cards-selector-puzzle-component/components/CardsSelectorPuzzleComponent.js +7 -1
- package/dist/components/cards-selector-puzzle-component/mocks/mockForStory.js +1 -0
- package/dist/components/cartel-component/components/CartelComponent.js +24 -6
- package/dist/components/chained-image-click-puzzle-component/components/CurrentImagePuzzle.js +7 -2
- package/dist/components/conversational-component/components/ConversationalComponent.js +3 -1
- package/dist/components/conversational-pro-component/components/ConversationalProComponent.js +5 -2
- package/dist/components/conversational-pro-component/components/SlotList.js +3 -1
- package/dist/components/conversational-pro-component/components/scene/Panel.js +4 -3
- package/dist/components/conversational-pro-component/components/scene/Panels.js +4 -2
- package/dist/components/conversational-pro-component/components/scene/index.js +4 -2
- package/dist/components/conversational-pro-component/mocks/mockForStory.js +266 -2
- package/dist/components/cracker-puzzle-component/components/CrackerPuzzleComponent.js +11 -21
- package/dist/components/cracker-puzzle-component/mocks/mockForStory.js +1 -0
- package/dist/components/decision-component/components/DecisionBody.js +0 -2
- package/dist/components/decision-component/components/DecisionComponent.js +9 -2
- package/dist/components/decision-component/components/Feedback.js +0 -2
- package/dist/components/decision-component/mocks/mockForStory.js +20 -6
- package/dist/components/frame-click-puzzle-component/components/FrameClickPuzzleComponent.js +0 -1
- package/dist/components/frame-click-puzzle-component/components/PlayButton/index.js +2 -2
- package/dist/components/hacker-puzzle-component/components/HackerPuzzleComponent.js +6 -8
- package/dist/components/hacker-puzzle-component/components/languages.js +2 -1
- package/dist/components/hacker-puzzle-component/mocks/mockForStory.js +3 -0
- package/dist/components/hanged-puzzle-component/components/HangedPuzzleComponent.js +33 -64
- package/dist/components/index.js +8 -0
- package/dist/components/inventory-item/components/InventoryItem.js +3 -2
- package/dist/components/keyboard-puzzle-component/components/KeyboardPuzzleComponent.js +10 -1
- package/dist/components/keyboard-puzzle-component/mocks/mockForStory.js +1 -0
- package/dist/components/login-puzzle-component/components/LoginPuzzleComponent.js +6 -0
- package/dist/components/login-puzzle-component/mocks/mockForStory.js +1 -0
- package/dist/components/media-visor/components/MediaVisor.js +140 -0
- package/dist/components/media-visor/index.js +13 -0
- package/dist/components/media-visor/mocks/mockForStory.js +27 -0
- package/dist/components/pdf-component/components/PdfComponent.js +1 -1
- package/dist/components/pdf-component/components/PdfVisor.js +5 -6
- package/dist/components/rewards-component/components/RewardsComponent.js +0 -1
- package/dist/components/survey-component/components/SurveyComponent.js +13 -8
- package/dist/components/terminal-puzzle-component/components/TerminalPuzzleComponent.js +6 -1
- package/dist/components/terminal-puzzle-component/mocks/mockForStory.js +1 -0
- package/dist/components/web-builder-puzzle-component/components/WebBuilderPuzzleComponent.js +5 -0
- package/dist/components/web-builder-puzzle-component/mocks/mockForStory.js +1 -0
- package/dist/components/writer-puzzle-component/components/WriterPuzzleComponent.js +7 -6
- package/dist/components/writer-puzzle-component/mocks/mockForStory.js +1 -0
- package/dist/helpers/deviceDetection.js +13 -0
- package/dist/helpers/drawLOD.js +16 -10
- package/dist/helpers/index.js +7 -1
- package/dist/helpers/useWindowSize.js +56 -0
- package/package.json +3 -3
package/dist/components/web-builder-puzzle-component/components/WebBuilderPuzzleComponent.js
CHANGED
|
@@ -76,6 +76,7 @@ var WebBuilderPuzzleComponent = function WebBuilderPuzzleComponent(_ref) {
|
|
|
76
76
|
info = _ref.info,
|
|
77
77
|
emitEvent = _ref.emitEvent,
|
|
78
78
|
setResolveAction = _ref.setResolveAction,
|
|
79
|
+
soundActions = _ref.soundActions,
|
|
79
80
|
disableExit = _ref.disableExit;
|
|
80
81
|
|
|
81
82
|
var _useState = (0, _react.useState)(false),
|
|
@@ -129,6 +130,9 @@ var WebBuilderPuzzleComponent = function WebBuilderPuzzleComponent(_ref) {
|
|
|
129
130
|
body = _useState18[0],
|
|
130
131
|
setBody = _useState18[1];
|
|
131
132
|
|
|
133
|
+
var _soundActions = _slicedToArray(soundActions, 1),
|
|
134
|
+
playSound = _soundActions[0];
|
|
135
|
+
|
|
132
136
|
var translate = function translate(id) {
|
|
133
137
|
return emitEvent({
|
|
134
138
|
type: 'translate',
|
|
@@ -168,6 +172,7 @@ var WebBuilderPuzzleComponent = function WebBuilderPuzzleComponent(_ref) {
|
|
|
168
172
|
if (info.solution) {
|
|
169
173
|
var rewards = info.solution.right.rewards;
|
|
170
174
|
var wrongRewards = info.solution.wrong.rewards;
|
|
175
|
+
playSound(failed ? 'fail' : 'score');
|
|
171
176
|
emitEvent({
|
|
172
177
|
type: 'addPoints',
|
|
173
178
|
payload: failed ? rewards : wrongRewards
|
|
@@ -51,10 +51,6 @@ function _iterableToArrayLimit(arr, i) { var _i = arr && (typeof Symbol !== "und
|
|
|
51
51
|
|
|
52
52
|
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
|
53
53
|
|
|
54
|
-
function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
|
|
55
|
-
|
|
56
|
-
function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
|
|
57
|
-
|
|
58
54
|
var WriterPuzzleComponent = function WriterPuzzleComponent(_ref) {
|
|
59
55
|
var emitEvent = _ref.emitEvent,
|
|
60
56
|
info = _ref.info,
|
|
@@ -65,7 +61,7 @@ var WriterPuzzleComponent = function WriterPuzzleComponent(_ref) {
|
|
|
65
61
|
type = _ref.type,
|
|
66
62
|
documentTitle = _ref.documentTitle,
|
|
67
63
|
texts = _ref.texts,
|
|
68
|
-
|
|
64
|
+
soundActions = _ref.soundActions;
|
|
69
65
|
|
|
70
66
|
var translate = function translate(id) {
|
|
71
67
|
return emitEvent({
|
|
@@ -144,6 +140,9 @@ var WriterPuzzleComponent = function WriterPuzzleComponent(_ref) {
|
|
|
144
140
|
disableExit = _useState27[0],
|
|
145
141
|
setDisableExit = _useState27[1];
|
|
146
142
|
|
|
143
|
+
var _soundActions = _slicedToArray(soundActions, 1),
|
|
144
|
+
playSound = _soundActions[0];
|
|
145
|
+
|
|
147
146
|
(0, _react.useEffect)(function () {
|
|
148
147
|
if (finished) {
|
|
149
148
|
setDisableExit(false);
|
|
@@ -238,7 +237,7 @@ var WriterPuzzleComponent = function WriterPuzzleComponent(_ref) {
|
|
|
238
237
|
var handleLectures = function handleLectures() {
|
|
239
238
|
var text = createLecture();
|
|
240
239
|
emitEvent({
|
|
241
|
-
type: 'finishLecture
|
|
240
|
+
type: 'finishLecture',
|
|
242
241
|
payload: {
|
|
243
242
|
name: documentTitle,
|
|
244
243
|
text: text,
|
|
@@ -269,8 +268,10 @@ var WriterPuzzleComponent = function WriterPuzzleComponent(_ref) {
|
|
|
269
268
|
var pointsToEmit = [];
|
|
270
269
|
|
|
271
270
|
if (failed) {
|
|
271
|
+
playSound('fail');
|
|
272
272
|
pointsToEmit = accumulatedRewards;
|
|
273
273
|
} else {
|
|
274
|
+
playSound(AllDecisionsCorrect ? 'score' : 'fail');
|
|
274
275
|
pointsToEmit = AllDecisionsCorrect ? rightRewards : wrongRewards;
|
|
275
276
|
}
|
|
276
277
|
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.DeviceDetection = void 0;
|
|
7
|
+
|
|
8
|
+
var DeviceDetection = function DeviceDetection() {
|
|
9
|
+
return navigator.userAgent.match(/(android)/i) || ['iPad Simulator', 'iPhone Simulator', 'iPod Simulator', 'iPad', 'iPhone', 'iPod'].includes(navigator.platform) || // iPad on iOS 13 detection
|
|
10
|
+
navigator.userAgent.includes('Mac') && 'ontouchend' in document;
|
|
11
|
+
};
|
|
12
|
+
|
|
13
|
+
exports.DeviceDetection = DeviceDetection;
|
package/dist/helpers/drawLOD.js
CHANGED
|
@@ -111,7 +111,7 @@ var materialize = function materialize(params, lod) {
|
|
|
111
111
|
if (doneLods >= totalLods) {
|
|
112
112
|
if (progressiveMode) {
|
|
113
113
|
var currentIndex = progressiveOrder.indexOf(lod);
|
|
114
|
-
var lastIndex = progressiveOrder.indexOf(
|
|
114
|
+
var lastIndex = progressiveOrder.indexOf(params._currentLOD);
|
|
115
115
|
|
|
116
116
|
if (currentIndex < lastIndex) {
|
|
117
117
|
materialize(params, progressiveOrder[currentIndex + 1]);
|
|
@@ -132,7 +132,7 @@ var materialize = function materialize(params, lod) {
|
|
|
132
132
|
return response.json();
|
|
133
133
|
}).then(function (materials) {
|
|
134
134
|
elem.traverse(function (obj) {
|
|
135
|
-
if ((obj.isMesh || obj.isSkinnedMesh) && (!obj.material._isDone || !obj.material._isDone[lod])) {
|
|
135
|
+
if ((obj.isMesh || obj.isSkinnedMesh) && (!obj.material._isDone || !obj.material._isDone[lod] || params._forceRender)) {
|
|
136
136
|
obj.material.wireframe = false;
|
|
137
137
|
if (!obj.material._isDone) obj.material._isDone = {};
|
|
138
138
|
obj.material._isDone[lod] = true;
|
|
@@ -141,13 +141,13 @@ var materialize = function materialize(params, lod) {
|
|
|
141
141
|
materials[obj.material.name].forEach(function (item) {
|
|
142
142
|
var imgSrc = "".concat(elem.userData.url, ".textures.").concat(lod, ".").concat(item.positionInArray, ".png");
|
|
143
143
|
imgLoader.load(imgSrc, function (result) {
|
|
144
|
-
if (
|
|
144
|
+
if (params._showStats) {
|
|
145
145
|
statsTextures(lod, imgSrc, result);
|
|
146
146
|
}
|
|
147
147
|
|
|
148
148
|
obj.material[item.key].image = result;
|
|
149
149
|
|
|
150
|
-
if (
|
|
150
|
+
if (params._rgbSimulation) {
|
|
151
151
|
var image;
|
|
152
152
|
|
|
153
153
|
switch (lod) {
|
|
@@ -188,7 +188,7 @@ var updateSceneLods = function updateSceneLods(params) {
|
|
|
188
188
|
if (progressiveMode) {
|
|
189
189
|
materialize(params, progressiveOrder[0]);
|
|
190
190
|
} else {
|
|
191
|
-
materialize(params,
|
|
191
|
+
materialize(params, params._currentLOD);
|
|
192
192
|
}
|
|
193
193
|
}
|
|
194
194
|
};
|
|
@@ -201,7 +201,7 @@ var invalidateOutOfFrustum = function invalidateOutOfFrustum(params) {
|
|
|
201
201
|
|
|
202
202
|
elem.bbox = bbox;
|
|
203
203
|
|
|
204
|
-
if (
|
|
204
|
+
if (params._showHelpers) {
|
|
205
205
|
var boundingHelper = new THREE.Box3Helper(bbox, insideFrustum ? 0x00ff00 : 0xff0000);
|
|
206
206
|
|
|
207
207
|
params._helpers.add(boundingHelper);
|
|
@@ -219,7 +219,7 @@ var checkDistances = function checkDistances(params) {
|
|
|
219
219
|
var distance = params._camera.position.distanceTo(center) - bsphere.radius;
|
|
220
220
|
elem.distanceToCam = distance;
|
|
221
221
|
|
|
222
|
-
if (
|
|
222
|
+
if (params._showHelpers) {
|
|
223
223
|
var sphere = new THREE.Mesh(new THREE.SphereGeometry(bsphere.radius, 32, 32), new THREE.MeshStandardMaterial({
|
|
224
224
|
color: 0xffffff,
|
|
225
225
|
opacity: 0.3,
|
|
@@ -277,7 +277,7 @@ var setTexturableElements = function setTexturableElements(params) {
|
|
|
277
277
|
reset: true
|
|
278
278
|
});
|
|
279
279
|
|
|
280
|
-
if (
|
|
280
|
+
if (params._showStats) {
|
|
281
281
|
statsGeometries(params);
|
|
282
282
|
}
|
|
283
283
|
};
|
|
@@ -292,7 +292,7 @@ var getHelpers = function getHelpers(scene) {
|
|
|
292
292
|
return helper;
|
|
293
293
|
};
|
|
294
294
|
|
|
295
|
-
var drawLOD = function drawLOD(scene, camera) {
|
|
295
|
+
var drawLOD = function drawLOD(scene, camera, settings) {
|
|
296
296
|
var currentCamera = camera;
|
|
297
297
|
|
|
298
298
|
if (!currentCamera.parent) {
|
|
@@ -306,6 +306,12 @@ var drawLOD = function drawLOD(scene, camera) {
|
|
|
306
306
|
}
|
|
307
307
|
|
|
308
308
|
var params = {};
|
|
309
|
+
params._currentLOD = settings !== null && settings !== void 0 && settings.currentLOD ? settings.currentLOD : currentLOD;
|
|
310
|
+
params._rgbSimulation = settings !== null && settings !== void 0 && settings.rgbSimulation ? settings.rgbSimulation : rgbSimulation;
|
|
311
|
+
params._showHelpers = settings !== null && settings !== void 0 && settings.showHelpers ? settings.showHelpers : showHelpers;
|
|
312
|
+
params._showStats = settings !== null && settings !== void 0 && settings.showStats ? settings.showStats : showStats;
|
|
313
|
+
params._forceRender = (scene === null || scene === void 0 ? void 0 : scene.lastLOD) !== (settings === null || settings === void 0 ? void 0 : settings.currentLOD);
|
|
314
|
+
scene.lastLOD = settings === null || settings === void 0 ? void 0 : settings.currentLOD;
|
|
309
315
|
params._texturesFrustum = texturesFrustum;
|
|
310
316
|
params._texturesDistance = texturesDistance;
|
|
311
317
|
params._scene = scene;
|
|
@@ -333,7 +339,7 @@ var drawLOD = function drawLOD(scene, camera) {
|
|
|
333
339
|
params._texturesFrustum = params._texturesDistance = false;
|
|
334
340
|
}
|
|
335
341
|
|
|
336
|
-
if (
|
|
342
|
+
if (params._showHelpers) {
|
|
337
343
|
var helper = new THREE.CameraHelper(params._camera.clone());
|
|
338
344
|
|
|
339
345
|
params._helpers.add(helper);
|
package/dist/helpers/index.js
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.getObjectPosition = exports.cameraFitAnyObject = exports.usePrevious = exports.formatMessage = void 0;
|
|
6
|
+
exports.getObjectPosition = exports.cameraFitAnyObject = exports.roundFloat = exports.usePrevious = exports.formatMessage = void 0;
|
|
7
7
|
|
|
8
8
|
var _react = require("react");
|
|
9
9
|
|
|
@@ -30,6 +30,12 @@ var usePrevious = function usePrevious(value) {
|
|
|
30
30
|
|
|
31
31
|
exports.usePrevious = usePrevious;
|
|
32
32
|
|
|
33
|
+
var roundFloat = function roundFloat(number, decimals) {
|
|
34
|
+
return parseFloat(number.toFixed(decimals));
|
|
35
|
+
};
|
|
36
|
+
|
|
37
|
+
exports.roundFloat = roundFloat;
|
|
38
|
+
|
|
33
39
|
var cameraFitAnyObject = function cameraFitAnyObject(object, camera) {
|
|
34
40
|
var uOff = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;
|
|
35
41
|
var controls = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null;
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.useWindowSize = void 0;
|
|
7
|
+
|
|
8
|
+
var _react = require("react");
|
|
9
|
+
|
|
10
|
+
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
|
|
11
|
+
|
|
12
|
+
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
13
|
+
|
|
14
|
+
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
|
15
|
+
|
|
16
|
+
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
|
|
17
|
+
|
|
18
|
+
function _iterableToArrayLimit(arr, i) { var _i = arr && (typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"]); if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
|
|
19
|
+
|
|
20
|
+
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
|
21
|
+
|
|
22
|
+
function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
|
|
23
|
+
|
|
24
|
+
// Hook
|
|
25
|
+
var useWindowSize = function useWindowSize() {
|
|
26
|
+
var isClient = (typeof window === "undefined" ? "undefined" : _typeof(window)) === 'object';
|
|
27
|
+
|
|
28
|
+
var _useState = (0, _react.useState)({
|
|
29
|
+
width: isClient ? window.innerWidth : undefined,
|
|
30
|
+
height: isClient ? window.innerHeight : undefined
|
|
31
|
+
}),
|
|
32
|
+
_useState2 = _slicedToArray(_useState, 2),
|
|
33
|
+
windowSize = _useState2[0],
|
|
34
|
+
setWindowSize = _useState2[1];
|
|
35
|
+
|
|
36
|
+
(0, _react.useEffect)(function () {
|
|
37
|
+
if (!isClient) {
|
|
38
|
+
return false;
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
function handleResize() {
|
|
42
|
+
setWindowSize({
|
|
43
|
+
width: isClient ? window.innerWidth : undefined,
|
|
44
|
+
height: isClient ? window.innerHeight : undefined
|
|
45
|
+
});
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
window.addEventListener('resize', handleResize);
|
|
49
|
+
return function () {
|
|
50
|
+
return window.removeEventListener('resize', handleResize);
|
|
51
|
+
};
|
|
52
|
+
}, [isClient]);
|
|
53
|
+
return windowSize;
|
|
54
|
+
};
|
|
55
|
+
|
|
56
|
+
exports.useWindowSize = useWindowSize;
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@gamelearn/arcade-components",
|
|
3
3
|
"license": "Gamelearn",
|
|
4
|
-
"version": "0.
|
|
4
|
+
"version": "0.14.0",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"files": [
|
|
7
7
|
"dist",
|
|
@@ -12,8 +12,8 @@
|
|
|
12
12
|
"url": "https://github.com/gamelearn/arcade-components"
|
|
13
13
|
},
|
|
14
14
|
"dependencies": {
|
|
15
|
-
"@react-three/drei": "^
|
|
16
|
-
"@react-three/fiber": "
|
|
15
|
+
"@react-three/drei": "^6.1.1",
|
|
16
|
+
"@react-three/fiber": "^7.0.1",
|
|
17
17
|
"@testing-library/jest-dom": "5.11.4",
|
|
18
18
|
"@testing-library/react": "11.1.0",
|
|
19
19
|
"@testing-library/user-event": "12.1.10",
|