@galacean/engine-loader 1.5.8 → 1.5.10

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.
package/dist/main.js CHANGED
@@ -677,43 +677,16 @@ var ParserType = /*#__PURE__*/ function(ParserType) {
677
677
  this.entityMap = new Map();
678
678
  this.entityConfigMap = new Map();
679
679
  this.components = new Map();
680
+ this.componentConfigMap = new Map();
680
681
  this.rootIds = [];
681
682
  this.strippedIds = [];
682
- this.componentWaitingMap = new Map();
683
683
  this.resourceManager = engine.resourceManager;
684
684
  }
685
685
  var _proto = ParserContext.prototype;
686
- _proto.addComponent = function addComponent(id, component) {
687
- this.components.set(id, component);
688
- var waitingList = this.componentWaitingMap.get(id);
689
- if (waitingList == null ? void 0 : waitingList.length) {
690
- waitingList.forEach(function(resolve) {
691
- return resolve(component);
692
- });
693
- this.componentWaitingMap.delete(id);
694
- }
695
- };
696
- _proto.getComponentByRef = function getComponentByRef(ref) {
697
- var _this = this;
698
- return new Promise(function(resolve, reject) {
699
- var component = _this.components.get(ref.componentId);
700
- if (component) {
701
- resolve(component);
702
- } else {
703
- var resolves = _this.componentWaitingMap.get(ref.componentId);
704
- if (resolves) {
705
- resolves.push(resolve);
706
- } else {
707
- _this.componentWaitingMap.set(ref.componentId, [
708
- resolve
709
- ]);
710
- }
711
- }
712
- });
713
- };
714
686
  _proto.clear = function clear() {
715
687
  this.entityMap.clear();
716
688
  this.components.clear();
689
+ this.componentConfigMap.clear();
717
690
  this.entityConfigMap.clear();
718
691
  this.rootIds.length = 0;
719
692
  this.strippedIds.length = 0;
@@ -827,7 +800,8 @@ var ReflectionParser = /*#__PURE__*/ function() {
827
800
  return resource;
828
801
  });
