@gamelearn/arcade-components 2.17.12 → 2.17.13

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.
@@ -1,13 +1,11 @@
1
1
  "use strict";
2
2
 
3
- function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
4
-
5
3
  Object.defineProperty(exports, "__esModule", {
6
4
  value: true
7
5
  });
8
6
  exports.default = void 0;
9
7
 
10
- var _react = _interopRequireWildcard(require("react"));
8
+ var _react = _interopRequireDefault(require("react"));
11
9
 
12
10
  var _arcadeThreeCore = require("@gamelearn/arcade-three-core");
13
11
 
@@ -15,19 +13,11 @@ var _SpeechBubbleComponent = _interopRequireDefault(require("./SpeechBubbleCompo
15
13
 
16
14
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
17
15
 
18
- 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); }
19
-
20
- 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; }
21
-
22
16
  var BubbleWrapper = function BubbleWrapper(_ref) {
23
17
  var currentMessage = _ref.currentMessage,
24
18
  translate = _ref.translate;
25
- var group = (0, _react.useRef)();
26
- var bubble = (0, _react.useRef)();
27
19
  var container = document.querySelector('.screens--container');
28
- return /*#__PURE__*/_react.default.createElement("group", {
29
- ref: group
30
- }, /*#__PURE__*/_react.default.createElement(_arcadeThreeCore.HtmlPro, {
20
+ return /*#__PURE__*/_react.default.createElement("group", null, /*#__PURE__*/_react.default.createElement(_arcadeThreeCore.HtmlPro, {
31
21
  onOcclude: function onOcclude() {
32
22
  return null;
33
23
  },
@@ -45,7 +35,6 @@ var BubbleWrapper = function BubbleWrapper(_ref) {
45
35
  }
46
36
  }, /*#__PURE__*/_react.default.createElement(_SpeechBubbleComponent.default, {
47
37
  translate: translate,
48
- ref: bubble,
49
38
  message: currentMessage
50
39
  })));
51
40
  };
@@ -37,12 +37,6 @@ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "functio
37
37
 
38
38
  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; }
39
39
 
40
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
41
-
42
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
43
-
44
- function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
45
-
46
40
  function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
47
41
 
48
42
  function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
@@ -51,6 +45,12 @@ function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symb
51
45
 
52
46
  function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
53
47
 
48
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
49
+
50
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
51
+
52
+ function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
53
+
54
54
  function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
55
55
 
56
56
  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."); }
@@ -116,12 +116,11 @@ var DialogComponent = function DialogComponent(_ref) {
116
116
  camera = _useThree2[0],
117
117
  scene = _useThree2[1];
118
118
 
119
- var changedMats = (0, _react.useRef)([]);
120
-
121
119
  var _useTimeout = (0, _useTimeout2.default)(),
122
120
  start = _useTimeout.start,
123
121
  stop = _useTimeout.stop;
124
122
 
123
+ var changedMats = (0, _react.useRef)([]);
125
124
  var loader = (0, _react.useMemo)(function () {
126
125
  return new _GLTFLoader.GLTFLoader();
127
126
  }, []);
@@ -149,6 +148,7 @@ var DialogComponent = function DialogComponent(_ref) {
149
148
  voiceOver = _ref2.voiceOver,
150
149
  decision = _ref2.decision;
151
150
 
151
+ var lastTalking = (0, _react.useRef)({});
152
152
  var talkingCharacter = currentLineData === null || currentLineData === void 0 ? void 0 : (_currentLineData$slot = currentLineData.slots) === null || _currentLineData$slot === void 0 ? void 0 : _currentLineData$slot.find(function (slot) {
153
153
  return slot.talking;
154
154
  });
@@ -428,6 +428,7 @@ var DialogComponent = function DialogComponent(_ref) {
428
428
  }
429
429
  }, [currentLineData === null || currentLineData === void 0 ? void 0 : currentLineData.id, edges, finishConversation, lines]);
430
430
  var backLine = (0, _react.useCallback)(function () {
431
+ lastTalking.current = _objectSpread({}, talkingCharacter);
431
432
  resetTalkingAnimation();
432
433
  setAudioFailed(false);
433
434
 
@@ -439,8 +440,9 @@ var DialogComponent = function DialogComponent(_ref) {
439
440
  });
440
441
  changeLine(line - 1);
441
442
  }
442
- }, [handleBranchDirection, isBranched, lastLine, line]);
443
+ }, [handleBranchDirection, isBranched, lastLine, line, talkingCharacter]);
443
444
  var nextLine = (0, _react.useCallback)(function (choice, reset) {
445
+ lastTalking.current = _objectSpread({}, talkingCharacter);
444
446
  resetTalkingAnimation();
445
447
  setEdgesHistory([].concat(_toConsumableArray(edgesHistory), [currentLineData.id]));
446
448
  setAudioFailed(false);
@@ -459,7 +461,7 @@ var DialogComponent = function DialogComponent(_ref) {
459
461
  } else if (currentLineData.decision) {
460
462
  finishConversation();
461
463
  }
462
- }, [currentLineData === null || currentLineData === void 0 ? void 0 : currentLineData.decision, isBranched, line, lines.length, handleDecisionBranch, handleBranchDirection, finishConversation]);
464
+ }, [currentLineData === null || currentLineData === void 0 ? void 0 : currentLineData.decision, isBranched, line, lines.length, handleDecisionBranch, handleBranchDirection, finishConversation, talkingCharacter]);
463
465
 
