@gamelearn/arcade-components 2.8.6-hotfix-zoom → 2.9.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.
@@ -186,7 +186,8 @@ var ConversationProViewer = function ConversationProViewer(_ref) {
186
186
  currentMessage: currentMessage || {},
187
187
  slots: !isVoiceOver ? currentLineData.slots : voiceOverSlots,
188
188
  flex: isFlex,
189
- pause: pause
189
+ pause: pause,
190
+ emitEvent: emitEvent
190
191
  }; // Last line with slots
191
192
 
192
193
  var leftWithSlots = lines.slice(0, currentLine + 1).reverse().find(function (line) {
@@ -16,19 +16,63 @@ var Slot = function Slot(_ref) {
16
16
 
17
17
  var character = _ref.character,
18
18
  active = _ref.active,
19
- slot = _ref.slot;
19
+ slot = _ref.slot,
20
+ lowQuality = _ref.lowQuality;
20
21
  var isImage = character.type === 'image';
22
+ var isCharacter = character.type === 'character';
23
+ var isObject = character.type === 'object';
21
24
  var imgUrl = character === null || character === void 0 ? void 0 : (_character$resource = character.resource) === null || _character$resource === void 0 ? void 0 : _character$resource.url;
22
- var style = isImage ? {
23
- backgroundImage: "url(".concat(imgUrl, ")"),
25
+
26
+ var backgroundImage = function backgroundImage() {
27
+ if (isImage) {
28
+ return "url(".concat(imgUrl, ")");
29
+ }
30
+
31
+ if (isCharacter && lowQuality) {
32
+ return "url(".concat(imgUrl.replace('character.glb', 'face.png'), ")");
33
+ }
34
+
35
+ if (isObject && lowQuality) {
36
+ return "url(".concat(imgUrl.replace('object.glb', 'thumbnail.png'), ")");
37
+ }
38
+
39
+ return '';
40
+ };
41
+
42
+ var backgroundSize = function backgroundSize() {
43
+ if (isImage) {
44
+ return 'contain';
45
+ }
46
+
47
+ if (isCharacter || isObject) {
48
+ return 'auto 95%';
49
+ }
50
+
51
+ return '';
52
+ };
53
+
54
+ var backgroundPosition = function backgroundPosition() {
55
+ if (isImage) {
56
+ return 'center';
57
+ }
58
+
59
+ if (isCharacter || isObject) {
60
+ return 'center bottom';
61
+ }
62
+
63
+ return '';
64
+ };
65
+
66
+ var thumbnailsImage = isImage || lowQuality ? {
67
+ backgroundImage: backgroundImage(),
24
68
  backgroundRepeat: 'no-repeat',
25
- backgroundPosition: 'center',
26
- backgroundSize: 'contain'
69
+ backgroundPosition: backgroundPosition(),
70
+ backgroundSize: backgroundSize()
27
71
  } : {};
28
72
  return /*#__PURE__*/_react.default.createElement("div", {
29
73
  key: character.name,
30
74
  className: "conversation--character__item ".concat(active ? 'active' : '', " ").concat(slot),
31
- style: style
75
+ style: thumbnailsImage
32
76
  }, active && character.name ? /*#__PURE__*/_react.default.createElement("span", {
33
77
  className: "conversation--character__name"
34
78
  }, character.name) : null);
@@ -1,11 +1,13 @@
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
+
3
5
  Object.defineProperty(exports, "__esModule", {
4
6
  value: true
5
7
  });
6
8
  exports.default = void 0;
7
9
 
8
- var _react = _interopRequireDefault(require("react"));
10
+ var _react = _interopRequireWildcard(require("react"));
9
11
 
10
12
  var _Slot = _interopRequireDefault(require("./Slot"));
11
13
 
@@ -13,6 +15,10 @@ var _scene = _interopRequireDefault(require("./scene"));
13
15
 
14
16
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
15
17
 
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
+
16
22
  function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
17
23
 
18
24
  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; }
@@ -30,7 +36,8 @@ var SlotList = function SlotList(_ref) {
30
36
  flex = _ref.flex,
31
37
  slots = _ref.slots,
32
38
  children = _ref.children,
33
- pause = _ref.pause;
39
+ pause = _ref.pause,
40
+ emitEvent = _ref.emitEvent;
34
41
 
35
42
  var characterProps = function characterProps(_ref2) {
36
43
  var character = _ref2.character,
@@ -44,6 +51,12 @@ var SlotList = function SlotList(_ref) {
44
51
  };
45
52
  };
46
53
 
54
+ var currentLOD = (0, _react.useMemo)(function () {
55
+ return emitEvent({
56
+ type: 'currentLod'
57
+ });
58
+ }, [emitEvent]);
59
+ var lowQuality = currentLOD === 'divideby64';
47
60
  var gameChars = slots.reduce(function (acc, current) {
48
61
  var actor = actors === null || actors === void 0 ? void 0 : actors.find(function (a) {
49
62
  return a.uid === current.uid;
@@ -100,7 +113,9 @@ var SlotList = function SlotList(_ref) {
100
113
  }
101
114
 
102
115
  return /*#__PURE__*/_react.default.createElement(_Slot.default, _extends({
103
- key: "".concat(character.uid + index)
116
+ emitEvent: emitEvent,
117
+ key: "".concat(character.uid + index),
118
+ lowQuality: lowQuality
104
119
  }, characterProps({
105
120
  character: character,
106
121
  active: currentMessage.position === character.position,
@@ -155,7 +170,9 @@ var SlotList = function SlotList(_ref) {
155
170
  currentMessage: currentMessage,
156
171
  lodSettings: lodSettings,
157
172
  ttsStarted: ttsStarted,
158
- pause: pause
173
+ pause: pause,
174
+ emitEvent: emitEvent,
175
+ lowQuality: lowQuality
159
176
  }), children || /*#__PURE__*/_react.default.createElement(Slots, null));
160
177
  };
161
178
 
@@ -49,7 +49,8 @@ function Panel(_ref) {
49
49
 
50
50
  var character = _ref.character,
51
51
  ttsStarted = _ref.ttsStarted,
52
- active = _ref.active;
52
+ active = _ref.active,
53
+ emitEvent = _ref.emitEvent;
53
54
  var cameraRef = (0, _react.useRef)(null);
54
55
  var sceneRef = (0, _react.useRef)(null);
55
56
  var isCharacter = character.type === 'character';
@@ -59,6 +60,11 @@ function Panel(_ref) {
59
60
  talking = _useState2[0],
60
61
  setTalking = _useState2[1];
61
62
 
63
+ var currentLOD = (0, _react.useMemo)(function () {
64
+ return emitEvent({
65
+ type: 'currentLod'
66
+ });
67
+ }, [emitEvent]);
62
68
  var model = (0, _react.useRef)();
63
69
  var defaultClip = (0, _react.useRef)();
64
70
  var emotion = (0, _react.useMemo)(function () {
@@ -166,7 +172,8 @@ function Panel(_ref) {
166
172
  return character.type === 'image' ? null : /*#__PURE__*/_react.default.createElement("scene", {
167
173
  ref: sceneRef
168
174
  }, (_character$resource7 = character.resource) !== null && _character$resource7 !== void 0 && _character$resource7.url ? /*#__PURE__*/_react.default.createElement(_arcadeThreeCore.LodWrapper, {
169
- progressive: true
175
+ progressive: true,
176
+ lod: currentLOD
170
177
  }, /*#__PURE__*/_react.default.createElement(_arcadeThreeCore.TriggerWrapper, {
171
178
  name: "char_".concat(character.uid),
172
179
  url: character.resource.url,
@@ -23,7 +23,8 @@ var Panels = function Panels(_ref) {
23
23
  ttsStarted = _ref.ttsStarted,
24
24
  activeIndex = _ref.activeIndex,
25
25
  flex = _ref.flex,
26
- lodSettings = _ref.lodSettings;
26
+ lodSettings = _ref.lodSettings,
27
+ emitEvent = _ref.emitEvent;
27
28
  return slots.map(function (slot, slotPosition) {
28
29
  var currentCharacter = null;
29
30
  var characterPos = characters.findIndex(function (c) {
@@ -39,7 +40,8 @@ var Panels = function Panels(_ref) {
39
40
  character: currentCharacter,
40
41
  active: activeIndex === currentPosition,
41
42
  lodSettings: lodSettings,
42
- ttsStarted: ttsStarted
43
+ ttsStarted: ttsStarted,
44
+ emitEvent: emitEvent
43
45
  });
44
46
  }
45
47
 
@@ -39,7 +39,8 @@ var PanelsWrapper = function PanelsWrapper(_ref) {
39
39
  ttsStarted = _ref.ttsStarted,
40
40
  slotRefs = _ref.slotRefs,
41
41
  flex = _ref.flex,
42
- currentMessage = _ref.currentMessage;
42
+ currentMessage = _ref.currentMessage,
43
+ emitEvent = _ref.emitEvent;
43
44
 
44
45
  var _useState = (0, _react.useState)(false),
45
46
  _useState2 = _slicedToArray(_useState, 2),
@@ -62,12 +63,13 @@ var PanelsWrapper = function PanelsWrapper(_ref) {
62
63
  slots: slots,
63
64
  slotRefs: slotRefs,
64
65
  flex: flex,
65
- activeIndex: currentMessage.position
66
+ activeIndex: currentMessage.position,
67
+ emitEvent: emitEvent
66
68
  }) : null;
67
69
  };
68
70
 
69
71
  var Scene = function Scene(props) {
70
- return /*#__PURE__*/_react.default.createElement(_arcadeThreeCore.Renderer, {
72
+ return !props.lowQuality ? /*#__PURE__*/_react.default.createElement(_arcadeThreeCore.Renderer, {
71
73
  fullscreen: false,
72
74
  className: "conversation--canvas",
73
75
  style: {
@@ -87,7 +89,7 @@ var Scene = function Scene(props) {
87
89
  }
88
90
  }), /*#__PURE__*/_react.default.createElement(_react.Suspense, {
89
91
  fallback: null
90
- }, /*#__PURE__*/_react.default.createElement(PanelsWrapper, props)));
92
+ }, /*#__PURE__*/_react.default.createElement(PanelsWrapper, props))) : null;
91
93
  };
92
94
 
93
95
  var _default = Scene;
@@ -88,7 +88,8 @@ var DecisionComponent = function DecisionComponent(_ref) {
88
88
  currentMessage: {
89
89
  position: null,
90
90
  emotion: ''
91
- }
91
+ },
92
+ emitEvent: emitEvent
92
93
  });
93
94
 
94
95
  if (inheritProps) {
@@ -592,7 +592,6 @@ var DialogComponent = function DialogComponent(_ref) {
592
592
  avatar: getAvatarURL(talkingCharacter),
593
593
  show: true
594
594
  });
595
- setAnimationRunning(false);
596
595
  }, zoomInActor ? 1200 : 0);
597
596
  }
598
597
  });
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.8.6-hotfix-zoom",
5
+ "version": "2.9.0",
6
6
  "main": "dist/index.js",
7
7
  "files": [
8
8
  "dist",