829
802
  } else if (ReflectionParser._isComponentRef(value)) {
830
- return this._context.getComponentByRef(value);
803
+ var _this__context_components_get;
804
+ return Promise.resolve((_this__context_components_get = this._context.components.get(value.componentId)) != null ? _this__context_components_get : null);
831
805
  } else if (ReflectionParser._isEntityRef(value)) {
832
806
  // entity reference
833
807
  return Promise.resolve(this._context.entityMap.get(value.entityId));
@@ -987,53 +961,6 @@ exports.Texture2DDecoder = __decorate([
987
961
  decoder("Texture2D")
988
962
  ], exports.Texture2DDecoder);
989
963
 
990
- exports.EditorTextureLoader = /*#__PURE__*/ function(Loader) {
991
- _inherits(EditorTextureLoader, Loader);
992
- function EditorTextureLoader() {
993
- return Loader.apply(this, arguments) || this;
994
- }
995
- var _proto = EditorTextureLoader.prototype;
996
- _proto.load = function load(item, resourceManager) {
997
- var requestConfig = _extends({}, item, {
998
- type: "arraybuffer"
999
- });
1000
- var url = item.url;
1001
- return new engineCore.AssetPromise(function(resolve, reject) {
1002
- resourceManager// @ts-ignore
1003
- ._request(url, requestConfig).then(function(data) {
1004
- decode(data, resourceManager.engine).then(function(texture) {
1005
- resourceManager.addContentRestorer(new EditorTexture2DContentRestorer(texture, url, requestConfig));
1006
- resolve(texture);
1007
- });
1008
- }).catch(reject);
1009
- });
1010
- };
1011
- return EditorTextureLoader;
1012
- }(engineCore.Loader);
1013
- exports.EditorTextureLoader = __decorate([
1014
- engineCore.resourceLoader("EditorTexture2D", [
1015
- "prefab"
1016
- ], true)
1017
- ], exports.EditorTextureLoader);
1018
- var EditorTexture2DContentRestorer = /*#__PURE__*/ function(ContentRestorer) {
1019
- _inherits(EditorTexture2DContentRestorer, ContentRestorer);
1020
- function EditorTexture2DContentRestorer(resource, url, requestConfig) {
1021
- var _this;
1022
- _this = ContentRestorer.call(this, resource) || this, _this.url = url, _this.requestConfig = requestConfig;
1023
- return _this;
1024
- }
1025
- var _proto = EditorTexture2DContentRestorer.prototype;
1026
- _proto.restoreContent = function restoreContent() {
1027
- var texture = this.resource;
1028
- var engine = texture.engine;
1029
- return engine.resourceManager// @ts-ignore
1030
- ._request(this.url, this.requestConfig).then(function(data) {
1031
- return decode(data, engine, texture);
1032
- });
1033
- };
1034
- return EditorTexture2DContentRestorer;
1035
- }(engineCore.ContentRestorer);
1036
-
1037
964
  function _instanceof(left, right) {
1038
965
  if (right != null && typeof Symbol !== "undefined" && right[Symbol.hasInstance]) {
1039
966
  return !!right[Symbol.hasInstance](left);
@@ -1134,6 +1061,7 @@ function _create_for_of_iterator_helper_loose(o, allowArrayLike) {
1134
1061
  this._parseComponents = this._parseComponents.bind(this);
1135
1062
  this._parsePrefabModification = this._parsePrefabModification.bind(this);
1136
1063
  this._parseAddedComponents = this._parseAddedComponents.bind(this);
1064
+ this._parseComponentsPropsAndMethods = this._parseComponentsPropsAndMethods.bind(this);
1137
1065
  this._parsePrefabRemovedEntities = this._parsePrefabRemovedEntities.bind(this);
1138
1066
  this._parsePrefabRemovedComponents = this._parsePrefabRemovedComponents.bind(this);
1139
1067
  this._clearAndResolve = this._clearAndResolve.bind(this);
@@ -1145,7 +1073,7 @@ function _create_for_of_iterator_helper_loose(o, allowArrayLike) {
1145
1073
  }
1146
1074
  var _proto = HierarchyParser.prototype;
1147
1075
  /** start parse the scene or prefab or others */ _proto.start = function start() {
1148
- this._parseEntities().then(this._organizeEntities).then(this._parseComponents).then(this._parsePrefabModification).then(this._parseAddedComponents).then(this._parsePrefabRemovedEntities).then(this._parsePrefabRemovedComponents).then(this._clearAndResolve).then(this._resolve).catch(this._reject);
1076
+ this._parseEntities().then(this._organizeEntities).then(this._parseComponents).then(this._parseAddedComponents).then(this._parseComponentsPropsAndMethods).then(this._parsePrefabModification).then(this._parsePrefabRemovedEntities).then(this._parsePrefabRemovedComponents).then(this._clearAndResolve).then(this._resolve).catch(this._reject);
1149
1077
  };
1150
1078
  _proto._parseEntities = function _parseEntities() {
1151
1079
  var _this = this;
@@ -1170,16 +1098,14 @@ function _create_for_of_iterator_helper_loose(o, allowArrayLike) {
1170
1098
  _proto._parseComponents = function _parseComponents() {
1171
1099
  var entitiesConfig = this.data.entities;
1172
1100
  var entityMap = this.context.entityMap;
1173
- var promises = [];
1174
1101
  for(var i = 0, l = entitiesConfig.length; i < l; i++){
1175
1102
  var entityConfig = entitiesConfig[i];
1176
1103
  if (entityConfig.strippedId) {
1177
1104
  continue;
1178
1105
  }
1179
1106
  var entity = entityMap.get(entityConfig.id);
1180
- this._addComponents(entity, entityConfig.components, promises);
1107
+ this._addComponents(entity, entityConfig.components);
1181
1108
  }
1182
- return Promise.all(promises);
1183
1109
  };
1184
1110
  _proto._parsePrefabModification = function _parsePrefabModification() {
1185
1111
  var _loop = function(i, l) {
@@ -1216,78 +1142,62 @@ function _create_for_of_iterator_helper_loose(o, allowArrayLike) {
1216
1142
  var entityMap = this.context.entityMap;
1217
1143
  var entityConfigMap = this.context.entityConfigMap;
1218
1144
  var strippedIds = this.context.strippedIds;
1219
- var promises = [];
1220
1145
  for(var i = 0, n = strippedIds.length; i < n; i++){
1221
1146
  var entityConfig = entityConfigMap.get(strippedIds[i]);
1222
1147
  var prefabContext = this._prefabContextMap.get(entityMap.get(entityConfig.prefabInstanceId));
1223
1148
  var entity = prefabContext.entityMap.get(entityConfig.prefabSource.entityId);
1224
- this._addComponents(entity, entityConfig.components, promises);
1149
+ this._addComponents(entity, entityConfig.components);
1225
1150
  }
1226
- for(var _iterator = _create_for_of_iterator_helper_loose(this.context.componentWaitingMap.values()), _step; !(_step = _iterator()).done;){
1227
- var waitingList = _step.value;
1228
- waitingList.forEach(function(resolve) {
1229
- return resolve(null);
1230
- });
1231
- }
1232
- return Promise.all(promises);
1233
1151
  };
1234
1152
  _proto._parsePrefabRemovedEntities = function _parsePrefabRemovedEntities() {
1235
- var _loop = function(i, l) {
1153
+ var entitiesConfig = this.data.entities;
1154
+ var entityMap = this.context.entityMap;
1155
+ for(var i = 0, l = entitiesConfig.length; i < l; i++){
1236
1156
  var entityConfig = entitiesConfig[i];
1237
1157
  var id = entityConfig.id, removedEntities = entityConfig.removedEntities;
1238
1158
  if (removedEntities == null ? void 0 : removedEntities.length) {
1239
- var _promises;
1240
1159
  var rootEntity = entityMap.get(id);
1241
- (_promises = promises).push.apply(_promises, [].concat(removedEntities.map(function(target) {
1160
+ for(var j = 0, m = removedEntities.length; j < m; j++){
1161
+ var target = removedEntities[j];
1242
1162
  var entityId = target.entityId;
1243
- var context = _this._prefabContextMap.get(rootEntity);
1163
+ var context = this._prefabContextMap.get(rootEntity);
1244
1164
  var targetEntity = context.entityMap.get(entityId);
1245
1165
  if (targetEntity) {
1246
1166
  targetEntity.destroy();
1247
1167
  }
1248
- })));
1168
+ }
1249
1169
  }
1250
- };
1251
- var _this = this;
1252
- var entitiesConfig = this.data.entities;
1253
- var entityMap = this.context.entityMap;
1254
- var promises = [];
1255
- for(var i = 0, l = entitiesConfig.length; i < l; i++)_loop(i);
1256
- return Promise.all(promises);
1170
+ }
1257
1171
  };
1258
1172
  _proto._parsePrefabRemovedComponents = function _parsePrefabRemovedComponents() {
1259
- var _loop = function(i, l) {
1173
+ var entitiesConfig = this.data.entities;
1174
+ var entityMap = this.context.entityMap;
1175
+ var prefabContextMap = this._prefabContextMap;
1176
+ for(var i = 0, l = entitiesConfig.length; i < l; i++){
1260
1177
  var entityConfig = entitiesConfig[i];
1261
1178
  var id = entityConfig.id, removedComponents = entityConfig.removedComponents;
1262
1179
  if (removedComponents == null ? void 0 : removedComponents.length) {
1263
- var _promises;
1264
1180
  var rootEntity = entityMap.get(id);
1265
- (_promises = promises).concat.apply(_promises, [].concat(removedComponents.map(function(target) {
1181
+ for(var j = 0, m = removedComponents.length; j < m; j++){
1182
+ var target = removedComponents[j];
1266
1183
  var componentId = target.componentId;
1267
- var context = _this._prefabContextMap.get(rootEntity);
1184
+ var context = prefabContextMap.get(rootEntity);
1268
1185
  var targetComponent = context.components.get(componentId);
1269
1186
  if (targetComponent) {
1270
1187
  targetComponent.destroy();
1271
1188
  }
1272
- })));
1189
+ }
1273
1190
  }
1274
- };
1275
- var _this = this;
1276
- var entitiesConfig = this.data.entities;
1277
- var entityMap = this.context.entityMap;
1278
- var promises = [];
1279
- for(var i = 0, l = entitiesConfig.length; i < l; i++)_loop(i);
1280
- return Promise.all(promises);
1191
+ }
1281
1192
  };
1282
1193
  _proto._organizeEntities = function _organizeEntities() {
1283
1194
  var _this_context = this.context, rootIds = _this_context.rootIds, strippedIds = _this_context.strippedIds;
1284
1195
  var parentIds = rootIds.concat(strippedIds);
1285
- for(var _iterator = _create_for_of_iterator_helper_loose(parentIds), _step; !(_step = _iterator()).done;){
1286
- var parentId = _step.value;
1287
- this._parseChildren(parentId);
1196
+ for(var i = 0, l = parentIds.length; i < l; i++){
1197
+ this._parseChildren(parentIds[i]);
1288
1198
  }
1289
- for(var i = 0; i < rootIds.length; i++){
1290
- this._handleRootEntity(rootIds[i]);
1199
+ for(var i1 = 0; i1 < rootIds.length; i1++){
1200
+ this._handleRootEntity(rootIds[i1]);
1291
1201
  }
1292
1202
  };
1293
1203
  _proto._getEntityByConfig = function _getEntityByConfig(entityConfig, engine) {
@@ -1308,6 +1218,7 @@ function _create_for_of_iterator_helper_loose(o, allowArrayLike) {
1308
1218
  var transform = entityConfig.transform;
1309
1219
  var entity = new engineCore.Entity(engine, entityConfig.name, transform ? engineCore.Loader.getClass(transform.class) : engineCore.Transform);
1310
1220
  if (!entityConfig.parent) this.context.rootIds.push(entityConfig.id);
1221
+ this._addEntityPlugin(entityConfig.id, entity);
1311
1222
  return Promise.resolve(entity);
1312
1223
  };
1313
1224
  _proto._parsePrefab = function _parsePrefab(entityConfig, engine) {
@@ -1360,16 +1271,19 @@ function _create_for_of_iterator_helper_loose(o, allowArrayLike) {
1360
1271
  }
1361
1272
  }
1362
1273
  };
1363
- _proto._addComponents = function _addComponents(entity, components, promises) {
1274
+ _proto._addComponents = function _addComponents(entity, components) {
1275
+ var context = this.context;
1276
+ var componentMap = context.components;
1277
+ var componentConfigMap = context.componentConfigMap;
1364
1278
  for(var i = 0, n = components.length; i < n; i++){
1365
1279
  var componentConfig = components[i];
1366
1280
  var key = !componentConfig.refId ? componentConfig.class : componentConfig.refId;
1281
+ var componentId = componentConfig.id;
1367
1282
  var component = entity.addComponent(engineCore.Loader.getClass(key));
1368
- this.context.addComponent(componentConfig.id, component);
1369
- var promise = this._reflectionParser.parsePropsAndMethods(component, componentConfig);
1370
- promises.push(promise);
1283
+ componentMap.set(componentId, component);
1284
+ componentConfigMap.set(componentId, componentConfig);
1285
+ this._addComponentPlugin(componentId, component);
1371
1286
  }
1372
- return promises;
1373
1287
  };
1374
1288
  _proto._applyEntityData = function _applyEntityData(entity, entityConfig) {
1375
1289
  if (entityConfig === void 0) entityConfig = {};
@@ -1411,9 +1325,72 @@ function _create_for_of_iterator_helper_loose(o, allowArrayLike) {
1411
1325
  this._generateInstanceContext(child, context, childPath);
1412
1326
  }
1413
1327
  };
1328
+ _proto._parseComponentsPropsAndMethods = function _parseComponentsPropsAndMethods() {
1329
+ var context = this.context;
1330
+ var componentConfigMap = context.componentConfigMap;
1331
+ var reflectionParser = this._reflectionParser;
1332
+ var promises = [];
1333
+ for(var _iterator = _create_for_of_iterator_helper_loose(context.components), _step; !(_step = _iterator()).done;){
1334
+ var _step_value = _step.value, componentId = _step_value[0], component = _step_value[1];
1335
+ var componentConfig = componentConfigMap.get(componentId);
1336
+ if (componentConfig) {
1337
+ promises.push(reflectionParser.parsePropsAndMethods(component, componentConfig));
1338
+ }
1339
+ }
1340
+ return Promise.all(promises);
1341
+ };
1342
+ _proto._addComponentPlugin = function _addComponentPlugin(componentId, component) {};
1343
+ _proto._addEntityPlugin = function _addEntityPlugin(entityId, entity) {};
1414
1344
  return HierarchyParser;
1415
1345
  }();
1416
1346
 
1347
+ exports.EditorTextureLoader = /*#__PURE__*/ function(Loader) {
1348
+ _inherits(EditorTextureLoader, Loader);
1349
+ function EditorTextureLoader() {
1350
+ return Loader.apply(this, arguments) || this;
1351
+ }
1352
+ var _proto = EditorTextureLoader.prototype;
1353
+ _proto.load = function load(item, resourceManager) {
1354
+ var requestConfig = _extends({}, item, {
1355
+ type: "arraybuffer"
1356
+ });
1357
+ var url = item.url;
1358
+ return new engineCore.AssetPromise(function(resolve, reject) {
1359
+ resourceManager// @ts-ignore
1360
+ ._request(url, requestConfig).then(function(data) {
1361
+ decode(data, resourceManager.engine).then(function(texture) {
1362
+ resourceManager.addContentRestorer(new EditorTexture2DContentRestorer(texture, url, requestConfig));
1363
+ resolve(texture);
1364
+ });
1365
+ }).catch(reject);
1366
+ });
1367
+ };
1368
+ return EditorTextureLoader;
1369
+ }(engineCore.Loader);
1370
+ exports.EditorTextureLoader = __decorate([
1371
+ engineCore.resourceLoader("EditorTexture2D", [
1372
+ "prefab"
1373
+ ], true)
1374
+ ], exports.EditorTextureLoader);
1375
+ var EditorTexture2DContentRestorer = /*#__PURE__*/ function(ContentRestorer) {
1376
+ _inherits(EditorTexture2DContentRestorer, ContentRestorer);
1377
+ function EditorTexture2DContentRestorer(resource, url, requestConfig) {
1378
+ var _this;
1379
+ _this = ContentRestorer.call(this, resource) || this, _this.url = url, _this.requestConfig = requestConfig;
1380
+ return _this;
1381
+ }
1382
+ var _proto = EditorTexture2DContentRestorer.prototype;
1383
+ _proto.restoreContent = function restoreContent() {
1384
+ var texture = this.resource;
1385
+ var engine = texture.engine;
1386
+ return engine.resourceManager// @ts-ignore
1387
+ ._request(this.url, this.requestConfig).then(function(data) {
1388
+ return decode(data, engine, texture);
1389
+ });
1390
+ };
1391
+ return EditorTexture2DContentRestorer;
1392
+ }(engineCore.ContentRestorer);
1393
+
1417
1394
  /** @Internal */ var SceneParser = /*#__PURE__*/ function(HierarchyParser) {
1418
1395
  _inherits(SceneParser, HierarchyParser);
1419
1396
  function SceneParser(data, context, scene) {
@@ -5446,7 +5423,7 @@ var PrefabLoader = /*#__PURE__*/ function(Loader) {
5446
5423
  type: "json"
5447
5424
  })).then(function(data) {
5448
5425
  PrefabParser.parse(engine, item.url, data).then(resolve).catch(reject);
5449
- });
5426
+ }, reject);
5450
5427
  });
5451
5428
  };
5452
5429
  return PrefabLoader;
@@ -7480,6 +7457,7 @@ exports.GLTFParserContext = GLTFParserContext;
7480
7457
  exports.GLTFParserType = GLTFParserType;
7481
7458
  exports.GLTFResource = GLTFResource;
7482
7459
  exports.GLTFUtils = GLTFUtils;
7460
+ exports.HierarchyParser = HierarchyParser;
7483
7461
  exports.InterpolableValueType = InterpolableValueType;
7484
7462
  exports.KTX2TargetFormat = KTX2TargetFormat;
7485
7463
  exports.KTX2Transcoder = KTX2Transcoder;