@gamelearn/arcade-components 0.25.14 → 0.25.15

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.
@@ -0,0 +1,82 @@
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 _three = require("three");
15
+
16
+ var _GLTFLoader = require("three/examples/jsm/loaders/GLTFLoader");
17
+
18
+ var _helpers = require("../../../helpers");
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 AnimationComponent = function AnimationComponent(_ref) {
37
+ var animation = _ref.animation,
38
+ loopTimes = _ref.loopTimes,
39
+ resource = _ref.resource,
40
+ emitEvent = _ref.emitEvent;
41
+
42
+ var _useState = (0, _react.useState)(false),
43
+ _useState2 = _slicedToArray(_useState, 2),
44
+ mounted = _useState2[0],
45
+ setMounted = _useState2[1];
46
+
47
+ var scene = (0, _fiber.useThree)(function (state) {
48
+ return state.scene;
49
+ });
50
+ (0, _react.useEffect)(function () {
51
+ if (!mounted) {
52
+ var loader = new _GLTFLoader.GLTFLoader();
53
+ var object = scene.getObjectByProperty('elementUid', resource.elementUid);
54
+
55
+ if (object) {
56
+ loader.load(animation.url, function (gltf) {
57
+ var mixer = object.userData.mixer;
58
+ var defaultAnim = object.userData.defaultAnim;
59
+ var currentAction = mixer.clipAction(gltf.animations[0], object);
60
+ var oldAction = mixer.clipAction(defaultAnim, object);
61
+ currentAction.setLoop(_three.LoopRepeat, loopTimes);
62
+ (0, _helpers.executeCrossFade)(oldAction, currentAction, 0.5);
63
+
64
+ var finishCallback = function finishCallback() {
65
+ (0, _helpers.executeCrossFade)(currentAction, oldAction, 0.5);
66
+ emitEvent({
67
+ type: 'success'
68
+ });
69
+ mixer.removeEventListener('finished', finishCallback);
70
+ };
71
+
72
+ mixer.addEventListener('finished', finishCallback);
73
+ setMounted(true);
74
+ });
75
+ }
76
+ }
77
+ }, [scene, resource.elementUid, animation.url, loopTimes, emitEvent, mounted]);
78
+ return null;
79
+ };
80
+
81
+ var _default = AnimationComponent;
82
+ 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 _AnimationComponent = _interopRequireDefault(require("./components/AnimationComponent"));
9
+
10
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
11
+
12
+ var _default = _AnimationComponent.default;
13
+ exports.default = _default;
@@ -0,0 +1,36 @@
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 emitEvent = function emitEvent() {
15
+ console.log('Emit event called');
16
+ };
17
+
18
+ var mockProps = {
19
+ background: _bg001_street.default,
20
+ elements: _characters.elements,
21
+ scene: {
22
+ sceneChanged: true,
23
+ loadingText: 'Cargando... {percent}%',
24
+ hasControls: false
25
+ },
26
+ resource: {
27
+ elementUid: 'snHJhg'
28
+ },
29
+ loopTimes: 1,
30
+ animation: {
31
+ url: 'https://min.gamelearn.io/cooked.gl-lms-storage/clients/5981fca94d82290bcbe957fe/animation/5e467197d55361000f040196/standmale_2_breath.glb'
32
+ },
33
+ currentAnimation: '5e467197d55361000f040196',
34
+ emitEvent: emitEvent
35
+ };
36
+ exports.mockProps = mockProps;
@@ -245,6 +245,12 @@ Object.defineProperty(exports, "DialogComponent", {
245
245
  return _dialogComponent.default;
246
246
  }
247
247
  });
248
+ Object.defineProperty(exports, "AnimationComponent", {
249
+ enumerable: true,
250
+ get: function get() {
251
+ return _animationComponent.default;
252
+ }
253
+ });
248
254
 
249
255
  var _scene = _interopRequireDefault(require("./arcade-render/scene"));
250
256
 
@@ -324,6 +330,8 @@ var _zoomTest = _interopRequireDefault(require("./zoom-test"));
324
330
 
325
331
  var _dialogComponent = _interopRequireDefault(require("./dialog-component"));
326
332
 
333
+ var _animationComponent = _interopRequireDefault(require("./animation-component"));
334
+
327
335
  function _getRequireWildcardCache() { if (typeof WeakMap !== "function") return null; var cache = new WeakMap(); _getRequireWildcardCache = function _getRequireWildcardCache() { return cache; }; return cache; }
328
336
 
329
337
  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; }
@@ -3,7 +3,7 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.getObjectPosition = exports.cameraFitAnyObject = exports.roundFloat = exports.usePrevious = exports.formatMessage = void 0;
6
+ exports.executeCrossFade = exports.getObjectPosition = exports.cameraFitAnyObject = exports.roundFloat = exports.usePrevious = exports.formatMessage = void 0;
7
7
 
8
8
  var _react = require("react");
9
9
 
@@ -85,4 +85,16 @@ var getObjectPosition = function getObjectPosition(object, camera, canvas) {
85
85
  return position;
86
86
  };
87
87
 
88
- exports.getObjectPosition = getObjectPosition;
88
+ exports.getObjectPosition = getObjectPosition;
89
+
90
+ var executeCrossFade = function executeCrossFade(startAction, endAction, duration) {
91
+ var ratio = endAction.getClip().duration / startAction.getClip().duration;
92
+ endAction.time = startAction.time * ratio;
93
+ endAction.enabled = true;
94
+ endAction.setEffectiveTimeScale(1.0);
95
+ endAction.setEffectiveWeight(1.0);
96
+ endAction.crossFadeFrom(startAction, duration, true);
97
+ endAction.play();
98
+ };
99
+
100
+ exports.executeCrossFade = executeCrossFade;
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@gamelearn/arcade-components",
3
3
  "license": "Gamelearn",
4
- "version": "0.25.14",
4
+ "version": "0.25.15",
5
5
  "main": "dist/index.js",
6
6
  "files": [
7
7
  "dist",