@galacean/engine-core 1.3.0-alpha.3 → 1.3.0-beta.5

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.
Files changed (45) hide show
  1. package/dist/main.js +164 -55
  2. package/dist/main.js.map +1 -1
  3. package/dist/miniprogram.js +164 -55
  4. package/dist/module.js +161 -56
  5. package/dist/module.js.map +1 -1
  6. package/package.json +3 -3
  7. package/types/Entity.d.ts +4 -1
  8. package/types/animation/index.d.ts +3 -0
  9. package/types/asset/ResourceManager.d.ts +3 -1
  10. package/types/utils/SafeLoopArray.d.ts +5 -0
  11. package/types/utils/index.d.ts +1 -0
  12. package/types/2d/assembler/IAssembler.d.ts +0 -1
  13. package/types/2d/data/VertexData2D.d.ts +0 -1
  14. package/types/2d/text/CharRenderData.d.ts +0 -1
  15. package/types/2d/text/CharRenderDataPool.d.ts +0 -1
  16. package/types/RenderPipeline/Basic2DBatcher.d.ts +0 -19
  17. package/types/RenderPipeline/ClassPool.d.ts +0 -19
  18. package/types/RenderPipeline/DynamicGeometryData.d.ts +0 -1
  19. package/types/RenderPipeline/DynamicGeometryDataManager.d.ts +0 -1
  20. package/types/RenderPipeline/IPoolElement.d.ts +0 -3
  21. package/types/RenderPipeline/RenderData.d.ts +0 -14
  22. package/types/RenderPipeline/RenderData2D.d.ts +0 -14
  23. package/types/RenderPipeline/RenderPass.d.ts +0 -55
  24. package/types/RenderPipeline/SpriteBatcher.d.ts +0 -1
  25. package/types/RenderPipeline/SpriteMaskBatcher.d.ts +0 -11
  26. package/types/RenderPipeline/SpriteMaskManager.d.ts +0 -1
  27. package/types/RenderPipeline/SpriteMaskRenderData.d.ts +0 -12
  28. package/types/RenderPipeline/SpriteRenderData.d.ts +0 -14
  29. package/types/RenderPipeline/TextRenderData.d.ts +0 -8
  30. package/types/RenderPipeline/enums/ForceUploadShaderDataFlag.d.ts +0 -15
  31. package/types/RenderPipeline/enums/RenderDataUsage.d.ts +0 -13
  32. package/types/animation/AnimatorTransition.d.ts +0 -14
  33. package/types/input/pointer/PointerEvent.d.ts +0 -4
  34. package/types/input/pointer/PointerEventType.d.ts +0 -7
  35. package/types/renderingHardwareInterface/IHardwareRenderer.d.ts +0 -6
  36. package/types/ui/Image.d.ts +0 -38
  37. package/types/ui/RedBlackTree.d.ts +0 -2
  38. package/types/ui/UICanvas.d.ts +0 -55
  39. package/types/ui/UIRenderer.d.ts +0 -14
  40. package/types/ui/UITransform.d.ts +0 -20
  41. package/types/ui/enums/BlockingObjects.d.ts +0 -6
  42. package/types/ui/enums/CanvasRenderMode.d.ts +0 -8
  43. package/types/ui/enums/ResolutionAdaptationStrategy.d.ts +0 -10
  44. package/types/ui/index.d.ts +0 -6
  45. package/types/utils/Pool.d.ts +0 -12
