@gamelearn/arcade-components 1.1.4 → 1.2.1
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/background/index.js +24 -0
- package/dist/components/arcade-render/background/scene-elements/customGeometry/index.js +46 -0
- package/dist/components/arcade-render/background/scene-elements/index.js +106 -0
- package/dist/components/arcade-render/element/AnimateElement.js +136 -0
- package/dist/components/arcade-render/element/BoundingBox.js +65 -0
- package/dist/components/arcade-render/element/Projection.js +38 -0
- package/dist/components/arcade-render/element/index.js +163 -0
- package/dist/components/arcade-render/elements-list/ClickableArea.js +94 -0
- package/dist/components/arcade-render/elements-list/Poster.js +92 -0
- package/dist/components/arcade-render/elements-list/index.js +165 -0
- package/dist/components/arcade-render/light/index.js +35 -0
- package/dist/components/arcade-render/light/useLight.js +62 -0
- package/dist/components/arcade-render/loading/Loading.js +54 -0
- package/dist/components/arcade-render/loading/LoadingLogic.js +56 -0
- package/dist/components/arcade-render/loading/index.js +13 -0
- package/dist/components/arcade-render/mocks/index.js +32 -0
- package/dist/components/arcade-render/scene/ConfigController.js +68 -0
- package/dist/components/arcade-render/scene/index.js +129 -0
- package/dist/components/arcade-render/scene/useCameraPan.js +115 -0
- package/dist/components/conversational-pro-component/components/ConversationalProComponent.js +8 -13
- package/dist/components/dialog-component/components/DialogComponent.js +28 -24
- package/dist/components/hanged-puzzle-component/components/HangedPuzzleComponent.js +27 -9
- package/dist/components/index.js +56 -0
- package/dist/components/login-puzzle-component/components/LoginPuzzleComponent.js +1 -3
- package/dist/components/video-visor/components/VideoVisor.js +0 -1
- package/package.json +1 -1
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = void 0;
|
|
7
|
+
|
|
8
|
+
var _react = require("react");
|
|
9
|
+
|
|
10
|
+
var _fiber = require("@react-three/fiber");
|
|
11
|
+
|
|
12
|
+
var _useCameraPan = _interopRequireDefault(require("./useCameraPan"));
|
|
13
|
+
|
|
14
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
15
|
+
|
|
16
|
+
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
|
|
17
|
+
|
|
18
|
+
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."); }
|
|
19
|
+
|
|
20
|
+
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); }
|
|
21
|
+
|
|
22
|
+
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; }
|
|
23
|
+
|
|
24
|
+
function _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : 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; }
|
|
25
|
+
|
|
26
|
+
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
|
27
|
+
|
|
28
|
+
var ConfigController = function ConfigController(_ref) {
|
|
29
|
+
var current = _ref.current;
|
|
30
|
+
|
|
31
|
+
var _useThree = (0, _fiber.useThree)(function (state) {
|
|
32
|
+
return [state.gl, state.scene, state.invalidate];
|
|
33
|
+
}),
|
|
34
|
+
_useThree2 = _slicedToArray(_useThree, 3),
|
|
35
|
+
stateGl = _useThree2[0],
|
|
36
|
+
stateScene = _useThree2[1],
|
|
37
|
+
invalidate = _useThree2[2];
|
|
38
|
+
|
|
39
|
+
(0, _useCameraPan.default)(current.lookingSide);
|
|
40
|
+
(0, _fiber.useFrame)(function (_ref2) {
|
|
41
|
+
var gl = _ref2.gl,
|
|
42
|
+
scene = _ref2.scene,
|
|
43
|
+
camera = _ref2.camera;
|
|
44
|
+
gl.render(scene, camera);
|
|
45
|
+
|
|
46
|
+
if (!current.animate) {
|
|
47
|
+
invalidate();
|
|
48
|
+
}
|
|
49
|
+
}, 1); // settings
|
|
50
|
+
|
|
51
|
+
(0, _react.useEffect)(function () {
|
|
52
|
+
stateGl.shadowMap.enabled = current.shadows;
|
|
53
|
+
stateGl.shadowMap.needsUpdate = true;
|
|
54
|
+
stateScene.traverse(function (node) {
|
|
55
|
+
if (node.isMesh) {
|
|
56
|
+
node.material.needsUpdate = true;
|
|
57
|
+
}
|
|
58
|
+
});
|
|
59
|
+
|
|
60
|
+
if (!current.animate) {
|
|
61
|
+
invalidate();
|
|
62
|
+
}
|
|
63
|
+
}, [stateGl, stateScene, current, invalidate]);
|
|
64
|
+
return null;
|
|
65
|
+
};
|
|
66
|
+
|
|
67
|
+
var _default = ConfigController;
|
|
68
|
+
exports.default = _default;
|
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
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); }
|
|
4
|
+
|
|
5
|
+
Object.defineProperty(exports, "__esModule", {
|
|
6
|
+
value: true
|
|
7
|
+
});
|
|
8
|
+
exports.default = void 0;
|
|
9
|
+
|
|
10
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
11
|
+
|
|
12
|
+
var _fiber = require("@react-three/fiber");
|
|
13
|
+
|
|
14
|
+
var _drei = require("@react-three/drei");
|
|
15
|
+
|
|
16
|
+
var _loading = _interopRequireDefault(require("../loading"));
|
|
17
|
+
|
|
18
|
+
var _ConfigController = _interopRequireDefault(require("./ConfigController"));
|
|
19
|
+
|
|
20
|
+
var _LoadingLogic = require("../loading/LoadingLogic");
|
|
21
|
+
|
|
22
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
23
|
+
|
|
24
|
+
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
25
|
+
|
|
26
|
+
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
27
|
+
|
|
28
|
+
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
|
|
29
|
+
|
|
30
|
+
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."); }
|
|
31
|
+
|
|
32
|
+
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); }
|
|
33
|
+
|
|
34
|
+
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; }
|
|
35
|
+
|
|
36
|
+
function _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : 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; }
|
|
37
|
+
|
|
38
|
+
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
|
39
|
+
|
|
40
|
+
var Scene = function Scene(_ref) {
|
|
41
|
+
var _ref$sceneChanged = _ref.sceneChanged,
|
|
42
|
+
sceneChanged = _ref$sceneChanged === void 0 ? false : _ref$sceneChanged,
|
|
43
|
+
_ref$hasControls = _ref.hasControls,
|
|
44
|
+
hasControls = _ref$hasControls === void 0 ? false : _ref$hasControls,
|
|
45
|
+
_ref$has3Stats = _ref.has3Stats,
|
|
46
|
+
has3Stats = _ref$has3Stats === void 0 ? false : _ref$has3Stats,
|
|
47
|
+
_ref$loadingText = _ref.loadingText,
|
|
48
|
+
loadingText = _ref$loadingText === void 0 ? '' : _ref$loadingText,
|
|
49
|
+
_ref$toggleShadows = _ref.toggleShadows,
|
|
50
|
+
toggleShadows = _ref$toggleShadows === void 0 ? true : _ref$toggleShadows,
|
|
51
|
+
_ref$lodSettings = _ref.lodSettings,
|
|
52
|
+
lodSettings = _ref$lodSettings === void 0 ? {} : _ref$lodSettings,
|
|
53
|
+
_ref$onLoadFinish = _ref.onLoadFinish,
|
|
54
|
+
onLoadFinish = _ref$onLoadFinish === void 0 ? function () {} : _ref$onLoadFinish,
|
|
55
|
+
_ref$stopAnimate = _ref.stopAnimate,
|
|
56
|
+
stopAnimate = _ref$stopAnimate === void 0 ? false : _ref$stopAnimate,
|
|
57
|
+
lookingSide = _ref.lookingSide,
|
|
58
|
+
children = _ref.children;
|
|
59
|
+
|
|
60
|
+
var _useState = (0, _react.useState)(false),
|
|
61
|
+
_useState2 = _slicedToArray(_useState, 2),
|
|
62
|
+
showLoad = _useState2[0],
|
|
63
|
+
setShowLoad = _useState2[1];
|
|
64
|
+
|
|
65
|
+
var orbit = (0, _react.useRef)();
|
|
66
|
+
|
|
67
|
+
var handleOnCreate = function handleOnCreate(_ref2) {
|
|
68
|
+
var gl = _ref2.gl,
|
|
69
|
+
raycaster = _ref2.raycaster,
|
|
70
|
+
camera = _ref2.camera;
|
|
71
|
+
raycaster.layers.set(1);
|
|
72
|
+
gl.outputEncoding = 3001;
|
|
73
|
+
gl.gammaFactor = 2.2;
|
|
74
|
+
gl.setClearColor(0xcccccc);
|
|
75
|
+
gl.setPixelRatio(window.devicePixelRatio);
|
|
76
|
+
gl.setSize(window.innerWidth, window.innerHeight);
|
|
77
|
+
gl.physicallyCorrectLights = true;
|
|
78
|
+
camera.layers.enableAll();
|
|
79
|
+
};
|
|
80
|
+
|
|
81
|
+
var onFinish = function onFinish() {
|
|
82
|
+
onLoadFinish();
|
|
83
|
+
setShowLoad(false);
|
|
84
|
+
};
|
|
85
|
+
|
|
86
|
+
(0, _react.useEffect)(function () {
|
|
87
|
+
if (sceneChanged) {
|
|
88
|
+
setShowLoad(true);
|
|
89
|
+
}
|
|
90
|
+
}, [sceneChanged]);
|
|
91
|
+
return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_fiber.Canvas, {
|
|
92
|
+
className: "main-canvas",
|
|
93
|
+
style: {
|
|
94
|
+
width: '100%',
|
|
95
|
+
height: '100vh'
|
|
96
|
+
},
|
|
97
|
+
resize: {
|
|
98
|
+
scroll: false
|
|
99
|
+
},
|
|
100
|
+
mode: "concurrent",
|
|
101
|
+
flat: true,
|
|
102
|
+
shadows: toggleShadows,
|
|
103
|
+
frameloop: "demand",
|
|
104
|
+
onCreated: handleOnCreate,
|
|
105
|
+
tabIndex: 0
|
|
106
|
+
}, /*#__PURE__*/_react.default.createElement(_ConfigController.default, {
|
|
107
|
+
current: {
|
|
108
|
+
shadows: toggleShadows,
|
|
109
|
+
animate: stopAnimate,
|
|
110
|
+
lookingSide: lookingSide
|
|
111
|
+
}
|
|
112
|
+
}), /*#__PURE__*/_react.default.createElement(_react.Suspense, {
|
|
113
|
+
fallback: /*#__PURE__*/_react.default.createElement(_loading.default, {
|
|
114
|
+
text: loadingText
|
|
115
|
+
})
|
|
116
|
+
}, showLoad && /*#__PURE__*/_react.default.createElement(_LoadingLogic.LoadingLogic, {
|
|
117
|
+
onFinish: onFinish,
|
|
118
|
+
lodSettings: lodSettings
|
|
119
|
+
}), children, /*#__PURE__*/_react.default.createElement(_drei.Preload, {
|
|
120
|
+
all: true
|
|
121
|
+
})), has3Stats && /*#__PURE__*/_react.default.createElement(_drei.Stats, null), hasControls && /*#__PURE__*/_react.default.createElement(_drei.OrbitControls, {
|
|
122
|
+
ref: orbit
|
|
123
|
+
})), /*#__PURE__*/_react.default.createElement("div", {
|
|
124
|
+
id: "elements-projection"
|
|
125
|
+
}));
|
|
126
|
+
};
|
|
127
|
+
|
|
128
|
+
var _default = Scene;
|
|
129
|
+
exports.default = _default;
|
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = void 0;
|
|
7
|
+
|
|
8
|
+
var _fiber = require("@react-three/fiber");
|
|
9
|
+
|
|
10
|
+
var _react = require("react");
|
|
11
|
+
|
|
12
|
+
var _three = require("three");
|
|
13
|
+
|
|
14
|
+
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
|
|
15
|
+
|
|
16
|
+
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."); }
|
|
17
|
+
|
|
18
|
+
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); }
|
|
19
|
+
|
|
20
|
+
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; }
|
|
21
|
+
|
|
22
|
+
function _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : 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; }
|
|
23
|
+
|
|
24
|
+
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
|
25
|
+
|
|
26
|
+
var STD_RESOLUTION = 16 / 9;
|
|
27
|
+
var MOTION_LIMITER = 3.5;
|
|
28
|
+
var SPEED = 50;
|
|
29
|
+
var quad = new _three.Quaternion();
|
|
30
|
+
var yAxis = new _three.Vector3(0, 1, 0);
|
|
31
|
+
|
|
32
|
+
var rotateQuatY = function rotateQuatY(current, amount) {
|
|
33
|
+
var result = current.clone();
|
|
34
|
+
quad.setFromAxisAngle(yAxis, amount);
|
|
35
|
+
return result.multiply(quad);
|
|
36
|
+
};
|
|
37
|
+
|
|
38
|
+
var useCameraPan = function useCameraPan(lookingSide) {
|
|
39
|
+
var _useState = (0, _react.useState)(false),
|
|
40
|
+
_useState2 = _slicedToArray(_useState, 2),
|
|
41
|
+
cameraLoaded = _useState2[0],
|
|
42
|
+
setCameraLoaded = _useState2[1];
|
|
43
|
+
|
|
44
|
+
var movingCamera = (0, _react.useRef)(false);
|
|
45
|
+
|
|
46
|
+
var _useThree = (0, _fiber.useThree)(function (state) {
|
|
47
|
+
return [state.camera, state.viewport];
|
|
48
|
+
}),
|
|
49
|
+
_useThree2 = _slicedToArray(_useThree, 2),
|
|
50
|
+
camera = _useThree2[0],
|
|
51
|
+
viewport = _useThree2[1];
|
|
52
|
+
|
|
53
|
+
var cameraRotation = (0, _react.useRef)({
|
|
54
|
+
left: camera.quaternion,
|
|
55
|
+
center: camera.quaternion,
|
|
56
|
+
right: camera.quaternion
|
|
57
|
+
});
|
|
58
|
+
var setCameraRotationView = (0, _react.useCallback)(function () {
|
|
59
|
+
if (viewport.aspect >= STD_RESOLUTION) {
|
|
60
|
+
cameraRotation.current = {
|
|
61
|
+
left: camera.quaternion,
|
|
62
|
+
center: camera.quaternion,
|
|
63
|
+
right: camera.quaternion
|
|
64
|
+
};
|
|
65
|
+
return;
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
var threshold = (STD_RESOLUTION - viewport.aspect) / MOTION_LIMITER;
|
|
69
|
+
|
|
70
|
+
if (camera.rotation) {
|
|
71
|
+
cameraRotation.current = {
|
|
72
|
+
center: camera.quaternion.clone(),
|
|
73
|
+
left: rotateQuatY(camera.quaternion, threshold),
|
|
74
|
+
right: rotateQuatY(camera.quaternion, -threshold)
|
|
75
|
+
};
|
|
76
|
+
movingCamera.current = true;
|
|
77
|
+
}
|
|
78
|
+
}, [camera, viewport.aspect]);
|
|
79
|
+
var moveCamera = (0, _react.useCallback)(function (delta) {
|
|
80
|
+
var goal = cameraRotation.current[lookingSide];
|
|
81
|
+
|
|
82
|
+
if (camera.quaternion && goal) {
|
|
83
|
+
if (!camera.quaternion.equals(goal)) {
|
|
84
|
+
camera.quaternion.rotateTowards(goal, delta * SPEED);
|
|
85
|
+
} else {
|
|
86
|
+
movingCamera.current = false;
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
}, [camera, lookingSide]);
|
|
90
|
+
(0, _fiber.useFrame)(function (_ref) {
|
|
91
|
+
var clock = _ref.clock;
|
|
92
|
+
|
|
93
|
+
if (movingCamera.current) {
|
|
94
|
+
moveCamera(clock.getDelta());
|
|
95
|
+
}
|
|
96
|
+
}, 1);
|
|
97
|
+
(0, _react.useEffect)(function () {
|
|
98
|
+
if (camera.defaultCamera) {
|
|
99
|
+
setCameraLoaded(true);
|
|
100
|
+
}
|
|
101
|
+
}, [camera]);
|
|
102
|
+
(0, _react.useEffect)(function () {
|
|
103
|
+
if (cameraLoaded) {
|
|
104
|
+
movingCamera.current = true;
|
|
105
|
+
}
|
|
106
|
+
}, [lookingSide, cameraLoaded]);
|
|
107
|
+
(0, _react.useEffect)(function () {
|
|
108
|
+
if (cameraLoaded) {
|
|
109
|
+
setCameraRotationView();
|
|
110
|
+
}
|
|
111
|
+
}, [viewport, cameraLoaded, setCameraRotationView]);
|
|
112
|
+
};
|
|
113
|
+
|
|
114
|
+
var _default = useCameraPan;
|
|
115
|
+
exports.default = _default;
|
package/dist/components/conversational-pro-component/components/ConversationalProComponent.js
CHANGED
|
@@ -68,7 +68,6 @@ var ConversationProViewer = function ConversationProViewer(_ref) {
|
|
|
68
68
|
finished = _useState4[0],
|
|
69
69
|
setFinished = _useState4[1];
|
|
70
70
|
|
|
71
|
-
var emitEventRef = (0, _react.useRef)(emitEvent);
|
|
72
71
|
var backgroundImage = (background === null || background === void 0 ? void 0 : (_background$img = background.img) === null || _background$img === void 0 ? void 0 : _background$img.url) || null;
|
|
73
72
|
var currentLineData = lines[currentLine];
|
|
74
73
|
var voiceOverSlots = [];
|
|
@@ -76,11 +75,11 @@ var ConversationProViewer = function ConversationProViewer(_ref) {
|
|
|
76
75
|
decision = currentLineData.decision;
|
|
77
76
|
var isFlex = currentLineData.flex;
|
|
78
77
|
var translate = (0, _react.useCallback)(function (id) {
|
|
79
|
-
return
|
|
78
|
+
return emitEvent({
|
|
80
79
|
type: 'translate',
|
|
81
80
|
payload: id
|
|
82
81
|
});
|
|
83
|
-
}, []);
|
|
82
|
+
}, [emitEvent]);
|
|
84
83
|
var getCurrentMessage = (0, _react.useCallback)(function () {
|
|
85
84
|
if (voiceOver) {
|
|
86
85
|
return currentLineData;
|
|
@@ -122,13 +121,13 @@ var ConversationProViewer = function ConversationProViewer(_ref) {
|
|
|
122
121
|
return !decision ? getCurrentMessage() : {};
|
|
123
122
|
}, [getCurrentMessage, decision]);
|
|
124
123
|
var playSpeech = (0, _react.useCallback)( /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee() {
|
|
125
|
-
var payload
|
|
124
|
+
var payload;
|
|
126
125
|
return regeneratorRuntime.wrap(function _callee$(_context) {
|
|
127
126
|
while (1) {
|
|
128
127
|
switch (_context.prev = _context.next) {
|
|
129
128
|
case 0:
|
|
130
129
|
if (!(currentLineData.voice.id && currentMessage)) {
|
|
131
|
-
_context.next =
|
|
130
|
+
_context.next = 5;
|
|
132
131
|
break;
|
|
133
132
|
}
|
|
134
133
|
|
|
@@ -138,27 +137,23 @@ var ConversationProViewer = function ConversationProViewer(_ref) {
|
|
|
138
137
|
};
|
|
139
138
|
|
|
140
139
|
if (!(payload.voiceId && payload.text)) {
|
|
141
|
-
_context.next =
|
|
140
|
+
_context.next = 5;
|
|
142
141
|
break;
|
|
143
142
|
}
|
|
144
143
|
|
|
145
144
|
_context.next = 5;
|
|
146
|
-
return
|
|
145
|
+
return emitEvent({
|
|
147
146
|
type: 'playSpeech',
|
|
148
147
|
payload: payload
|
|
149
148
|
});
|
|
150
149
|
|
|
151
150
|
case 5:
|
|
152
|
-
speechUrl = _context.sent;
|
|
153
|
-
playSound(speechUrl);
|
|
154
|
-
|
|
155
|
-
case 7:
|
|
156
151
|
case "end":
|
|
157
152
|
return _context.stop();
|
|
158
153
|
}
|
|
159
154
|
}
|
|
160
155
|
}, _callee);
|
|
161
|
-
})), [currentLineData.voice, currentMessage,
|
|
156
|
+
})), [currentLineData.voice, currentMessage, emitEvent, getVoice]); // Recupera la antigua linea de la conversacion para conservar los personajes en voice-over
|
|
162
157
|
|
|
163
158
|
var leftWithSlots = lines.slice(0, currentLine + 1).reverse().find(function (line) {
|
|
164
159
|
return line.slots;
|
|
@@ -244,7 +239,7 @@ var ConversationProViewer = function ConversationProViewer(_ref) {
|
|
|
244
239
|
setCurrentLine(line + 1);
|
|
245
240
|
} else {
|
|
246
241
|
setFinished(true);
|
|
247
|
-
|
|
242
|
+
emitEvent({
|
|
248
243
|
type: 'success'
|
|
249
244
|
});
|
|
250
245
|
}
|
|
@@ -88,14 +88,13 @@ var DialogComponent = function DialogComponent(_ref) {
|
|
|
88
88
|
inScene: false,
|
|
89
89
|
thinkful: false,
|
|
90
90
|
voiceOver: false,
|
|
91
|
-
avatar: ''
|
|
91
|
+
avatar: '',
|
|
92
|
+
show: false
|
|
92
93
|
}),
|
|
93
94
|
_useState6 = _slicedToArray(_useState5, 2),
|
|
94
95
|
currentMessage = _useState6[0],
|
|
95
96
|
setCurrentMessage = _useState6[1];
|
|
96
97
|
|
|
97
|
-
var emitRef = (0, _react.useRef)(emitEvent);
|
|
98
|
-
|
|
99
98
|
var _useThree = (0, _fiber.useThree)(function (state) {
|
|
100
99
|
return [state.camera, state.scene];
|
|
101
100
|
}),
|
|
@@ -125,11 +124,11 @@ var DialogComponent = function DialogComponent(_ref) {
|
|
|
125
124
|
var lastLine = lines[line - 1];
|
|
126
125
|
var lastSet = (0, _react.useRef)(false);
|
|
127
126
|
var translate = (0, _react.useCallback)(function (id) {
|
|
128
|
-
return
|
|
127
|
+
return emitEvent({
|
|
129
128
|
type: 'translate',
|
|
130
129
|
payload: id
|
|
131
130
|
});
|
|
132
|
-
}, []);
|
|
131
|
+
}, [emitEvent]);
|
|
133
132
|
var getVoice = (0, _react.useCallback)(function (_ref2) {
|
|
134
133
|
var id = _ref2.id,
|
|
135
134
|
_ref2$type = _ref2.type,
|
|
@@ -150,13 +149,13 @@ var DialogComponent = function DialogComponent(_ref) {
|
|
|
150
149
|
return null;
|
|
151
150
|
}, [translate]);
|
|
152
151
|
var playSpeech = (0, _react.useCallback)( /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee() {
|
|
153
|
-
var payload
|
|
152
|
+
var payload;
|
|
154
153
|
return regeneratorRuntime.wrap(function _callee$(_context) {
|
|
155
154
|
while (1) {
|
|
156
155
|
switch (_context.prev = _context.next) {
|
|
157
156
|
case 0:
|
|
158
157
|
if (!currentLine.voice.id) {
|
|
159
|
-
_context.next =
|
|
158
|
+
_context.next = 5;
|
|
160
159
|
break;
|
|
161
160
|
}
|
|
162
161
|
|
|
@@ -166,27 +165,23 @@ var DialogComponent = function DialogComponent(_ref) {
|
|
|
166
165
|
};
|
|
167
166
|
|
|
168
167
|
if (!(payload.voiceId && payload.text)) {
|
|
169
|
-
_context.next =
|
|
168
|
+
_context.next = 5;
|
|
170
169
|
break;
|
|
171
170
|
}
|
|
172
171
|
|
|
173
172
|
_context.next = 5;
|
|
174
|
-
return
|
|
173
|
+
return emitEvent({
|
|
175
174
|
type: 'playSpeech',
|
|
176
175
|
payload: payload
|
|
177
176
|
});
|
|
178
177
|
|
|
179
178
|
case 5:
|
|
180
|
-
speechUrl = _context.sent;
|
|
181
|
-
playSound(speechUrl);
|
|
182
|
-
|
|
183
|
-
case 7:
|
|
184
179
|
case "end":
|
|
185
180
|
return _context.stop();
|
|
186
181
|
}
|
|
187
182
|
}
|
|
188
183
|
}, _callee);
|
|
189
|
-
})), [currentLine.voice, getVoice, currentMessage.text,
|
|
184
|
+
})), [currentLine.voice, getVoice, currentMessage.text, emitEvent]);
|
|
190
185
|
var getCurrentVisible = (0, _react.useCallback)(function (uid) {
|
|
191
186
|
var object;
|
|
192
187
|
scene.traverseVisible(function (node) {
|
|
@@ -314,7 +309,8 @@ var DialogComponent = function DialogComponent(_ref) {
|
|
|
314
309
|
inScene: false,
|
|
315
310
|
voiceOver: true,
|
|
316
311
|
thinkful: false,
|
|
317
|
-
avatar: ''
|
|
312
|
+
avatar: '',
|
|
313
|
+
show: true
|
|
318
314
|
});
|
|
319
315
|
} else if (!lastSet.current) {
|
|
320
316
|
var talkingCharacter = currentLine.slots.find(function (slot) {
|
|
@@ -363,7 +359,7 @@ var DialogComponent = function DialogComponent(_ref) {
|
|
|
363
359
|
head.getWorldPosition(target.position);
|
|
364
360
|
target.applyQuaternion(camera.quaternion);
|
|
365
361
|
target.translateX(1.25);
|
|
366
|
-
target.translateY(
|
|
362
|
+
target.translateY(2);
|
|
367
363
|
messagePosition.current = {
|
|
368
364
|
pos: target.position.toArray(),
|
|
369
365
|
child: head,
|
|
@@ -384,7 +380,8 @@ var DialogComponent = function DialogComponent(_ref) {
|
|
|
384
380
|
left: true,
|
|
385
381
|
inScene: true,
|
|
386
382
|
thinkful: talkingCharacter.emotion === 'thinkful',
|
|
387
|
-
avatar: ''
|
|
383
|
+
avatar: '',
|
|
384
|
+
show: true
|
|
388
385
|
});
|
|
389
386
|
}, zoomInActor ? 1200 : 0);
|
|
390
387
|
}
|
|
@@ -400,9 +397,15 @@ var DialogComponent = function DialogComponent(_ref) {
|
|
|
400
397
|
left: false,
|
|
401
398
|
inScene: false,
|
|
402
399
|
thinkful: talkingCharacter.emotion === 'thinkful',
|
|
403
|
-
avatar: getAvatarURL(talkingCharacter)
|
|
400
|
+
avatar: getAvatarURL(talkingCharacter),
|
|
401
|
+
show: true
|
|
404
402
|
});
|
|
405
403
|
}
|
|
404
|
+
} else {
|
|
405
|
+
resetCameraView();
|
|
406
|
+
setCurrentMessage({
|
|
407
|
+
show: true
|
|
408
|
+
});
|
|
406
409
|
}
|
|
407
410
|
}
|
|
408
411
|
}, [actors, camera, currentLine, zoomInActor, getCurrentVisible, translate, getAvatarURL, loadEmotion, resetAnims, resetCameraView]); // Sound logic
|
|
@@ -476,7 +479,8 @@ var DialogComponent = function DialogComponent(_ref) {
|
|
|
476
479
|
return _objectSpread(_objectSpread({}, old), {}, {
|
|
477
480
|
left: false,
|
|
478
481
|
inScene: !completeOutside,
|
|
479
|
-
avatar: getAvatarURL(talkingCharacter)
|
|
482
|
+
avatar: getAvatarURL(talkingCharacter),
|
|
483
|
+
show: true
|
|
480
484
|
});
|
|
481
485
|
});
|
|
482
486
|
}
|
|
@@ -501,7 +505,7 @@ var DialogComponent = function DialogComponent(_ref) {
|
|
|
501
505
|
animationTarget.current.applyQuaternion(cam.quaternion);
|
|
502
506
|
}
|
|
503
507
|
|
|
504
|
-
animationTarget.current.translateX(
|
|
508
|
+
animationTarget.current.translateX(10);
|
|
505
509
|
animationTarget.current.translateY(-5);
|
|
506
510
|
animationTarget.current.translateZ(30);
|
|
507
511
|
}
|
|
@@ -545,7 +549,7 @@ var DialogComponent = function DialogComponent(_ref) {
|
|
|
545
549
|
disableBackground: true
|
|
546
550
|
},
|
|
547
551
|
onFinish: nextLine,
|
|
548
|
-
emitEvent:
|
|
552
|
+
emitEvent: emitEvent,
|
|
549
553
|
soundActions: soundActions
|
|
550
554
|
});
|
|
551
555
|
|
|
@@ -567,7 +571,7 @@ var DialogComponent = function DialogComponent(_ref) {
|
|
|
567
571
|
}, decisionPayload)));
|
|
568
572
|
}
|
|
569
573
|
|
|
570
|
-
return
|
|
574
|
+
return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, currentMessage.text ? /*#__PURE__*/_react.default.createElement("group", {
|
|
571
575
|
ref: groupRef,
|
|
572
576
|
position: messagePosition.current.pos
|
|
573
577
|
}, /*#__PURE__*/_react.default.createElement(_arcadeThreeCore.HtmlPro, {
|
|
@@ -581,7 +585,7 @@ var DialogComponent = function DialogComponent(_ref) {
|
|
|
581
585
|
}, /*#__PURE__*/_react.default.createElement(_SpeechBubbleComponent.default, {
|
|
582
586
|
ref: bubbleRef,
|
|
583
587
|
message: currentMessage
|
|
584
|
-
}))), /*#__PURE__*/_react.default.createElement(_arcadeThreeCore.HtmlPro, {
|
|
588
|
+
}))) : null, currentMessage.show ? /*#__PURE__*/_react.default.createElement(_arcadeThreeCore.HtmlPro, {
|
|
585
589
|
style: {
|
|
586
590
|
width: '100vw',
|
|
587
591
|
height: '100vh'
|
|
@@ -606,7 +610,7 @@ var DialogComponent = function DialogComponent(_ref) {
|
|
|
606
610
|
onClick: nextLine
|
|
607
611
|
}, /*#__PURE__*/_react.default.createElement("span", {
|
|
608
612
|
className: "icon-next"
|
|
609
|
-
}))))
|
|
613
|
+
})))) : null);
|
|
610
614
|
};
|
|
611
615
|
|
|
612
616
|
var _default = DialogComponent;
|
|
@@ -49,7 +49,9 @@ var MAX_POOL_LETTERS = 26;
|
|
|
49
49
|
var MAX_EXTRA_LETTERS = 8;
|
|
50
50
|
|
|
51
51
|
var AnswerPanel = function AnswerPanel(_ref) {
|
|
52
|
-
var answer = _ref.answer
|
|
52
|
+
var answer = _ref.answer,
|
|
53
|
+
_ref$show = _ref.show,
|
|
54
|
+
show = _ref$show === void 0 ? false : _ref$show;
|
|
53
55
|
var words = [];
|
|
54
56
|
var wordIndex = 0;
|
|
55
57
|
answer.forEach(function (a) {
|
|
@@ -68,7 +70,12 @@ var AnswerPanel = function AnswerPanel(_ref) {
|
|
|
68
70
|
key: "".concat(word + index),
|
|
69
71
|
className: "puzzle--hanged__word",
|
|
70
72
|
"data-testid": "result-".concat(index)
|
|
71
|
-
}, word.
|
|
73
|
+
}, show ? word.map(function (char, i) {
|
|
74
|
+
return /*#__PURE__*/_react.default.createElement("span", {
|
|
75
|
+
key: "".concat(char + i),
|
|
76
|
+
className: "puzzle--hanged__letter active"
|
|
77
|
+
}, char);
|
|
78
|
+
}) : word.filter(function (_ref2) {
|
|
72
79
|
var char = _ref2.char;
|
|
73
80
|
return char !== ' ';
|
|
74
81
|
}).map(function (_ref3, i) {
|
|
@@ -133,6 +140,11 @@ var HangedPuzzleComponent = function HangedPuzzleComponent(_ref4) {
|
|
|
133
140
|
accRewards = _useState12[0],
|
|
134
141
|
setRewards = _useState12[1];
|
|
135
142
|
|
|
143
|
+
var _useState13 = (0, _react.useState)(false),
|
|
144
|
+
_useState14 = _slicedToArray(_useState13, 2),
|
|
145
|
+
showCorrectSolution = _useState14[0],
|
|
146
|
+
setCorrectSolution = _useState14[1];
|
|
147
|
+
|
|
136
148
|
var translatedAnswer = answer.toUpperCase().split('');
|
|
137
149
|
var answerPanel = translatedAnswer.filter(function (char) {
|
|
138
150
|
return (0, _utils.restrictCharacters)(char, 'and');
|
|
@@ -388,12 +400,15 @@ var HangedPuzzleComponent = function HangedPuzzleComponent(_ref4) {
|
|
|
388
400
|
}
|
|
389
401
|
|
|
390
402
|
setResolveAction(function () {
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
|
|
403
|
+
setCorrectSolution(true);
|
|
404
|
+
setTimeout(function () {
|
|
405
|
+
var rewardsData = [].concat(_toConsumableArray(accRewards), _toConsumableArray(info.resolve.rewards));
|
|
406
|
+
emitEvent({
|
|
407
|
+
type: 'hidePuzzleButtons',
|
|
408
|
+
payload: false
|
|
409
|
+
});
|
|
410
|
+
setShowPoints(rewardsData);
|
|
411
|
+
}, 2000);
|
|
397
412
|
});
|
|
398
413
|
}, [setHiddenAnswer, mounted, answer, setResolveAction, emitEvent, accRewards, info.resolve.rewards, setShowPoints]);
|
|
399
414
|
return /*#__PURE__*/_react.default.createElement("div", {
|
|
@@ -416,7 +431,10 @@ var HangedPuzzleComponent = function HangedPuzzleComponent(_ref4) {
|
|
|
416
431
|
}, question), /*#__PURE__*/_react.default.createElement("div", {
|
|
417
432
|
className: "puzzle--hanged__solution ".concat(resolvedClass),
|
|
418
433
|
"data-testid": "".concat(resolvedClass)
|
|
419
|
-
}, /*#__PURE__*/_react.default.createElement(AnswerPanel, {
|
|
434
|
+
}, showCorrectSolution ? /*#__PURE__*/_react.default.createElement(AnswerPanel, {
|
|
435
|
+
answer: answer.split(''),
|
|
436
|
+
show: true
|
|
437
|
+
}) : /*#__PURE__*/_react.default.createElement(AnswerPanel, {
|
|
420
438
|
answer: resolvedAnswer
|
|
421
439
|
})), /*#__PURE__*/_react.default.createElement("div", {
|
|
422
440
|
className: "puzzle--hanged__keyboard"
|