@gamelearn/arcade-components 0.22.13 → 0.23.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.
@@ -43,6 +43,8 @@ var AnimateElement = function AnimateElement(_ref) {
43
43
  if (ref.current) {
44
44
  mixer.stopAllAction();
45
45
  var clip = animations[0];
46
+ ref.current.userData.defaultAnim = clip;
47
+ ref.current.userData.mixer = mixer;
46
48
 
47
49
  if (clip) {
48
50
  var action = mixer.clipAction(clip, ref.current);
@@ -73,7 +73,8 @@ var ElementsList = function ElementsList(_ref) {
73
73
  name: "CLICKABLE_ELEMENTS"
74
74
  }, elements === null || elements === void 0 ? void 0 : elements.map(function (_ref3) {
75
75
  var id = _ref3.id,
76
- element = _objectWithoutProperties(_ref3, ["id"]);
76
+ name = _ref3.name,
77
+ element = _objectWithoutProperties(_ref3, ["id", "name"]);
77
78
 
78
79
  switch (element.type) {
79
80
  case 'character':
@@ -86,6 +87,7 @@ var ElementsList = function ElementsList(_ref) {
86
87
  rotation: element.rotation,
87
88
  scale: element.scale,
88
89
  layers: 1,
90
+ name: element.uid,
89
91
  visible: isVisible(element),
90
92
  onClick: function onClick(e) {
91
93
  return handleClick(e, element);
@@ -108,6 +110,7 @@ var ElementsList = function ElementsList(_ref) {
108
110
  rotation: element.rotation,
109
111
  scale: element.scale,
110
112
  layers: 1,
113
+ name: element.uid,
111
114
  visible: isVisible(element),
112
115
  onClick: function onClick(e) {
113
116
  return handleClick(e, element);
@@ -129,6 +132,7 @@ var ElementsList = function ElementsList(_ref) {
129
132
  rotation: element.rotation,
130
133
  scale: element.scale,
131
134
  layers: 1,
135
+ name: element.uid,
132
136
  visible: isVisible(element),
133
137
  onClick: function onClick(e) {
134
138
  return handleClick(e, element);
@@ -3,15 +3,15 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.default = void 0;
6
+ exports.LoadingLogic = void 0;
7
7
 
8
- var _react = require("react");
9
-
10
- var _drei = require("@react-three/drei");
8
+ var _drawLOD = _interopRequireDefault(require("../../../helpers/drawLOD"));
11
9
 
12
10
  var _fiber = require("@react-three/fiber");
13
11
 
14
- var _drawLOD = _interopRequireDefault(require("../../../helpers/drawLOD"));
12
+ var _react = require("react");
13
+
14
+ var _drei = require("@react-three/drei");
15
15
 
16
16
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
17
17
 
@@ -27,7 +27,7 @@ function _iterableToArrayLimit(arr, i) { var _i = arr && (typeof Symbol !== "und
27
27
 
28
28
  function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
29
29
 
30
- function LoadingLogic(_ref) {
30
+ var LoadingLogic = function LoadingLogic(_ref) {
31
31
  var onFinish = _ref.onFinish,
32
32
  lodSettings = _ref.lodSettings;
33
33
  var progress = (0, _drei.useProgress)(function (state) {
@@ -47,9 +47,8 @@ function LoadingLogic(_ref) {
47
47
  onFinish();
48
48
  (0, _drawLOD.default)(scene, camera, lodSettings);
49
49
  }
50
- }, [onFinish, percentage, scene, camera, lodSettings]);
50
+ }, [camera, percentage, lodSettings, onFinish, scene]);
51
51
  return null;
52
- }
52
+ };
53
53
 
54
- var _default = LoadingLogic;
55
- exports.default = _default;
54
+ exports.LoadingLogic = LoadingLogic;
@@ -3,18 +3,10 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- Object.defineProperty(exports, "LoadingLogic", {
7
- enumerable: true,
8
- get: function get() {
9
- return _LoadingLogic.default;
10
- }
11
- });
12
6
  exports.default = void 0;
13
7
 
14
8
  var _Loading = _interopRequireDefault(require("./Loading"));
15
9
 
16
- var _LoadingLogic = _interopRequireDefault(require("./LoadingLogic"));
17
-
18
10
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
19
11
 
20
12
  var _default = _Loading.default;
@@ -13,14 +13,12 @@ var _fiber = require("@react-three/fiber");
13
13
 
14
14
  var _drei = require("@react-three/drei");
15
15
 
16
- var _elementsList = _interopRequireDefault(require("../elements-list"));
17
-
18
- var _background = _interopRequireDefault(require("../background"));
19
-
20
- var _loading = _interopRequireWildcard(require("../loading"));
16
+ var _loading = _interopRequireDefault(require("../loading"));
21
17
 
22
18
  var _ConfigController = _interopRequireDefault(require("./ConfigController"));
23
19
 
20
+ var _LoadingLogic = require("../loading/LoadingLogic");
21
+
24
22
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
25
23
 
26
24
  function _getRequireWildcardCache() { if (typeof WeakMap !== "function") return null; var cache = new WeakMap(); _getRequireWildcardCache = function _getRequireWildcardCache() { return cache; }; return cache; }
@@ -40,27 +38,26 @@ function _iterableToArrayLimit(arr, i) { var _i = arr && (typeof Symbol !== "und
40
38
  function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
41
39
 
42
40
  var Scene = function Scene(_ref) {
43
- var _ref$elements = _ref.elements,
44
- elements = _ref$elements === void 0 ? [] : _ref$elements,
41
+ var _ref$sceneChanged = _ref.sceneChanged,
42
+ sceneChanged = _ref$sceneChanged === void 0 ? false : _ref$sceneChanged,
45
43
  _ref$hasControls = _ref.hasControls,
46
44
  hasControls = _ref$hasControls === void 0 ? false : _ref$hasControls,
47
45
  _ref$has3Stats = _ref.has3Stats,
48
46
  has3Stats = _ref$has3Stats === void 0 ? false : _ref$has3Stats,
49
- _ref$backgroundData = _ref.backgroundData,
50
- backgroundData = _ref$backgroundData === void 0 ? {} : _ref$backgroundData,
51
47
  _ref$loadingText = _ref.loadingText,
52
48
  loadingText = _ref$loadingText === void 0 ? '' : _ref$loadingText,
53
49
  _ref$toggleShadows = _ref.toggleShadows,
54
50
  toggleShadows = _ref$toggleShadows === void 0 ? true : _ref$toggleShadows,
55
51
  _ref$lodSettings = _ref.lodSettings,
56
52
  lodSettings = _ref$lodSettings === void 0 ? {} : _ref$lodSettings,
53
+ _ref$onLoadFinish = _ref.onLoadFinish,
54
+ onLoadFinish = _ref$onLoadFinish === void 0 ? function () {} : _ref$onLoadFinish,
57
55
  _ref$stopAnimate = _ref.stopAnimate,
58
56
  stopAnimate = _ref$stopAnimate === void 0 ? false : _ref$stopAnimate,
59
57
  lookingSide = _ref.lookingSide,
60
- _ref$emitEvent = _ref.emitEvent,
61
- emitEvent = _ref$emitEvent === void 0 ? function () {} : _ref$emitEvent;
58
+ children = _ref.children;
62
59
 
63
- var _useState = (0, _react.useState)(true),
60
+ var _useState = (0, _react.useState)(false),
64
61
  _useState2 = _slicedToArray(_useState, 2),
65
62
  showLoad = _useState2[0],
66
63
  setShowLoad = _useState2[1];
@@ -77,15 +74,16 @@ var Scene = function Scene(_ref) {
77
74
  gl.physicallyCorrectLights = true;
78
75
  };
79
76
 
80
- var handleLoadFinish = (0, _react.useCallback)(function () {
81
- emitEvent({
82
- type: 'sceneLoaded'
83
- });
77
+ var onFinish = function onFinish() {
78
+ onLoadFinish();
84
79
  setShowLoad(false);
85
- }, [emitEvent]);
80
+ };
81
+
86
82
  (0, _react.useEffect)(function () {
87
- setShowLoad(true);
88
- }, [backgroundData, elements, lodSettings.currentLOD, lodSettings.rgbSimulation, lodSettings.showHelpers, lodSettings.showStats]);
83
+ if (sceneChanged) {
84
+ setShowLoad(true);
85
+ }
86
+ }, [sceneChanged]);
89
87
  return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_fiber.Canvas, {
90
88
  className: "main-canvas",
91
89
  style: {
@@ -111,15 +109,10 @@ var Scene = function Scene(_ref) {
111
109
  fallback: /*#__PURE__*/_react.default.createElement(_loading.default, {
112
110
  text: loadingText
113
111
  })
114
- }, showLoad && /*#__PURE__*/_react.default.createElement(_loading.LoadingLogic, {
115
- onFinish: handleLoadFinish,
112
+ }, showLoad && /*#__PURE__*/_react.default.createElement(_LoadingLogic.LoadingLogic, {
113
+ onFinish: onFinish,
116
114
  lodSettings: lodSettings
117
- }), elements.length ? /*#__PURE__*/_react.default.createElement(_elementsList.default, {
118
- elements: elements,
119
- eventHandler: emitEvent
120
- }) : null, Object.keys(backgroundData).length && /*#__PURE__*/_react.default.createElement(_background.default, {
121
- data: backgroundData
122
- }), /*#__PURE__*/_react.default.createElement(_drei.Preload, {
115
+ }), children, /*#__PURE__*/_react.default.createElement(_drei.Preload, {
123
116
  all: true
124
117
  })), has3Stats && /*#__PURE__*/_react.default.createElement(_drei.Stats, null), hasControls && /*#__PURE__*/_react.default.createElement(_drei.OrbitControls, null)), /*#__PURE__*/_react.default.createElement("div", {
125
118
  id: "elements-projection"
@@ -0,0 +1,210 @@
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 _drei = require("@react-three/drei");
13
+
14
+ var _fiber = require("@react-three/fiber");
15
+
16
+ var _three = require("three");
17
+
18
+ var _GLTFLoader = require("three/examples/jsm/loaders/GLTFLoader");
19
+
20
+ function _getRequireWildcardCache() { if (typeof WeakMap !== "function") return null; var cache = new WeakMap(); _getRequireWildcardCache = function _getRequireWildcardCache() { return cache; }; return cache; }
21
+
22
+ function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (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; }
23
+
24
+ function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
25
+
26
+ 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."); }
27
+
28
+ 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); }
29
+
30
+ 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; }
31
+
32
+ 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; }
33
+
34
+ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
35
+
36
+ var DialogComponent = function DialogComponent(_ref) {
37
+ var emitEvent = _ref.emitEvent,
38
+ lines = _ref.lines,
39
+ actors = _ref.actors,
40
+ enableZoom = _ref.enableZoom;
41
+
42
+ var _useState = (0, _react.useState)(0),
43
+ _useState2 = _slicedToArray(_useState, 2),
44
+ line = _useState2[0],
45
+ changeLine = _useState2[1];
46
+
47
+ var _useState3 = (0, _react.useState)({
48
+ text: '',
49
+ name: ''
50
+ }),
51
+ _useState4 = _slicedToArray(_useState3, 2),
52
+ currentMessage = _useState4[0],
53
+ setCurrentMessage = _useState4[1];
54
+
55
+ var _useThree = (0, _fiber.useThree)(function (state) {
56
+ return [state.camera, state.scene];
57
+ }),
58
+ _useThree2 = _slicedToArray(_useThree, 2),
59
+ camera = _useThree2[0],
60
+ scene = _useThree2[1];
61
+
62
+ var loader = (0, _react.useMemo)(function () {
63
+ return new _GLTFLoader.GLTFLoader();
64
+ }, []);
65
+ var messagePosition = (0, _react.useRef)(new _three.Vector3());
66
+ var defaultCamera = (0, _react.useRef)(camera.clone());
67
+ var animationStart = (0, _react.useRef)(false);
68
+ var currentLine = lines[line];
69
+ var lastLine = lines[line - 1];
70
+ var resetAnims = (0, _react.useCallback)(function (end) {
71
+ var slottedCharacters = currentLine.slots.filter(function (slot) {
72
+ return slot.uid;
73
+ });
74
+ var lastSlotterCharacters = lastLine === null || lastLine === void 0 ? void 0 : lastLine.slots.filter(function (slot) {
75
+ return slot.uid;
76
+ });
77
+
78
+ if (end) {
79
+ slottedCharacters === null || slottedCharacters === void 0 ? void 0 : slottedCharacters.forEach(function (slot) {
80
+ var element = scene.getObjectByName(slot.uid);
81
+
82
+ if (element) {
83
+ var mixer = element.userData.mixer;
84
+ mixer.stopAllAction();
85
+ var action = mixer.clipAction(element.userData.defaultAnim, element);
86
+ action.play();
87
+ }
88
+ });
89
+ }
90
+
91
+ lastSlotterCharacters === null || lastSlotterCharacters === void 0 ? void 0 : lastSlotterCharacters.forEach(function (slot) {
92
+ var element = scene.getObjectByName(slot.uid);
93
+
94
+ if (element) {
95
+ var mixer = element.userData.mixer;
96
+ mixer.stopAllAction();
97
+ var action = mixer.clipAction(element.userData.defaultAnim, element);
98
+ action.play();
99
+ }
100
+ });
101
+ }, [lastLine === null || lastLine === void 0 ? void 0 : lastLine.slots, currentLine, scene]);
102
+ var onKeyCallback = (0, _react.useCallback)(function (e) {
103
+ if (e.keyCode === 32) {
104
+ resetAnims(line >= lines.length - 1);
105
+
106
+ if (line < lines.length - 1) {
107
+ changeLine(line + 1);
108
+ } else {
109
+ messagePosition.current = defaultCamera.current.position.clone().add(new _three.Vector3(0, 5, -35));
110
+ animationStart.current = true;
111
+ setCurrentMessage({
112
+ text: ''
113
+ });
114
+ setTimeout(function () {
115
+ camera.copy(defaultCamera.current);
116
+ emitEvent({
117
+ type: 'success'
118
+ });
119
+ }, 2000);
120
+ }
121
+ }
122
+ }, [line, lines, camera, resetAnims, emitEvent]);
123
+ (0, _react.useEffect)(function () {
124
+ var talkingCharacter = currentLine.slots.find(function (slot) {
125
+ return slot.talking;
126
+ });
127
+ var slottedCharacters = currentLine.slots.filter(function (slot) {
128
+ return slot.uid;
129
+ });
130
+ var box = new _three.Box3();
131
+ slottedCharacters.forEach(function (slot) {
132
+ var element = scene.getObjectByName(slot.uid);
133
+
134
+ if (element) {
135
+ var mixer = element.userData.mixer;
136
+ var animation = slot.character.resource.animations[slot.emotion];
137
+ loader.load(animation.url, function (anim) {
138
+ mixer.stopAllAction();
139
+ var clip = anim.animations[0];
140
+ var action = mixer.clipAction(clip, element);
141
+ action.play();
142
+
143
+ if (talkingCharacter.uid === element.name) {
144
+ var head = element.getObjectByName('Head_M');
145
+ var size = box.setFromObject(head).getSize(new _three.Vector3());
146
+ messagePosition.current = head.getWorldPosition(new _three.Vector3());
147
+ messagePosition.current.add(new _three.Vector3(size.x + 3, 2.5, 0));
148
+
149
+ if (enableZoom) {
150
+ animationStart.current = true;
151
+ }
152
+
153
+ setCurrentMessage({
154
+ text: talkingCharacter.text,
155
+ name: talkingCharacter.alias
156
+ });
157
+ }
158
+ });
159
+ }
160
+ });
161
+ }, [camera, currentLine, enableZoom, lastLine, scene, loader]);
162
+ (0, _react.useEffect)(function () {
163
+ window.addEventListener('keydown', onKeyCallback);
164
+ return function () {
165
+ window.removeEventListener('keydown', onKeyCallback);
166
+ };
167
+ }, [onKeyCallback]);
168
+ (0, _fiber.useFrame)(function (_ref2, delta) {
169
+ var camera = _ref2.camera;
170
+
171
+ if (animationStart.current) {
172
+ var target = messagePosition.current.clone();
173
+ target.add(new _three.Vector3(0, -5, 35));
174
+ camera.position.lerp(target, delta * 2.5);
175
+
176
+ if (target.distanceTo(camera.position) < 1) {
177
+ animationStart.current = false;
178
+ }
179
+ }
180
+ });
181
+ return currentMessage.text ? /*#__PURE__*/_react.default.createElement(_drei.Html, {
182
+ position: messagePosition.current,
183
+ zIndexRange: [3, 0],
184
+ sprite: true
185
+ }, /*#__PURE__*/_react.default.createElement("div", {
186
+ style: {
187
+ backgroundColor: 'white',
188
+ display: 'flex',
189
+ flexDirection: 'column',
190
+ borderRadius: '10px',
191
+ border: '2px solid black',
192
+ padding: '5px',
193
+ width: '240px',
194
+ maxWidth: '400px'
195
+ }
196
+ }, /*#__PURE__*/_react.default.createElement("span", {
197
+ style: {
198
+ borderBottom: '2px solid black'
199
+ }
200
+ }, currentMessage.name), /*#__PURE__*/_react.default.createElement("span", {
201
+ style: {
202
+ fontSize: '20px',
203
+ wordWrap: 'break-word',
204
+ overflow: 'auto'
205
+ }
206
+ }, currentMessage.text))) : null;
207
+ };
208
+
209
+ var _default = DialogComponent;
210
+ exports.default = _default;
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+
8
+ var _DialogComponent = _interopRequireDefault(require("./components/DialogComponent"));
9
+
10
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
11
+
12
+ var _default = _DialogComponent.default;
13
+ exports.default = _default;
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.mockProps = void 0;
7
+
8
+ var emitEvent = function emitEvent() {
9
+ console.log('Emit event called');
10
+ };
11
+
12
+ var mockProps = {
13
+ emitEvent: emitEvent
14
+ };
15
+ exports.mockProps = mockProps;
@@ -11,6 +11,18 @@ Object.defineProperty(exports, "Scene", {
11
11
  return _scene.default;
12
12
  }
13
13
  });
14
+ Object.defineProperty(exports, "ElementList", {
15
+ enumerable: true,
16
+ get: function get() {
17
+ return _elementsList.default;
18
+ }
19
+ });
20
+ Object.defineProperty(exports, "Background", {
21
+ enumerable: true,
22
+ get: function get() {
23
+ return _background.default;
24
+ }
25
+ });
14
26
  Object.defineProperty(exports, "NoticeComponent", {
15
27
  enumerable: true,
16
28
  get: function get() {
@@ -209,9 +221,25 @@ Object.defineProperty(exports, "TextClickPuzzleComponent", {
209
221
  return _textClickPuzzleComponent.default;
210
222
  }
211
223
  });
224
+ Object.defineProperty(exports, "ZoomTest", {
225
+ enumerable: true,
226
+ get: function get() {
227
+ return _zoomTest.default;
228
+ }
229
+ });
230
+ Object.defineProperty(exports, "DialogComponent", {
231
+ enumerable: true,
232
+ get: function get() {
233
+ return _dialogComponent.default;
234
+ }
235
+ });
212
236
 
213
237
  var _scene = _interopRequireDefault(require("./arcade-render/scene"));
214
238
 
239
+ var _elementsList = _interopRequireDefault(require("./arcade-render/elements-list"));
240
+
241
+ var _background = _interopRequireDefault(require("./arcade-render/background"));
242
+
215
243
  var _noticeComponent = _interopRequireDefault(require("./notice-component"));
216
244
 
217
245
  var _inventoryItem = _interopRequireDefault(require("./inventory-item"));
@@ -276,6 +304,10 @@ var _patternComponent = _interopRequireDefault(require("./pattern-component"));
276
304
 
277
305
  var _textClickPuzzleComponent = _interopRequireDefault(require("./text-click-puzzle-component"));
278
306
 
307
+ var _zoomTest = _interopRequireDefault(require("./zoom-test"));
308
+
309
+ var _dialogComponent = _interopRequireDefault(require("./dialog-component"));
310
+
279
311
  function _getRequireWildcardCache() { if (typeof WeakMap !== "function") return null; var cache = new WeakMap(); _getRequireWildcardCache = function _getRequireWildcardCache() { return cache; }; return cache; }
280
312
 
281
313
  function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (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; }
@@ -0,0 +1,91 @@
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 && (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 ZoomTest = function ZoomTest(_ref) {
27
+ var targetId = _ref.targetId,
28
+ emitEvent = _ref.emitEvent;
29
+
30
+ var _useState = (0, _react.useState)(false),
31
+ _useState2 = _slicedToArray(_useState, 2),
32
+ mounted = _useState2[0],
33
+ setMounted = _useState2[1];
34
+
35
+ var camera = (0, _fiber.useThree)(function (state) {
36
+ return state.camera;
37
+ });
38
+ var startAnimation = (0, _react.useRef)(false);
39
+ var defaultCamera = (0, _react.useRef)(null);
40
+
41
+ var onEnter = function onEnter(_ref2, delta) {
42
+ var scene = _ref2.scene,
43
+ camera = _ref2.camera;
44
+ var target = scene.getObjectByName(targetId);
45
+
46
+ if (target) {
47
+ var head = target.getObjectByName('Head_M');
48
+ var worldPos = head.getWorldPosition(new _three.Vector3());
49
+
50
+ if (camera.position.distanceTo(new _three.Vector3()) <= 5) {
51
+ onFinish({
52
+ scene: scene,
53
+ camera: camera
54
+ }, delta);
55
+ } else {
56
+ head.attach(camera);
57
+ camera.position.lerp(new _three.Vector3(), delta * 0.5);
58
+ camera.lookAt(worldPos);
59
+ }
60
+ } else {
61
+ startAnimation.current = false;
62
+ }
63
+ };
64
+
65
+ var onFinish = function onFinish(_ref3, delta) {
66
+ var camera = _ref3.camera;
67
+ startAnimation.current = false;
68
+ camera.parent = null;
69
+ camera.copy(defaultCamera.current);
70
+ emitEvent({
71
+ type: 'success'
72
+ });
73
+ };
74
+
75
+ (0, _react.useEffect)(function () {
76
+ if (!mounted) {
77
+ startAnimation.current = true;
78
+ defaultCamera.current = camera.clone();
79
+ setMounted(true);
80
+ }
81
+ }, [camera, mounted]);
82
+ (0, _fiber.useFrame)(function (state, delta) {
83
+ if (startAnimation.current) {
84
+ onEnter(state, delta);
85
+ }
86
+ });
87
+ return null;
88
+ };
89
+
90
+ var _default = ZoomTest;
91
+ exports.default = _default;
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+
8
+ var _ZoomTest = _interopRequireDefault(require("./components/ZoomTest"));
9
+
10
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
11
+
12
+ var _default = _ZoomTest.default;
13
+ exports.default = _default;
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.mockProps = void 0;
7
+
8
+ var _bg001_street = _interopRequireDefault(require("../../arcade-render/mocks/scenes/bg001_street.json"));
9
+
10
+ var _characters = require("../../arcade-render/mocks/scenes/characters.json");
11
+
12
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
13
+
14
+ var mockProps = {
15
+ background: _bg001_street.default,
16
+ elements: _characters.elements,
17
+ scene: {
18
+ sceneChanged: true,
19
+ loadingText: 'Cargando... {percent}%',
20
+ hasControls: false
21
+ }
22
+ };
23
+ exports.mockProps = mockProps;
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@gamelearn/arcade-components",
3
3
  "license": "Gamelearn",
4
- "version": "0.22.13",
4
+ "version": "0.23.0",
5
5
  "main": "dist/index.js",
6
6
  "files": [
7
7
  "dist",