464
466
  var manualBackLine = function manualBackLine() {
465
467
  setAutomatic(false);
@@ -507,19 +509,16 @@ var DialogComponent = function DialogComponent(_ref) {
507
509
  }
508
510
  }, [edges, isBranched, lines, mounted]);
509
511
 
510
- var moveBubble = function moveBubble(element, showArrowTop) {
512
+ var moveBubble = function moveBubble(element) {
513
+ if (lastTalking.current.uid === element.uid) return;
511
514
  var target = new _three.Object3D();
512
- element.updateMatrix();
513
- element.updateMatrixWorld();
514
515
  var head = element.getObjectByName('Head_M');
515
516
  head.updateMatrixWorld();
516
- head.getWorldPosition(target.position);
517
+ target.applyMatrix4(head.matrixWorld);
517
518
  target.applyQuaternion(camera.quaternion);
518
- var distance = camera.position.distanceTo(target.position);
519
- var staticDisplay = distance > 70 && !zoomInActor && !showArrowTop;
520
519
  var yDistance = zoomInActor ? 2.5 : 2;
521
520
  var xDistance = zoomInActor ? 1.2 : 1.5;
522
- target.translateY(staticDisplay || showArrowTop ? 0 : yDistance);
521
+ target.translateY(yDistance);
523
522
  target.translateX(xDistance); // Check if character is left or right in the screen
524
523
 
525
524
  var vector = new _three.Vector3();
@@ -532,9 +531,6 @@ var DialogComponent = function DialogComponent(_ref) {
532
531
  parent: element,
533
532
  isLeft: isLeft
534
533
  };
535
- return {
536
- distance: distance
537
- };
538
534
  }; // Position bubble over talking character/and switch emotions
539
535
 
540
536
 
@@ -588,17 +584,8 @@ var DialogComponent = function DialogComponent(_ref) {
588
584
 
589
585
  if (element && !lastSet.current) {
590
586
  loadEmotion(talkingCharacter, element, function (mixer, action, defaultAction) {
591
- var startAction = element.userData.lastEmotion ? element.userData.lastEmotion : defaultAction;
592
-
593
- if (startAction && action && startAction !== action) {
594
- mixer.stopAllAction();
595
- (0, _helpers.executeCrossFade)(startAction, action, crossFadeDuration);
596
- element.userData.defaultAnim = action.getClip();
597
- }
598
-
599
587
  if (talkingCharacter.uid === element.uid) {
600
- var showArrowTop = talkingCharacter.text.length > maxCharacterToSwitch;
601
- moveBubble(element, showArrowTop);
588
+ moveBubble(element);
602
589
 
603
590
  var setMessage = function setMessage() {
604
591
  var _talkingCharacter$cha5;
@@ -620,6 +607,14 @@ var DialogComponent = function DialogComponent(_ref) {
620
607
  setMessage();
621
608
  }
622
609
  }
610
+
611
+ var startAction = element.userData.lastEmotion ? element.userData.lastEmotion : defaultAction;
612
+
613
+ if (startAction && action && startAction !== action) {
614
+ mixer.stopAllAction();
615
+ (0, _helpers.executeCrossFade)(startAction, action, crossFadeDuration);
616
+ element.userData.defaultAnim = action.getClip();
617
+ }
623
618
  });
624
619
  } else {
625
620
  var _talkingCharacter$cha6;
@@ -769,7 +764,7 @@ var DialogComponent = function DialogComponent(_ref) {
769
764
  } else if (zoomStarted.current) {
770
765
  zoomStarted.current = false;
771
766
  }
772
- }, [animationRunning]);
767
+ }, [animationRunning, camera]);
773
768
  var disableBackButton = (0, _react.useMemo)(function () {
774
769
  var disabled = line === 0 || previousLineWasDecision();
775
770
  return disabled;
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "name": "@gamelearn/arcade-components",
3
3
  "author": "Gamelearn",
4
4
  "license": "unlicense",
5
- "version": "2.17.12",
5
+ "version": "2.17.13",
6
6
  "main": "dist/index.js",
7
7
  "files": [
8
8
  "dist",
@@ -22,7 +22,7 @@
22
22
  "@testing-library/react": "^13.1.1",
23
23
  "@testing-library/user-event": "13.5.0",
24
24
  "global": "^4.4.0",
25
- "gsap": "^3.10.1",
25
+ "gsap": "^3.11.4",
26
26
  "hls.js": "0.12.4",
27
27
  "html-react-parser": "^1.4.0",
28
28
  "interactjs": "^1.10.11",