@galacean/engine-loader 1.1.0-beta.4 → 1.1.0-beta.6
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 +109 -67
- package/dist/main.js.map +1 -1
- package/dist/miniprogram.js +109 -67
- package/dist/module.js +110 -68
- package/dist/module.js.map +1 -1
- package/package.json +5 -5
- package/types/index.d.ts +1 -0
- package/types/resource-deserialize/resources/parser/ReflectionParser.d.ts +12 -8
- package/types/resource-deserialize/resources/scene/SceneParser.d.ts +1 -0
- package/types/resource-deserialize/resources/scene/SceneParserContext.d.ts +3 -1
- package/types/resource-deserialize/resources/schema/BasicSchema.d.ts +18 -15
package/dist/miniprogram.js
CHANGED
|
@@ -528,12 +528,12 @@ function _construct(Parent, args, Class) {
|
|
|
528
528
|
}
|
|
529
529
|
|
|
530
530
|
var ReflectionParser = /*#__PURE__*/ function() {
|
|
531
|
-
function ReflectionParser() {
|
|
532
|
-
|
|
533
|
-
|
|
534
|
-
|
|
535
|
-
|
|
536
|
-
return
|
|
531
|
+
function ReflectionParser(_context) {
|
|
532
|
+
this._context = _context;
|
|
533
|
+
}
|
|
534
|
+
var _proto = ReflectionParser.prototype;
|
|
535
|
+
_proto.parseEntity = function parseEntity(entityConfig) {
|
|
536
|
+
return this._getEntityByConfig(entityConfig).then(function(entity) {
|
|
537
537
|
var _entityConfig_isActive;
|
|
538
538
|
entity.isActive = (_entityConfig_isActive = entityConfig.isActive) != null ? _entityConfig_isActive : true;
|
|
539
539
|
var position = entityConfig.position, rotation = entityConfig.rotation, scale = entityConfig.scale;
|
|
@@ -543,72 +543,29 @@ var ReflectionParser = /*#__PURE__*/ function() {
|
|
|
543
543
|
return entity;
|
|
544
544
|
});
|
|
545
545
|
};
|
|
546
|
-
|
|
547
|
-
// @ts-ignore
|
|
548
|
-
var assetRefId = entityConfig.assetRefId;
|
|
549
|
-
if (assetRefId) {
|
|
550
|
-
return engine.resourceManager// @ts-ignore
|
|
551
|
-
.getResourceByRef({
|
|
552
|
-
refId: assetRefId,
|
|
553
|
-
key: entityConfig.key,
|
|
554
|
-
isClone: entityConfig.isClone
|
|
555
|
-
}).then(function(entity) {
|
|
556
|
-
entity.name = entityConfig.name;
|
|
557
|
-
return entity;
|
|
558
|
-
});
|
|
559
|
-
} else {
|
|
560
|
-
var entity = new miniprogram.Entity(engine, entityConfig.name);
|
|
561
|
-
return Promise.resolve(entity);
|
|
562
|
-
}
|
|
563
|
-
};
|
|
564
|
-
ReflectionParser.parseClassObject = function parseClassObject(item, engine, resourceManager) {
|
|
565
|
-
if (resourceManager === void 0) resourceManager = engine.resourceManager;
|
|
546
|
+
_proto.parseClassObject = function parseClassObject(item) {
|
|
566
547
|
var Class = miniprogram.Loader.getClass(item.class);
|
|
567
548
|
var _item_constructParams;
|
|
568
549
|
var params = (_item_constructParams = item.constructParams) != null ? _item_constructParams : [];
|
|
569
550
|
var instance = _construct(Class, [].concat(params));
|
|
570
|
-
return this.parsePropsAndMethods(instance, item
|
|
571
|
-
};
|
|
572
|
-
ReflectionParser.parseBasicType = function parseBasicType(value, engine, resourceManager) {
|
|
573
|
-
if (resourceManager === void 0) resourceManager = engine.resourceManager;
|
|
574
|
-
var _this = this;
|
|
575
|
-
if (Array.isArray(value)) {
|
|
576
|
-
return Promise.all(value.map(function(item) {
|
|
577
|
-
return _this.parseBasicType(item, engine, resourceManager);
|
|
578
|
-
}));
|
|
579
|
-
} else if (typeof value === "object" && value != null) {
|
|
580
|
-
if (this._isClass(value)) {
|
|
581
|
-
// class object
|
|
582
|
-
return this.parseClassObject(value, engine, resourceManager);
|
|
583
|
-
} else if (this._isRef(value)) {
|
|
584
|
-
// reference object
|
|
585
|
-
return resourceManager.getResourceByRef(value);
|
|
586
|
-
} else {
|
|
587
|
-
// basic type
|
|
588
|
-
return Promise.resolve(value);
|
|
589
|
-
}
|
|
590
|
-
} else {
|
|
591
|
-
return Promise.resolve(value);
|
|
592
|
-
}
|
|
551
|
+
return this.parsePropsAndMethods(instance, item);
|
|
593
552
|
};
|
|
594
|
-
|
|
595
|
-
if (resourceManager === void 0) resourceManager = engine.resourceManager;
|
|
596
|
-
var _this = this;
|
|
553
|
+
_proto.parsePropsAndMethods = function parsePropsAndMethods(instance, item) {
|
|
597
554
|
var promises = [];
|
|
598
555
|
if (item.methods) {
|
|
599
556
|
for(var methodName in item.methods){
|
|
600
557
|
var methodParams = item.methods[methodName];
|
|
601
558
|
for(var i = 0, count = methodParams.length; i < count; i++){
|
|
602
559
|
var params = methodParams[i];
|
|
603
|
-
var promise = this.parseMethod(instance, methodName, params
|
|
560
|
+
var promise = this.parseMethod(instance, methodName, params);
|
|
604
561
|
promises.push(promise);
|
|
605
562
|
}
|
|
606
563
|
}
|
|
607
564
|
}
|
|
608
565
|
if (item.props) {
|
|
609
|
-
var
|
|
566
|
+
var _this = this, _loop = function(key) {
|
|
610
567
|
var value = item.props[key];
|
|
611
|
-
var promise =
|
|
568
|
+
var promise = _this.parseBasicType(value).then(function(v) {
|
|
612
569
|
return instance[key] = v;
|
|
613
570
|
});
|
|
614
571
|
promises.push(promise);
|
|
@@ -616,27 +573,76 @@ var ReflectionParser = /*#__PURE__*/ function() {
|
|
|
616
573
|
for(var key in item.props)_loop(key);
|
|
617
574
|
}
|
|
618
575
|
return Promise.all(promises).then(function() {
|
|
619
|
-
var handle =
|
|
620
|
-
if (handle) return handle(instance, item
|
|
576
|
+
var handle = ReflectionParser.customParseComponentHandles[instance.constructor.name];
|
|
577
|
+
if (handle) return handle(instance, item);
|
|
621
578
|
else return instance;
|
|
622
579
|
});
|
|
623
580
|
};
|
|
624
|
-
|
|
625
|
-
if (resourceManager === void 0) resourceManager = engine.resourceManager;
|
|
581
|
+
_proto.parseMethod = function parseMethod(instance, methodName, methodParams) {
|
|
626
582
|
var _this = this;
|
|
627
583
|
return Promise.all(methodParams.map(function(param) {
|
|
628
|
-
return _this.parseBasicType(param
|
|
584
|
+
return _this.parseBasicType(param);
|
|
629
585
|
})).then(function(result) {
|
|
630
586
|
var _instance;
|
|
631
587
|
return (_instance = instance)[methodName].apply(_instance, [].concat(result));
|
|
632
588
|
});
|
|
633
589
|
};
|
|
590
|
+
_proto.parseBasicType = function parseBasicType(value) {
|
|
591
|
+
var _this = this;
|
|
592
|
+
if (Array.isArray(value)) {
|
|
593
|
+
return Promise.all(value.map(function(item) {
|
|
594
|
+
return _this.parseBasicType(item);
|
|
595
|
+
}));
|
|
596
|
+
} else if (typeof value === "object" && value != null) {
|
|
597
|
+
if (ReflectionParser._isClass(value)) {
|
|
598
|
+
// class object
|
|
599
|
+
return this.parseClassObject(value);
|
|
600
|
+
} else if (ReflectionParser._isAssetRef(value)) {
|
|
601
|
+
// reference object
|
|
602
|
+
// @ts-ignore
|
|
603
|
+
return this._context.resourceManager.getResourceByRef(value);
|
|
604
|
+
} else if (ReflectionParser._isEntityRef(value)) {
|
|
605
|
+
// entity reference
|
|
606
|
+
return Promise.resolve(this._context.entityMap.get(value.entityId));
|
|
607
|
+
} else {
|
|
608
|
+
// basic type
|
|
609
|
+
return Promise.resolve(value);
|
|
610
|
+
}
|
|
611
|
+
} else {
|
|
612
|
+
return Promise.resolve(value);
|
|
613
|
+
}
|
|
614
|
+
};
|
|
615
|
+
_proto._getEntityByConfig = function _getEntityByConfig(entityConfig) {
|
|
616
|
+
// @ts-ignore
|
|
617
|
+
var assetRefId = entityConfig.assetRefId;
|
|
618
|
+
var engine = this._context.engine;
|
|
619
|
+
if (assetRefId) {
|
|
620
|
+
return engine.resourceManager// @ts-ignore
|
|
621
|
+
.getResourceByRef({
|
|
622
|
+
refId: assetRefId,
|
|
623
|
+
key: entityConfig.key,
|
|
624
|
+
isClone: entityConfig.isClone
|
|
625
|
+
}).then(function(entity) {
|
|
626
|
+
entity.name = entityConfig.name;
|
|
627
|
+
return entity;
|
|
628
|
+
});
|
|
629
|
+
} else {
|
|
630
|
+
var entity = new miniprogram.Entity(engine, entityConfig.name);
|
|
631
|
+
return Promise.resolve(entity);
|
|
632
|
+
}
|
|
633
|
+
};
|
|
634
|
+
ReflectionParser.registerCustomParseComponent = function registerCustomParseComponent(componentType, handle) {
|
|
635
|
+
this.customParseComponentHandles[componentType] = handle;
|
|
636
|
+
};
|
|
634
637
|
ReflectionParser._isClass = function _isClass(value) {
|
|
635
638
|
return value["class"] != undefined;
|
|
636
639
|
};
|
|
637
|
-
ReflectionParser.
|
|
640
|
+
ReflectionParser._isAssetRef = function _isAssetRef(value) {
|
|
638
641
|
return value["refId"] != undefined;
|
|
639
642
|
};
|
|
643
|
+
ReflectionParser._isEntityRef = function _isEntityRef(value) {
|
|
644
|
+
return value["entityId"] != undefined;
|
|
645
|
+
};
|
|
640
646
|
return ReflectionParser;
|
|
641
647
|
}();
|
|
642
648
|
(function() {
|
|
@@ -904,6 +910,8 @@ var SceneParserContext = /*#__PURE__*/ function() {
|
|
|
904
910
|
this.assets = new Map();
|
|
905
911
|
this.entityConfigMap = new Map();
|
|
906
912
|
this.rootIds = [];
|
|
913
|
+
this.engine = scene.engine;
|
|
914
|
+
this.resourceManager = scene.engine.resourceManager;
|
|
907
915
|
}
|
|
908
916
|
var _proto = SceneParserContext.prototype;
|
|
909
917
|
_proto.destroy = function destroy() {
|
|
@@ -920,7 +928,7 @@ var SceneParserContext = /*#__PURE__*/ function() {
|
|
|
920
928
|
function SceneParser(context) {
|
|
921
929
|
var _this = this;
|
|
922
930
|
this.context = context;
|
|
923
|
-
this._engine =
|
|
931
|
+
this._engine = context.scene.engine;
|
|
924
932
|
this._organizeEntities = this._organizeEntities.bind(this);
|
|
925
933
|
this._parseComponents = this._parseComponents.bind(this);
|
|
926
934
|
this._clearAndResolveScene = this._clearAndResolveScene.bind(this);
|
|
@@ -928,22 +936,24 @@ var SceneParserContext = /*#__PURE__*/ function() {
|
|
|
928
936
|
_this._reject = reject;
|
|
929
937
|
_this._resolve = resolve;
|
|
930
938
|
});
|
|
939
|
+
this._reflectionParser = new ReflectionParser(context);
|
|
931
940
|
}
|
|
932
941
|
var _proto = SceneParser.prototype;
|
|
933
942
|
/** start parse the scene */ _proto.start = function start() {
|
|
934
943
|
this._parseEntities().then(this._organizeEntities).then(this._parseComponents).then(this._clearAndResolveScene).then(this._resolve).catch(this._reject);
|
|
935
944
|
};
|
|
936
945
|
_proto._parseEntities = function _parseEntities() {
|
|
946
|
+
var _this = this;
|
|
937
947
|
var entitiesConfig = this.context.originalData.entities;
|
|
938
948
|
var entityConfigMap = this.context.entityConfigMap;
|
|
939
949
|
var entitiesMap = this.context.entityMap;
|
|
940
950
|
var rootIds = this.context.rootIds;
|
|
941
|
-
|
|
951
|
+
this._engine;
|
|
942
952
|
var promises = entitiesConfig.map(function(entityConfig) {
|
|
943
953
|
entityConfigMap.set(entityConfig.id, entityConfig);
|
|
944
954
|
// record root entities
|
|
945
955
|
if (!entityConfig.parent) rootIds.push(entityConfig.id);
|
|
946
|
-
return
|
|
956
|
+
return _this._reflectionParser.parseEntity(entityConfig);
|
|
947
957
|
});
|
|
948
958
|
return Promise.all(promises).then(function(entities) {
|
|
949
959
|
for(var i = 0, l = entities.length; i < l; i++){
|
|
@@ -981,7 +991,7 @@ var SceneParserContext = /*#__PURE__*/ function() {
|
|
|
981
991
|
component = entity.getComponent(miniprogram.Loader.getClass(key));
|
|
982
992
|
}
|
|
983
993
|
component = component || entity.addComponent(miniprogram.Loader.getClass(key));
|
|
984
|
-
var promise =
|
|
994
|
+
var promise = this._reflectionParser.parsePropsAndMethods(component, componentConfig);
|
|
985
995
|
promises.push(promise);
|
|
986
996
|
}
|
|
987
997
|
}
|
|
@@ -4352,8 +4362,7 @@ exports.GLTFTextureParser = (_GLTFTextureParser = /*#__PURE__*/ function(GLTFPar
|
|
|
4352
4362
|
mipmap: (_samplerInfo = samplerInfo) == null ? void 0 : _samplerInfo.mipmap
|
|
4353
4363
|
}
|
|
4354
4364
|
}).then(function(texture) {
|
|
4355
|
-
|
|
4356
|
-
(_texture = texture).name || (_texture.name = textureName || imageName || "texture_" + index);
|
|
4365
|
+
texture.name = textureName || imageName || texture.name || "texture_" + index;
|
|
4357
4366
|
useSampler && GLTFUtils.parseSampler(texture, samplerInfo);
|
|
4358
4367
|
return texture;
|
|
4359
4368
|
});
|
|
@@ -5460,6 +5469,39 @@ TextureCubeLoader = __decorate([
|
|
|
5460
5469
|
])
|
|
5461
5470
|
], TextureCubeLoader);
|
|
5462
5471
|
|
|
5472
|
+
var ProjectLoader = /*#__PURE__*/ function(Loader1) {
|
|
5473
|
+
_inherits(ProjectLoader, Loader1);
|
|
5474
|
+
function ProjectLoader() {
|
|
5475
|
+
return Loader1.apply(this, arguments);
|
|
5476
|
+
}
|
|
5477
|
+
var _proto = ProjectLoader.prototype;
|
|
5478
|
+
_proto.load = function load(item, resourceManager) {
|
|
5479
|
+
var _this = this;
|
|
5480
|
+
var engine = resourceManager.engine;
|
|
5481
|
+
return new miniprogram.AssetPromise(function(resolve, reject) {
|
|
5482
|
+
_this.request(item.url, {
|
|
5483
|
+
type: "json"
|
|
5484
|
+
}).then(function(data) {
|
|
5485
|
+
// @ts-ignore
|
|
5486
|
+
engine.resourceManager.initVirtualResources(data.files);
|
|
5487
|
+
return resourceManager.load({
|
|
5488
|
+
type: miniprogram.AssetType.Scene,
|
|
5489
|
+
url: data.scene
|
|
5490
|
+
}).then(function(scene) {
|
|
5491
|
+
engine.sceneManager.activeScene = scene;
|
|
5492
|
+
resolve();
|
|
5493
|
+
});
|
|
5494
|
+
}).catch(reject);
|
|
5495
|
+
});
|
|
5496
|
+
};
|
|
5497
|
+
return ProjectLoader;
|
|
5498
|
+
}(miniprogram.Loader);
|
|
5499
|
+
ProjectLoader = __decorate([
|
|
5500
|
+
miniprogram.resourceLoader(miniprogram.AssetType.Project, [
|
|
5501
|
+
"proj"
|
|
5502
|
+
], true)
|
|
5503
|
+
], ProjectLoader);
|
|
5504
|
+
|
|
5463
5505
|
var SceneLoader = /*#__PURE__*/ function(Loader1) {
|
|
5464
5506
|
_inherits(SceneLoader, Loader1);
|
|
5465
5507
|
function SceneLoader() {
|
package/dist/module.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Utils, ModelMesh, BlendShape, Texture2D,
|
|
1
|
+
import { Utils, ModelMesh, BlendShape, Texture2D, Loader, Entity, Transform, Animator, DirectLight, Camera, MeshRenderer, ParticleRenderer, PointLight, SpotLight, Script, SpriteMask, SpriteRenderer, TextRenderer, AnimationClip, AnimationEvent, AnimationRefCurve, Keyframe, AnimationQuaternionCurve, AnimationColorCurve, AnimationVector4Curve, AnimationVector3Curve, AnimationVector2Curve, AnimationFloatArrayCurve, AnimationArrayCurve, AnimationFloatCurve, Scene, resourceLoader, AssetPromise, AssetType, AnimatorController, AnimatorControllerLayer, AnimatorStateMachine, AnimatorStateTransition, TextureCube, TextureFilterMode, TextureCubeFace, AmbientLight, DiffuseMode, Font, ReferResource, IndexFormat, VertexElementFormat, GLCapabilityType, Logger, TextureFormat, request, ContentRestorer, InterpolationType, SkinnedMeshRenderer, PBRMaterial, BlinnPhongMaterial, PBRSpecularMaterial, TextureCoordinate, RenderFace, VertexElement, Buffer, BufferBindFlag, BufferUsage, Skin, TextureWrapMode as TextureWrapMode$1, Material, Shader, SpriteAtlas, Sprite, BackgroundMode, UnlitMaterial } from '@galacean/engine-core';
|
|
2
2
|
import { Color, Vector4, Vector3, Vector2, Quaternion, SphericalHarmonics3, MathUtil, BoundingBox, Matrix, Rect } from '@galacean/engine-math';
|
|
3
3
|
import { GLCompressedTextureInternalFormat } from '@galacean/engine-rhi-webgl';
|
|
4
4
|
import { DRACODecoder } from '@galacean/engine-draco';
|
|
@@ -523,12 +523,12 @@ function _construct(Parent, args, Class) {
|
|
|
523
523
|
}
|
|
524
524
|
|
|
525
525
|
var ReflectionParser = /*#__PURE__*/ function() {
|
|
526
|
-
function ReflectionParser() {
|
|
527
|
-
|
|
528
|
-
|
|
529
|
-
|
|
530
|
-
|
|
531
|
-
return
|
|
526
|
+
function ReflectionParser(_context) {
|
|
527
|
+
this._context = _context;
|
|
528
|
+
}
|
|
529
|
+
var _proto = ReflectionParser.prototype;
|
|
530
|
+
_proto.parseEntity = function parseEntity(entityConfig) {
|
|
531
|
+
return this._getEntityByConfig(entityConfig).then(function(entity) {
|
|
532
532
|
var _entityConfig_isActive;
|
|
533
533
|
entity.isActive = (_entityConfig_isActive = entityConfig.isActive) != null ? _entityConfig_isActive : true;
|
|
534
534
|
var position = entityConfig.position, rotation = entityConfig.rotation, scale = entityConfig.scale;
|
|
@@ -538,72 +538,29 @@ var ReflectionParser = /*#__PURE__*/ function() {
|
|
|
538
538
|
return entity;
|
|
539
539
|
});
|
|
540
540
|
};
|
|
541
|
-
|
|
542
|
-
// @ts-ignore
|
|
543
|
-
var assetRefId = entityConfig.assetRefId;
|
|
544
|
-
if (assetRefId) {
|
|
545
|
-
return engine.resourceManager// @ts-ignore
|
|
546
|
-
.getResourceByRef({
|
|
547
|
-
refId: assetRefId,
|
|
548
|
-
key: entityConfig.key,
|
|
549
|
-
isClone: entityConfig.isClone
|
|
550
|
-
}).then(function(entity) {
|
|
551
|
-
entity.name = entityConfig.name;
|
|
552
|
-
return entity;
|
|
553
|
-
});
|
|
554
|
-
} else {
|
|
555
|
-
var entity = new Entity(engine, entityConfig.name);
|
|
556
|
-
return Promise.resolve(entity);
|
|
557
|
-
}
|
|
558
|
-
};
|
|
559
|
-
ReflectionParser.parseClassObject = function parseClassObject(item, engine, resourceManager) {
|
|
560
|
-
if (resourceManager === void 0) resourceManager = engine.resourceManager;
|
|
541
|
+
_proto.parseClassObject = function parseClassObject(item) {
|
|
561
542
|
var Class = Loader.getClass(item.class);
|
|
562
543
|
var _item_constructParams;
|
|
563
544
|
var params = (_item_constructParams = item.constructParams) != null ? _item_constructParams : [];
|
|
564
545
|
var instance = _construct(Class, [].concat(params));
|
|
565
|
-
return this.parsePropsAndMethods(instance, item
|
|
566
|
-
};
|
|
567
|
-
ReflectionParser.parseBasicType = function parseBasicType(value, engine, resourceManager) {
|
|
568
|
-
if (resourceManager === void 0) resourceManager = engine.resourceManager;
|
|
569
|
-
var _this = this;
|
|
570
|
-
if (Array.isArray(value)) {
|
|
571
|
-
return Promise.all(value.map(function(item) {
|
|
572
|
-
return _this.parseBasicType(item, engine, resourceManager);
|
|
573
|
-
}));
|
|
574
|
-
} else if (typeof value === "object" && value != null) {
|
|
575
|
-
if (this._isClass(value)) {
|
|
576
|
-
// class object
|
|
577
|
-
return this.parseClassObject(value, engine, resourceManager);
|
|
578
|
-
} else if (this._isRef(value)) {
|
|
579
|
-
// reference object
|
|
580
|
-
return resourceManager.getResourceByRef(value);
|
|
581
|
-
} else {
|
|
582
|
-
// basic type
|
|
583
|
-
return Promise.resolve(value);
|
|
584
|
-
}
|
|
585
|
-
} else {
|
|
586
|
-
return Promise.resolve(value);
|
|
587
|
-
}
|
|
546
|
+
return this.parsePropsAndMethods(instance, item);
|
|
588
547
|
};
|
|
589
|
-
|
|
590
|
-
if (resourceManager === void 0) resourceManager = engine.resourceManager;
|
|
591
|
-
var _this = this;
|
|
548
|
+
_proto.parsePropsAndMethods = function parsePropsAndMethods(instance, item) {
|
|
592
549
|
var promises = [];
|
|
593
550
|
if (item.methods) {
|
|
594
551
|
for(var methodName in item.methods){
|
|
595
552
|
var methodParams = item.methods[methodName];
|
|
596
553
|
for(var i = 0, count = methodParams.length; i < count; i++){
|
|
597
554
|
var params = methodParams[i];
|
|
598
|
-
var promise = this.parseMethod(instance, methodName, params
|
|
555
|
+
var promise = this.parseMethod(instance, methodName, params);
|
|
599
556
|
promises.push(promise);
|
|
600
557
|
}
|
|
601
558
|
}
|
|
602
559
|
}
|
|
603
560
|
if (item.props) {
|
|
604
|
-
var
|
|
561
|
+
var _this = this, _loop = function(key) {
|
|
605
562
|
var value = item.props[key];
|
|
606
|
-
var promise =
|
|
563
|
+
var promise = _this.parseBasicType(value).then(function(v) {
|
|
607
564
|
return instance[key] = v;
|
|
608
565
|
});
|
|
609
566
|
promises.push(promise);
|
|
@@ -611,27 +568,76 @@ var ReflectionParser = /*#__PURE__*/ function() {
|
|
|
611
568
|
for(var key in item.props)_loop(key);
|
|
612
569
|
}
|
|
613
570
|
return Promise.all(promises).then(function() {
|
|
614
|
-
var handle =
|
|
615
|
-
if (handle) return handle(instance, item
|
|
571
|
+
var handle = ReflectionParser.customParseComponentHandles[instance.constructor.name];
|
|
572
|
+
if (handle) return handle(instance, item);
|
|
616
573
|
else return instance;
|
|
617
574
|
});
|
|
618
575
|
};
|
|
619
|
-
|
|
620
|
-
if (resourceManager === void 0) resourceManager = engine.resourceManager;
|
|
576
|
+
_proto.parseMethod = function parseMethod(instance, methodName, methodParams) {
|
|
621
577
|
var _this = this;
|
|
622
578
|
return Promise.all(methodParams.map(function(param) {
|
|
623
|
-
return _this.parseBasicType(param
|
|
579
|
+
return _this.parseBasicType(param);
|
|
624
580
|
})).then(function(result) {
|
|
625
581
|
var _instance;
|
|
626
582
|
return (_instance = instance)[methodName].apply(_instance, [].concat(result));
|
|
627
583
|
});
|
|
628
584
|
};
|
|
585
|
+
_proto.parseBasicType = function parseBasicType(value) {
|
|
586
|
+
var _this = this;
|
|
587
|
+
if (Array.isArray(value)) {
|
|
588
|
+
return Promise.all(value.map(function(item) {
|
|
589
|
+
return _this.parseBasicType(item);
|
|
590
|
+
}));
|
|
591
|
+
} else if (typeof value === "object" && value != null) {
|
|
592
|
+
if (ReflectionParser._isClass(value)) {
|
|
593
|
+
// class object
|
|
594
|
+
return this.parseClassObject(value);
|
|
595
|
+
} else if (ReflectionParser._isAssetRef(value)) {
|
|
596
|
+
// reference object
|
|
597
|
+
// @ts-ignore
|
|
598
|
+
return this._context.resourceManager.getResourceByRef(value);
|
|
599
|
+
} else if (ReflectionParser._isEntityRef(value)) {
|
|
600
|
+
// entity reference
|
|
601
|
+
return Promise.resolve(this._context.entityMap.get(value.entityId));
|
|
602
|
+
} else {
|
|
603
|
+
// basic type
|
|
604
|
+
return Promise.resolve(value);
|
|
605
|
+
}
|
|
606
|
+
} else {
|
|
607
|
+
return Promise.resolve(value);
|
|
608
|
+
}
|
|
609
|
+
};
|
|
610
|
+
_proto._getEntityByConfig = function _getEntityByConfig(entityConfig) {
|
|
611
|
+
// @ts-ignore
|
|
612
|
+
var assetRefId = entityConfig.assetRefId;
|
|
613
|
+
var engine = this._context.engine;
|
|
614
|
+
if (assetRefId) {
|
|
615
|
+
return engine.resourceManager// @ts-ignore
|
|
616
|
+
.getResourceByRef({
|
|
617
|
+
refId: assetRefId,
|
|
618
|
+
key: entityConfig.key,
|
|
619
|
+
isClone: entityConfig.isClone
|
|
620
|
+
}).then(function(entity) {
|
|
621
|
+
entity.name = entityConfig.name;
|
|
622
|
+
return entity;
|
|
623
|
+
});
|
|
624
|
+
} else {
|
|
625
|
+
var entity = new Entity(engine, entityConfig.name);
|
|
626
|
+
return Promise.resolve(entity);
|
|
627
|
+
}
|
|
628
|
+
};
|
|
629
|
+
ReflectionParser.registerCustomParseComponent = function registerCustomParseComponent(componentType, handle) {
|
|
630
|
+
this.customParseComponentHandles[componentType] = handle;
|
|
631
|
+
};
|
|
629
632
|
ReflectionParser._isClass = function _isClass(value) {
|
|
630
633
|
return value["class"] != undefined;
|
|
631
634
|
};
|
|
632
|
-
ReflectionParser.
|
|
635
|
+
ReflectionParser._isAssetRef = function _isAssetRef(value) {
|
|
633
636
|
return value["refId"] != undefined;
|
|
634
637
|
};
|
|
638
|
+
ReflectionParser._isEntityRef = function _isEntityRef(value) {
|
|
639
|
+
return value["entityId"] != undefined;
|
|
640
|
+
};
|
|
635
641
|
return ReflectionParser;
|
|
636
642
|
}();
|
|
637
643
|
(function() {
|
|
@@ -899,6 +905,8 @@ var SceneParserContext = /*#__PURE__*/ function() {
|
|
|
899
905
|
this.assets = new Map();
|
|
900
906
|
this.entityConfigMap = new Map();
|
|
901
907
|
this.rootIds = [];
|
|
908
|
+
this.engine = scene.engine;
|
|
909
|
+
this.resourceManager = scene.engine.resourceManager;
|
|
902
910
|
}
|
|
903
911
|
var _proto = SceneParserContext.prototype;
|
|
904
912
|
_proto.destroy = function destroy() {
|
|
@@ -915,7 +923,7 @@ var SceneParserContext = /*#__PURE__*/ function() {
|
|
|
915
923
|
function SceneParser(context) {
|
|
916
924
|
var _this = this;
|
|
917
925
|
this.context = context;
|
|
918
|
-
this._engine =
|
|
926
|
+
this._engine = context.scene.engine;
|
|
919
927
|
this._organizeEntities = this._organizeEntities.bind(this);
|
|
920
928
|
this._parseComponents = this._parseComponents.bind(this);
|
|
921
929
|
this._clearAndResolveScene = this._clearAndResolveScene.bind(this);
|
|
@@ -923,22 +931,24 @@ var SceneParserContext = /*#__PURE__*/ function() {
|
|
|
923
931
|
_this._reject = reject;
|
|
924
932
|
_this._resolve = resolve;
|
|
925
933
|
});
|
|
934
|
+
this._reflectionParser = new ReflectionParser(context);
|
|
926
935
|
}
|
|
927
936
|
var _proto = SceneParser.prototype;
|
|
928
937
|
/** start parse the scene */ _proto.start = function start() {
|
|
929
938
|
this._parseEntities().then(this._organizeEntities).then(this._parseComponents).then(this._clearAndResolveScene).then(this._resolve).catch(this._reject);
|
|
930
939
|
};
|
|
931
940
|
_proto._parseEntities = function _parseEntities() {
|
|
941
|
+
var _this = this;
|
|
932
942
|
var entitiesConfig = this.context.originalData.entities;
|
|
933
943
|
var entityConfigMap = this.context.entityConfigMap;
|
|
934
944
|
var entitiesMap = this.context.entityMap;
|
|
935
945
|
var rootIds = this.context.rootIds;
|
|
936
|
-
|
|
946
|
+
this._engine;
|
|
937
947
|
var promises = entitiesConfig.map(function(entityConfig) {
|
|
938
948
|
entityConfigMap.set(entityConfig.id, entityConfig);
|
|
939
949
|
// record root entities
|
|
940
950
|
if (!entityConfig.parent) rootIds.push(entityConfig.id);
|
|
941
|
-
return
|
|
951
|
+
return _this._reflectionParser.parseEntity(entityConfig);
|
|
942
952
|
});
|
|
943
953
|
return Promise.all(promises).then(function(entities) {
|
|
944
954
|
for(var i = 0, l = entities.length; i < l; i++){
|
|
@@ -976,7 +986,7 @@ var SceneParserContext = /*#__PURE__*/ function() {
|
|
|
976
986
|
component = entity.getComponent(Loader.getClass(key));
|
|
977
987
|
}
|
|
978
988
|
component = component || entity.addComponent(Loader.getClass(key));
|
|
979
|
-
var promise =
|
|
989
|
+
var promise = this._reflectionParser.parsePropsAndMethods(component, componentConfig);
|
|
980
990
|
promises.push(promise);
|
|
981
991
|
}
|
|
982
992
|
}
|
|
@@ -4347,8 +4357,7 @@ var GLTFTextureParser = (_GLTFTextureParser = /*#__PURE__*/ function(GLTFParser1
|
|
|
4347
4357
|
mipmap: (_samplerInfo = samplerInfo) == null ? void 0 : _samplerInfo.mipmap
|
|
4348
4358
|
}
|
|
4349
4359
|
}).then(function(texture) {
|
|
4350
|
-
|
|
4351
|
-
(_texture = texture).name || (_texture.name = textureName || imageName || "texture_" + index);
|
|
4360
|
+
texture.name = textureName || imageName || texture.name || "texture_" + index;
|
|
4352
4361
|
useSampler && GLTFUtils.parseSampler(texture, samplerInfo);
|
|
4353
4362
|
return texture;
|
|
4354
4363
|
});
|
|
@@ -5455,6 +5464,39 @@ TextureCubeLoader = __decorate([
|
|
|
5455
5464
|
])
|
|
5456
5465
|
], TextureCubeLoader);
|
|
5457
5466
|
|
|
5467
|
+
var ProjectLoader = /*#__PURE__*/ function(Loader1) {
|
|
5468
|
+
_inherits(ProjectLoader, Loader1);
|
|
5469
|
+
function ProjectLoader() {
|
|
5470
|
+
return Loader1.apply(this, arguments);
|
|
5471
|
+
}
|
|
5472
|
+
var _proto = ProjectLoader.prototype;
|
|
5473
|
+
_proto.load = function load(item, resourceManager) {
|
|
5474
|
+
var _this = this;
|
|
5475
|
+
var engine = resourceManager.engine;
|
|
5476
|
+
return new AssetPromise(function(resolve, reject) {
|
|
5477
|
+
_this.request(item.url, {
|
|
5478
|
+
type: "json"
|
|
5479
|
+
}).then(function(data) {
|
|
5480
|
+
// @ts-ignore
|
|
5481
|
+
engine.resourceManager.initVirtualResources(data.files);
|
|
5482
|
+
return resourceManager.load({
|
|
5483
|
+
type: AssetType.Scene,
|
|
5484
|
+
url: data.scene
|
|
5485
|
+
}).then(function(scene) {
|
|
5486
|
+
engine.sceneManager.activeScene = scene;
|
|
5487
|
+
resolve();
|
|
5488
|
+
});
|
|
5489
|
+
}).catch(reject);
|
|
5490
|
+
});
|
|
5491
|
+
};
|
|
5492
|
+
return ProjectLoader;
|
|
5493
|
+
}(Loader);
|
|
5494
|
+
ProjectLoader = __decorate([
|
|
5495
|
+
resourceLoader(AssetType.Project, [
|
|
5496
|
+
"proj"
|
|
5497
|
+
], true)
|
|
5498
|
+
], ProjectLoader);
|
|
5499
|
+
|
|
5458
5500
|
var SceneLoader = /*#__PURE__*/ function(Loader1) {
|
|
5459
5501
|
_inherits(SceneLoader, Loader1);
|
|
5460
5502
|
function SceneLoader() {
|