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