@@ -10321,14 +10321,17 @@ var /**
10321
10321
  var replacementSubShaders = replacementShader.subShaders;
10322
10322
  var replacementTag = context.replacementTag;
10323
10323
  if (replacementTag) {
10324
+ var replacementSuccess = false;
10324
10325
  for(var j = 0, m = replacementSubShaders.length; j < m; j++){
10325
10326
  var subShader = replacementSubShaders[j];
10326
10327
  if (subShader.getTagValue(replacementTag) === materialSubShader.getTagValue(replacementTag)) {
10327
10328
  this.pushRenderElementByType(renderElement, subRenderElement, subShader.passes, renderStates);
10328
- break;
10329
+ replacementSuccess = true;
10329
10330
  }
10330
10331
  }
10331
- context.replacementFailureStrategy === exports.ReplacementFailureStrategy.KeepOriginalShader && this.pushRenderElementByType(renderElement, subRenderElement, materialSubShader.passes, renderStates);
10332
+ if (!replacementSuccess && context.replacementFailureStrategy === exports.ReplacementFailureStrategy.KeepOriginalShader) {
10333
+ this.pushRenderElementByType(renderElement, subRenderElement, materialSubShader.passes, renderStates);
10334
+ }
10332
10335
  } else {
10333
10336
  this.pushRenderElementByType(renderElement, subRenderElement, replacementSubShaders[0].passes, renderStates);
10334
10337
  }
@@ -10912,7 +10915,7 @@ var /**
10912
10915
  if (info) {
10913
10916
  return info;
10914
10917
  }
10915
- info = TextUtils._measureFontOrChar(fontString);
10918
+ info = TextUtils._measureFontOrChar(fontString, TextUtils._measureString, false);
10916
10919
  fontSizeInfoCache[fontString] = info;
10917
10920
  return info;
10918
10921
  };
@@ -10933,7 +10936,7 @@ var /**
10933
10936
  return str;
10934
10937
  };
10935
10938
  TextUtils.measureChar = function measureChar(char, fontString) {
10936
- return TextUtils._measureFontOrChar(fontString, char);
10939
+ return TextUtils._measureFontOrChar(fontString, char, true);
10937
10940
  };
10938
10941
  TextUtils.measureTextWithWrap = function measureTextWithWrap(renderer) {
10939
10942
  var subFont = renderer._getSubFont();
@@ -11152,15 +11155,15 @@ var /**
11152
11155
  };
11153
11156
  /**
11154
11157
  * @internal
11155
- */ TextUtils._measureFontOrChar = function _measureFontOrChar(fontString, char) {
11156
- if (char === void 0) char = "";
11158
+ */ TextUtils._measureFontOrChar = function _measureFontOrChar(fontString, measureString, isChar) {
11157
11159
  var _TextUtils_textContext = TextUtils.textContext(), canvas = _TextUtils_textContext.canvas, context = _TextUtils_textContext.context;
11158
11160
  context.font = fontString;
11159
- var measureString = char || TextUtils._measureString;
11160
11161
  // Safari gets data confusion through getImageData when the canvas width is not an integer.
11161
11162
  // The measure text width of some special invisible characters may be 0, so make sure the width is at least 1.
11162
11163
  // @todo: Text layout may vary from standard and not support emoji.
11163
- var width = Math.max(1, Math.round(context.measureText(measureString).width));
11164
+ var textMetrics = context.measureText(measureString);
11165
+ // In some case (ex: " "), actualBoundingBoxRight and actualBoundingBoxLeft will be 0, so use width.
11166
+ var width = Math.max(1, Math.round(textMetrics.actualBoundingBoxRight - textMetrics.actualBoundingBoxLeft || textMetrics.width));
11164
11167
  var baseline = Math.ceil(context.measureText(TextUtils._measureBaseline).width);
11165
11168
  var height = baseline * TextUtils._heightMultiplier;
11166
11169
  baseline = TextUtils._baselineMultiplier * baseline | 0;
@@ -11205,12 +11208,7 @@ var /**
11205
11208
  descent = bottom - baseline + 1;
11206
11209
  size = ascent + descent;
11207
11210
  }
11208
- var sizeInfo = {
11209
- ascent: ascent,
11210
- descent: descent,
11211
- size: size
11212
- };
11213
- if (char) {
11211
+ if (isChar) {
11214
11212
  var data = null;
11215
11213
  if (size > 0) {
11216
11214
  var lineIntegerW = integerW * 4;
@@ -11218,7 +11216,7 @@ var /**
11218
11216
  data = new Uint8Array(colorData.buffer, top * lineIntegerW, size * lineIntegerW);
11219
11217
  }
11220
11218
  return {
11221
- char: char,
11219
+ char: measureString,
11222
11220
  x: 0,
11223
11221
  y: 0,
11224
11222
  w: width,
@@ -11238,7 +11236,11 @@ var /**
11238
11236
  data: data
11239
11237
  };
11240
11238
  } else {
11241
- return sizeInfo;
11239
+ return {
11240
+ ascent: ascent,
11241
+ descent: descent,
11242
+ size: size
11243
+ };
11242
11244
  }
11243
11245
  };
11244
11246
  /**
@@ -17431,6 +17433,38 @@ var PrimitiveType;
17431
17433
  PrimitiveMesh._spherePoleIdx = 0;
17432
17434
  })();
17433
17435
 
17436
+ function _is_native_reflect_construct() {
17437
+ if (typeof Reflect === "undefined" || !Reflect.construct) return false;
17438
+ if (Reflect.construct.sham) return false;
17439
+ if (typeof Proxy === "function") return true;
17440
+
17441
+ try {
17442
+ Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function() {}));
17443
+
17444
+ return true;
17445
+ } catch (e) {
17446
+ return false;
17447
+ }
17448
+ }
17449
+
17450
+ function _construct(Parent, args, Class) {
17451
+ if (_is_native_reflect_construct()) _construct = Reflect.construct;
17452
+ else {
17453
+ _construct = function construct(Parent, args, Class) {
17454
+ var a = [null];
17455
+ a.push.apply(a, args);
17456
+ var Constructor = Function.bind.apply(Parent, a);
17457
+ var instance = new Constructor();
17458
+
17459
+ if (Class) _set_prototype_of(instance, Class.prototype);
17460
+
17461
+ return instance;
17462
+ };
17463
+ }
17464
+
17465
+ return _construct.apply(null, arguments);
17466
+ }
17467
+
17434
17468
  var ComponentCloner = /*#__PURE__*/ function() {
17435
17469
  function ComponentCloner() {}
17436
17470
  /**
@@ -17478,10 +17512,14 @@ var ComponentCloner = /*#__PURE__*/ function() {
17478
17512
  /**
17479
17513
  * Add component based on the component type.
17480
17514
  * @param type - The type of the component
17515
+ * @param args - The arguments of the component
17481
17516
  * @returns The component which has been added
17482
17517
  */ _proto.addComponent = function addComponent(type) {
17518
+ for(var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++){
17519
+ args[_key - 1] = arguments[_key];
17520
+ }
17483
17521
  ComponentsDependencies._addCheck(this, type);
17484
- var component = new type(this);
17522
+ var component = _construct(type, [].concat(this, args));
17485
17523
  this._components.push(component);
17486
17524
  component._setActive(true, ActiveChangeFlag.All);
17487
17525
  return component;
@@ -19007,6 +19045,15 @@ var SafeLoopArray = /*#__PURE__*/ function() {
19007
19045
  this._loopArrayDirty = true;
19008
19046
  };
19009
19047
  /**
19048
+ * Remove item from array that pass the specified comparison function.
19049
+ * @param filter - The comparison function
19050
+ */ _proto.findAndRemove = function findAndRemove(filter) {
19051
+ var array = this._array;
19052
+ for(var i = array.length - 1; i >= 0; i--){
19053
+ filter(array[i]) && this.removeByIndex(i);
19054
+ }
19055
+ };
19056
+ /**
19010
19057
  * The index of the item.
19011
19058
  * @param item - The item which want to get the index
19012
19059
  * @returns Index of the item
@@ -19440,17 +19487,35 @@ var /** @internal */ PromiseState;
19440
19487
  };
19441
19488
  /**
19442
19489
  * @internal
19443
- */ _proto._onSubAssetSuccess = function _onSubAssetSuccess(assetURL, value) {
19444
- var _this__subAssetPromiseCallbacks_assetURL;
19445
- (_this__subAssetPromiseCallbacks_assetURL = this._subAssetPromiseCallbacks[assetURL]) == null ? void 0 : _this__subAssetPromiseCallbacks_assetURL.resolve(value);
19446
- delete this._subAssetPromiseCallbacks[assetURL];
19490
+ */ _proto._onSubAssetSuccess = function _onSubAssetSuccess(assetBaseURL, assetSubPath, value) {
19491
+ var _this__subAssetPromiseCallbacks_assetBaseURL;
19492
+ var subPromiseCallback = (_this__subAssetPromiseCallbacks_assetBaseURL = this._subAssetPromiseCallbacks[assetBaseURL]) == null ? void 0 : _this__subAssetPromiseCallbacks_assetBaseURL[assetSubPath];
19493
+ if (subPromiseCallback) {
19494
+ // Already resolved
19495
+ subPromiseCallback.resolve(value);
19496
+ } else {
19497
+ var // Pending
19498
+ _this__subAssetPromiseCallbacks, _assetBaseURL;
19499
+ ((_this__subAssetPromiseCallbacks = this._subAssetPromiseCallbacks)[_assetBaseURL = assetBaseURL] || (_this__subAssetPromiseCallbacks[_assetBaseURL] = {}))[assetSubPath] = {
19500
+ resolve: value
19501
+ };
19502
+ }
19447
19503
  };
19448
19504
  /**
19449
19505
  * @internal
19450
- */ _proto._onSubAssetFail = function _onSubAssetFail(assetURL, value) {
19451
- var _this__subAssetPromiseCallbacks_assetURL;
19452
- (_this__subAssetPromiseCallbacks_assetURL = this._subAssetPromiseCallbacks[assetURL]) == null ? void 0 : _this__subAssetPromiseCallbacks_assetURL.reject(value);
19453
- delete this._subAssetPromiseCallbacks[assetURL];
19506
+ */ _proto._onSubAssetFail = function _onSubAssetFail(assetBaseURL, assetSubPath, value) {
19507
+ var _this__subAssetPromiseCallbacks_assetBaseURL;
19508
+ var subPromiseCallback = (_this__subAssetPromiseCallbacks_assetBaseURL = this._subAssetPromiseCallbacks[assetBaseURL]) == null ? void 0 : _this__subAssetPromiseCallbacks_assetBaseURL[assetSubPath];
19509
+ if (subPromiseCallback) {
19510
+ // Already rejected
19511
+ subPromiseCallback.reject(value);
19512
+ } else {
19513
+ var // Pending
19514
+ _this__subAssetPromiseCallbacks, _assetBaseURL;
19515
+ ((_this__subAssetPromiseCallbacks = this._subAssetPromiseCallbacks)[_assetBaseURL = assetBaseURL] || (_this__subAssetPromiseCallbacks[_assetBaseURL] = {}))[assetSubPath] = {
19516
+ reject: value
19517
+ };
19518
+ }
19454
19519
  };
19455
19520
  /**
19456
19521
  * @internal
@@ -19595,8 +19660,21 @@ var /** @internal */ PromiseState;
19595
19660
  if (!loader) {
19596
19661
  throw "loader not found: " + item.type;
19597
19662
  }
19598
- // Load asset
19663
+ // Check sub asset
19664
+ if (queryPath) {
19665
+ // Check whether load main asset
19666
+ var mainPromise = loadingPromises[assetBaseURL] || this._loadMainAsset(loader, item, assetBaseURL);
19667
+ mainPromise.catch(function(e) {
19668
+ _this._onSubAssetFail(assetBaseURL, queryPath, e);
19669
+ });
19670
+ return this._createSubAssetPromiseCallback(assetBaseURL, assetURL, queryPath);
19671
+ }
19672
+ return this._loadMainAsset(loader, item, assetBaseURL);
19673
+ };
19674
+ _proto._loadMainAsset = function _loadMainAsset(loader, item, assetBaseURL) {
19675
+ var _this = this;
19599
19676
  item.url = assetBaseURL;
19677
+ var loadingPromises = this._loadingPromises;
19600
19678
  var promise = loader.load(item, this);
19601
19679
  loadingPromises[assetBaseURL] = promise;
19602
19680
  promise.then(function(resource) {
@@ -19604,32 +19682,46 @@ var /** @internal */ PromiseState;
19604
19682
  _this._addAsset(assetBaseURL, resource);
19605
19683
  }
19606
19684
  delete loadingPromises[assetBaseURL];
19685
+ _this._releaseSubAssetPromiseCallback(assetBaseURL);
19607
19686
  }, function() {
19608
- return delete loadingPromises[assetBaseURL];
19687
+ delete loadingPromises[assetBaseURL];
19688
+ _this._releaseSubAssetPromiseCallback(assetBaseURL);
19609
19689
  });
19610
- if (queryPath) {
19611
- var subPromise = new AssetPromise(function(resolve, reject) {
19612
- _this._pushSubAssetPromiseCallback(assetURL, resolve, reject);
19613
- });
19614
- loadingPromises[assetURL] = subPromise;
19615
- subPromise.then(function() {
19690
+ return promise;
19691
+ };
19692
+ _proto._createSubAssetPromiseCallback = function _createSubAssetPromiseCallback(assetBaseURL, assetURL, assetSubPath) {
19693
+ var _this = this;
19694
+ var _this__subAssetPromiseCallbacks_assetBaseURL, _subPromiseCallback, _subPromiseCallback1;
19695
+ var loadingPromises = this._loadingPromises;
19696
+ var subPromiseCallback = (_this__subAssetPromiseCallbacks_assetBaseURL = this._subAssetPromiseCallbacks[assetBaseURL]) == null ? void 0 : _this__subAssetPromiseCallbacks_assetBaseURL[assetSubPath];
19697
+ var resolvedValue = (_subPromiseCallback = subPromiseCallback) == null ? void 0 : _subPromiseCallback.resolve;
19698
+ var rejectedValue = (_subPromiseCallback1 = subPromiseCallback) == null ? void 0 : _subPromiseCallback1.reject;
19699
+ var promise = new AssetPromise(function(resolve, reject) {
19700
+ if (resolvedValue) {
19701
+ // Already resolved
19702
+ resolve(resolvedValue);
19703
+ } else if (rejectedValue) {
19704
+ // Already rejected
19705
+ reject(rejectedValue);
19706
+ } else {
19707
+ var _this__subAssetPromiseCallbacks, _assetBaseURL;
19708
+ // Pending
19709
+ loadingPromises[assetURL] = promise;
19710
+ ((_this__subAssetPromiseCallbacks = _this._subAssetPromiseCallbacks)[_assetBaseURL = assetBaseURL] || (_this__subAssetPromiseCallbacks[_assetBaseURL] = {}))[assetSubPath] = {
19711
+ resolve: resolve,
19712
+ reject: reject
19713
+ };
19714
+ }
19715
+ });
19716
+ if (!resolvedValue && !rejectedValue) {
19717
+ promise.then(function() {
19616
19718
  delete loadingPromises[assetURL];
19617
19719
  }, function() {
19618
19720
  return delete loadingPromises[assetURL];
19619
19721
  });
19620
- promise.catch(function(e) {
19621
- _this._onSubAssetFail(assetURL, e);
19622
- });
19623
- return subPromise;
19624
19722
  }
19625
19723
  return promise;
19626
19724
  };
19627
- _proto._pushSubAssetPromiseCallback = function _pushSubAssetPromiseCallback(assetURL, resolve, reject) {
19628
- this._subAssetPromiseCallbacks[assetURL] = {
19629
- resolve: resolve,
19630
- reject: reject
19631
- };
19632
- };
19633
19725
  _proto._gc = function _gc(forceDestroy) {
19634
19726
  var objects = Utils.objectValues(this._referResourcePool);
19635
19727
  for(var i = 0, n = objects.length; i < n; i++){
@@ -19686,6 +19778,9 @@ var /** @internal */ PromiseState;
19686
19778
  });
19687
19779
  return result;
19688
19780
  };
19781
+ _proto._releaseSubAssetPromiseCallback = function _releaseSubAssetPromiseCallback(assetBaseURL) {
19782
+ delete this._subAssetPromiseCallbacks[assetBaseURL];
19783
+ };
19689
19784
  /**
19690
19785
  * @internal
19691
19786
  * @beta Just for internal editor, not recommended for developers.
@@ -28330,10 +28425,7 @@ exports.AnimatorLayerBlendingMode = void 0;
28330
28425
  /**
28331
28426
  * @internal
28332
28427
  */ _proto._onEnable = function _onEnable() {
28333
- var layersData = this._animatorLayersData;
28334
- for(var i = 0, n = layersData.length; i < n; i++){
28335
- layersData[i].layerState = LayerState.Standby;
28336
- }
28428
+ this._reset();
28337
28429
  this._entity.getComponentsIncludeChildren(exports.Renderer, this._controlledRenderers);
28338
28430
  };
28339
28431
  /**
@@ -28887,8 +28979,11 @@ exports.AnimatorLayerBlendingMode = void 0;
28887
28979
  if (exitTime >= lastClipTime) {
28888
28980
  playState.currentTransitionIndex = Math.min(transitionIndex + 1, n - 1);
28889
28981
  if (this._checkConditions(state, transition)) {
28890
- this._applyTransition(layerIndex, layerData, stateMachine, transition);
28891
- return transition;
28982
+ if (this._applyTransition(layerIndex, layerData, stateMachine, transition)) {
28983
+ return transition;
28984
+ } else {
28985
+ return null;
28986
+ }
28892
28987
  }
28893
28988
  }
28894
28989
  }
@@ -28907,8 +29002,11 @@ exports.AnimatorLayerBlendingMode = void 0;
28907
29002
  if (exitTime <= lastClipTime) {
28908
29003
  playState.currentTransitionIndex = Math.max(transitionIndex - 1, 0);
28909
29004
  if (this._checkConditions(state, transition)) {
28910
- this._applyTransition(layerIndex, layerData, stateMachine, transition);
28911
- return transition;
29005
+ if (this._applyTransition(layerIndex, layerData, stateMachine, transition)) {
29006
+ return transition;
29007
+ } else {
29008
+ return null;
29009
+ }
28912
29010
  }
28913
29011
  }
28914
29012
  }
@@ -28918,8 +29016,11 @@ exports.AnimatorLayerBlendingMode = void 0;
28918
29016
  for(var i = 0, n = transitions.length; i < n; i++){
28919
29017
  var transition = transitions[i];
28920
29018
  if (this._checkConditions(state, transition)) {
28921
- this._applyTransition(layerIndex, layerData, stateMachine, transition);
28922
- return transition;
29019
+ if (this._applyTransition(layerIndex, layerData, stateMachine, transition)) {
29020
+ return transition;
29021
+ } else {
29022
+ return null;
29023
+ }
28923
29024
  }
28924
29025
  }
28925
29026
  };
@@ -28939,11 +29040,12 @@ exports.AnimatorLayerBlendingMode = void 0;
28939
29040
  };
28940
29041
  _proto._applyTransition = function _applyTransition(layerIndex, layerData, stateMachine, transition) {
28941
29042
  // Need prepare first, it should crossFade when to exit
28942
- this._prepareCrossFadeByTransition(transition, layerIndex);
29043
+ var success = this._prepareCrossFadeByTransition(transition, layerIndex);
28943
29044
  if (transition.isExit) {
28944
29045
  this._checkAnyAndEntryState(layerIndex, layerData, stateMachine);
28945
- return;
29046
+ return true;
28946
29047
  }
29048
+ return success;
28947
29049
  };
28948
29050
  _proto._checkConditions = function _checkConditions(state, transition) {
28949
29051
  var _state;
@@ -28955,6 +29057,9 @@ exports.AnimatorLayerBlendingMode = void 0;
28955
29057
  var pass = false;
28956
29058
  var _conditions_i = conditions[i], mode = _conditions_i.mode, name1 = _conditions_i.parameterName, threshold = _conditions_i.threshold;
28957
29059
  var parameter = this.getParameter(name1);
29060
+ if (!parameter) {
29061
+ return false;
29062
+ }
28958
29063
  switch(mode){
28959
29064
  case exports.AnimatorConditionMode.Equals:
28960
29065
  if (parameter.value === threshold) {
@@ -34255,8 +34360,10 @@ exports.AnimationClipCurveBinding = AnimationClipCurveBinding;
34255
34360
  exports.AnimationCurve = AnimationCurve;
34256
34361
  exports.AnimationEvent = AnimationEvent;
34257
34362
  exports.Animator = Animator;
34363
+ exports.AnimatorCondition = AnimatorCondition;
34258
34364
  exports.AnimatorController = AnimatorController;
34259
34365
  exports.AnimatorControllerLayer = AnimatorControllerLayer;
34366
+ exports.AnimatorControllerParameter = AnimatorControllerParameter;
34260
34367
  exports.AnimatorLayerMask = AnimatorLayerMask;
34261
34368
  exports.AnimatorState = AnimatorState;
34262
34369
  exports.AnimatorStateMachine = AnimatorStateMachine;
@@ -34310,6 +34417,7 @@ exports.InputManager = InputManager;
34310
34417
  exports.JointLimits = JointLimits;
34311
34418
  exports.JointMotor = JointMotor;
34312
34419
  exports.Keyframe = Keyframe;
34420
+ exports.LayerPathMask = LayerPathMask;
34313
34421
  exports.Light = Light;
34314
34422
  exports.Loader = Loader;
34315
34423
  exports.Logger = Logger;
@@ -34345,6 +34453,7 @@ exports.RenderTargetBlendState = RenderTargetBlendState;
34345
34453
  exports.ResourceManager = ResourceManager;
34346
34454
  exports.ReturnableObjectPool = ReturnableObjectPool;
34347
34455
  exports.RotationOverLifetimeModule = RotationOverLifetimeModule;
34456
+ exports.SafeLoopArray = SafeLoopArray;
34348
34457
  exports.Scene = Scene;
34349
34458
  exports.SceneManager = SceneManager;
34350
34459
  exports.Script = Script;