@galacean/engine-loader 2.0.0-alpha.28 → 2.0.0-alpha.30

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@galacean/engine-loader",
3
- "version": "2.0.0-alpha.28",
3
+ "version": "2.0.0-alpha.30",
4
4
  "publishConfig": {
5
5
  "access": "public",
6
6
  "registry": "https://registry.npmjs.org"
@@ -19,9 +19,9 @@
19
19
  "libs/**/*"
20
20
  ],
21
21
  "dependencies": {
22
- "@galacean/engine-core": "2.0.0-alpha.28",
23
- "@galacean/engine-rhi-webgl": "2.0.0-alpha.28",
24
- "@galacean/engine-math": "2.0.0-alpha.28"
22
+ "@galacean/engine-core": "2.0.0-alpha.30",
23
+ "@galacean/engine-math": "2.0.0-alpha.30",
24
+ "@galacean/engine-rhi-webgl": "2.0.0-alpha.30"
25
25
  },
26
26
  "scripts": {
27
27
  "b:types": "tsc"
@@ -1 +1,8 @@
1
- export {};
1
+ import { ResourceManager, Scene } from "@galacean/engine-core";
2
+ import type { RefItem } from "./schema/CommonSchema";
3
+ import { type SceneFile } from "./schema/SceneSchema";
4
+ /**
5
+ * Apply scene-level data (ambient, background, shadow, fog, AO) to a Scene.
6
+ * @internal
7
+ */
8
+ export declare function applySceneData(scene: Scene, sceneData: SceneFile["scene"], resourceManager: ResourceManager, refs: RefItem[]): Promise<void>;
@@ -1,4 +1,5 @@
1
1
  import type { IMaterialNormalTextureInfo, ITextureInfo } from "../GLTFSchema";
2
+ import type { RefItem } from "../../schema/CommonSchema";
2
3
  /**
3
4
  * Interfaces from the KHR_lights_punctual extension
4
5
  */
@@ -133,9 +134,7 @@ export interface IEXTMeshoptCompressionSchema {
133
134
  count: number;
134
135
  filter?: "NONE" | "OCTAHEDRAL" | "QUATERNION" | "EXPONENTIAL";
135
136
  }
136
- export interface IGalaceanMaterialRemap {
137
- url: string;
138
- key?: string;
137
+ export interface IGalaceanMaterialRemap extends RefItem {
139
138
  isClone?: boolean;
140
139
  }
141
140
  export interface IGalaceanAnimation {
package/types/index.d.ts CHANGED
@@ -25,7 +25,7 @@ import "./PhysicsMaterialLoader";
25
25
  import "./RenderTargetLoader";
26
26
  export { GLTFLoader } from "./GLTFLoader";
27
27
  export type { GLTFParams } from "./GLTFLoader";
28
- export * from "./SceneLoader";
28
+ import "./SceneLoader";
29
29
  export type { TextureParams } from "./TextureLoader";
30
30
  export { parseSingleKTX } from "./compressed-texture";
31
31
  export * from "./gltf";
@@ -1,12 +1,15 @@
1
1
  import { Engine, Entity } from "@galacean/engine-core";
2
- import { IEntity, IHierarchyFile, ParserContext } from "../resource-deserialize";
2
+ import type { HierarchyFile } from "../schema/HierarchySchema";
3
+ import type { PrefabFile } from "../schema/PrefabSchema";
3
4
  import { HierarchyParser } from "../resource-deserialize/resources/parser/HierarchyParser";
5
+ import { ParserContext } from "../resource-deserialize/resources/parser/ParserContext";
4
6
  import { PrefabResource } from "./PrefabResource";
5
- export declare class PrefabParser extends HierarchyParser<PrefabResource, ParserContext<IHierarchyFile, Entity>> {
7
+ export declare class PrefabParser extends HierarchyParser<PrefabResource, ParserContext> {
6
8
  readonly prefabResource: PrefabResource;
7
- static parse(engine: Engine, url: string, data: IHierarchyFile): Promise<PrefabResource>;
8
- constructor(data: IHierarchyFile, context: ParserContext<IHierarchyFile, Entity>, prefabResource: PrefabResource);
9
- protected _applyEntityData(entity: Entity, entityConfig?: IEntity): Entity;
10
- protected _handleRootEntity(id: string): void;
9
+ static parse(engine: Engine, url: string, data: PrefabFile): Promise<PrefabResource>;
10
+ constructor(data: HierarchyFile, context: ParserContext, prefabResource: PrefabResource);
11
+ protected _onEntityCreated(entity: Entity): void;
12
+ protected _getRootIndices(): number[];
13
+ protected _handleRootEntity(index: number): void;
11
14
  protected _clearAndResolve(): PrefabResource;
12
15
  }
@@ -15,7 +15,7 @@ export declare function decode<T>(arrayBuffer: ArrayBuffer, engine: Engine, ...a
15
15
  export * from "./resources/parser/HierarchyParser";
16
16
  export * from "./resources/parser/ParserContext";
17
17
  export * from "./resources/scene/SceneParser";
18
- export * from "./resources/schema";
18
+ export * from "../schema";
19
19
  export * from "./utils/BufferReader";
20
20
  export * from "./utils/Decorator";
21
21
  export * from "./utils/FileHeader";
@@ -1,43 +1,38 @@
1
1
  import { Engine, Entity, Scene } from "@galacean/engine-core";
2
2
  import { PrefabResource } from "../../../prefab/PrefabResource";
3
- import type { IEntity, IHierarchyFile } from "../schema";
3
+ import type { HierarchyFile } from "../../../schema/HierarchySchema";
4
4
  import { ParserContext } from "./ParserContext";
5
5
  import { ReflectionParser } from "./ReflectionParser";
6
6
  /** @Internal */
7
- export declare abstract class HierarchyParser<T extends Scene | PrefabResource, V extends ParserContext<IHierarchyFile, T>> {
8
- readonly data: IHierarchyFile;
7
+ export declare abstract class HierarchyParser<T extends Scene | PrefabResource, V extends ParserContext> {
8
+ readonly data: HierarchyFile;
9
9
  readonly context: V;
10
- /**
11
- * The promise of parsed object.
12
- */
13
10
  readonly promise: Promise<T>;
14
11
  protected _resolve: (item: T) => void;
15
12
  protected _reject: (reason: any) => void;
16
13
  protected _engine: Engine;
17
14
  protected _reflectionParser: ReflectionParser;
18
- private _prefabContextMap;
19
- private _prefabPromiseMap;
20
- constructor(data: IHierarchyFile, context: V);
21
- /** start parse the scene or prefab or others */
15
+ constructor(data: HierarchyFile, context: V);
22
16
  start(): void;
23
- protected _applyEntityData(entity: Entity, entityConfig?: IEntity): Entity;
24
- protected abstract _handleRootEntity(id: string): void;
17
+ /** Root entity indices for this hierarchy (scene.entities or [prefab.root]). */
18
+ protected abstract _getRootIndices(): number[];
19
+ protected abstract _handleRootEntity(index: number): void;
25
20
  protected abstract _clearAndResolve(): Scene | PrefabResource;
21
+ protected _onEntityCreated(_entity: Entity): void;
26
22
  private _parseEntities;
27
- private _parseComponents;
28
- private _parsePrefabModification;
29
- private _parseAddedComponents;
30
- private _parsePrefabRemovedEntities;
31
- private _parsePrefabRemovedComponents;
32
23
  private _organizeEntities;
33
- private _getEntityByConfig;
34
- private _parseEntity;
35
- private _parsePrefab;
36
- private _parseStrippedEntity;
37
- private _parseChildren;
38
- private _addComponents;
39
- private _generateInstanceContext;
40
- private _parseComponentsPropsAndMethods;
41
- private _addComponentPlugin;
42
- private _addEntityPlugin;
24
+ private _parseComponents;
25
+ private _parseComponentsPropsAndCalls;
26
+ private _parsePrefabOverrides;
27
+ private _applyOverrides;
28
+ private _loadPrefabInstance;
29
+ /** Resolve an entity inside a prefab instance by walking the child-index path from root */
30
+ private static _resolveEntity;
31
+ /** Resolve a component on an entity by type name + per-type index */
32
+ private static _resolveComponent;
33
+ /** Resolve component class from config and add to entity. Throws if class is not registered. */
34
+ private static _addComponentFromConfig;
35
+ private static _isPrefabInstanceEntity;
36
+ /** Apply entity-level props (name, isActive, layer, transform) to an entity. */
37
+ private static _applyEntityProps;
43
38
  }
@@ -1,5 +1,5 @@
1
- import { AssetPromise, Component, Engine, EngineObject, Entity, ReferResource, ResourceManager, Scene } from "@galacean/engine-core";
2
- import type { IEntity, IHierarchyFile } from "../schema";
1
+ import { AssetPromise, Component, Engine, Entity, ReferResource, ResourceManager, Scene } from "@galacean/engine-core";
2
+ import type { ComponentSchema } from "../../../schema/HierarchySchema";
3
3
  export declare enum ParserType {
4
4
  Prefab = 0,
5
5
  Scene = 1
@@ -7,18 +7,18 @@ export declare enum ParserType {
7
7
  /**
8
8
  * @internal
9
9
  */
10
- export declare class ParserContext<T extends IHierarchyFile, I extends EngineObject> {
10
+ export declare class ParserContext {
11
11
  readonly engine: Engine;
12
12
  readonly type: ParserType;
13
13
  readonly resource: ReferResource | Scene;
14
- entityMap: Map<string, Entity>;
15
- entityConfigMap: Map<string, IEntity>;
16
- components: Map<string, Component>;
17
- componentConfigMap: Map<string, any>;
18
- rootIds: string[];
19
- strippedIds: string[];
14
+ /** Runtime Entity instances, indexed by the flat entities[] position. */
15
+ entityInstances: Entity[];
16
+ /** Components waiting for props/calls application (Stage 4). */
17
+ pendingComponents: Array<{
18
+ instance: Component;
19
+ config: ComponentSchema;
20
+ }>;
20
21
  readonly resourceManager: ResourceManager;
21
- private _tasks;
22
22
  private _loaded;
23
23
  private _total;
24
24
  constructor(engine: Engine, type: ParserType, resource: ReferResource | Scene);
@@ -26,5 +26,5 @@ export declare class ParserContext<T extends IHierarchyFile, I extends EngineObj
26
26
  /** @internal */
27
27
  _setTaskCompleteProgress: (loaded: number, total: number) => void;
28
28
  /** @internal */
29
- _addDependentAsset(url: string, promise: AssetPromise<any>): void;
29
+ _addDependentAsset(promise: AssetPromise<any>): void;
30
30
  }
@@ -1,22 +1,41 @@
1
- import { EngineObject, Entity, Signal } from "@galacean/engine-core";
2
- import type { IBasicType, IClass, IEntity, IHierarchyFile, IMethodParams, ISignalRef } from "../schema";
1
+ import { Component } from "@galacean/engine-core";
2
+ import type { CallSpec, MutationBlock, RefItem } from "../../../schema/CommonSchema";
3
3
  import { ParserContext } from "./ParserContext";
4
4
  export declare class ReflectionParser {
5
5
  private readonly _context;
6
- constructor(_context: ParserContext<IHierarchyFile, EngineObject>);
7
- parseEntity(entityConfig: IEntity): Promise<Entity>;
8
- parseClassObject(item: IClass): Promise<any>;
9
- parsePropsAndMethods(instance: any, item: Omit<IClass, "class">): Promise<any>;
10
- parseMethod(instance: any, methodName: string, methodParams: IMethodParams): Promise<any>;
11
- parseSignal(signalRef: ISignalRef): Promise<Signal>;
12
- parseBasicType(value: IBasicType, originValue?: any): Promise<any>;
13
- private _getEntityByConfig;
14
- private _resolveEntityByPath;
15
- private static _isClass;
16
- private static _isClassType;
17
- private static _isAssetRef;
18
- private static _isEntityRef;
19
- private static _isComponentRef;
20
- private static _isSignalRef;
21
- private static _isMethodObject;
6
+ private readonly _refs;
7
+ /** @internal shared with HierarchyParser; each use must length=0 -> getComponents -> read -> length=0 synchronously. */
8
+ static _componentBuffer: Component[];
9
+ constructor(_context: ParserContext, _refs: RefItem[]);
10
+ /**
11
+ * Apply v2 props to a component/object instance.
12
+ * Each prop value is resolved recursively (handling $ref, $type, $entity, $component, $signal).
13
+ */
14
+ parseProps(instance: any, props?: Record<string, unknown>): Promise<any>;
15
+ /**
16
+ * Execute calls sequentially on a target instance.
17
+ * Call args are resolved with the same v2 value rules as props.
18
+ */
19
+ parseCalls(instance: any, calls?: CallSpec[]): Promise<any>;
20
+ /**
21
+ * Apply props and calls from the same mutation block without imposing ordering between them.
22
+ */
23
+ parseMutationBlock(target: any, block?: MutationBlock): Promise<any>;
24
+ /**
25
+ * Resolve a v2 value with $ prefix detection.
26
+ *
27
+ * Priority:
28
+ * 1. null/undefined/primitive → passthrough
29
+ * 2. Array → recurse each element
30
+ * 3. { $ref } → asset reference
31
+ * 4. { $type } → polymorphic type construct
32
+ * 5. { $entity } → entity reference by path (flat index + optional children descent)
33
+ * 6. { $component } → component reference
34
+ * 7. { $signal } → signal binding
35
+ * 8. plain object → recurse values (modify originValue in place if exists)
36
+ */
37
+ private _resolveValue;
38
+ private _resolveSignal;
39
+ private _resolveComponent;
40
+ private _resolveEntityRef;
22
41
  }
@@ -1,17 +1,16 @@
1
1
  import { Scene } from "@galacean/engine-core";
2
+ import type { SceneFile } from "../../../schema/SceneSchema";
2
3
  import { HierarchyParser } from "../parser/HierarchyParser";
3
4
  import { ParserContext } from "../parser/ParserContext";
4
- import { type IScene } from "../schema";
5
5
  /** @Internal */
6
- export declare class SceneParser extends HierarchyParser<Scene, ParserContext<IScene, Scene>> {
6
+ export declare class SceneParser extends HierarchyParser<Scene, ParserContext> {
7
7
  readonly scene: Scene;
8
- constructor(data: IScene, context: ParserContext<IScene, Scene>, scene: Scene);
8
+ constructor(data: SceneFile, context: ParserContext, scene: Scene);
9
9
  /**
10
10
  * @internal
11
11
  */
12
- _collectDependentAssets(data: IScene): void;
13
- protected _handleRootEntity(id: string): void;
12
+ _collectDependentAssets(data: SceneFile): void;
13
+ protected _getRootIndices(): number[];
14
+ protected _handleRootEntity(index: number): void;
14
15
  protected _clearAndResolve(): Scene;
15
- private _parseDependentAssets;
16
- private _searchDependentAssets;
17
16
  }
@@ -0,0 +1,21 @@
1
+ export interface IVector3 {
2
+ x: number;
3
+ y: number;
4
+ z: number;
5
+ }
6
+ export interface IVector2 {
7
+ x: number;
8
+ y: number;
9
+ }
10
+ export interface IVector4 {
11
+ x: number;
12
+ y: number;
13
+ z: number;
14
+ w: number;
15
+ }
16
+ export interface IColor {
17
+ r: number;
18
+ g: number;
19
+ b: number;
20
+ a: number;
21
+ }
@@ -0,0 +1,29 @@
1
+ export type Vec3Tuple = [number, number, number];
2
+ export type Vec4Tuple = [number, number, number, number];
3
+ export interface RefItem {
4
+ url: string;
5
+ key?: string;
6
+ }
7
+ /** path[0] = flat index into top-level entities[]; subsequent indices descend via children. */
8
+ export type EntityRef = number[];
9
+ export interface ComponentRef {
10
+ entity: EntityRef;
11
+ type: string;
12
+ index: number;
13
+ }
14
+ export interface SignalListener {
15
+ target: {
16
+ $component: ComponentRef;
17
+ };
18
+ methodName: string;
19
+ args?: unknown[];
20
+ }
21
+ export interface CallSpec {
22
+ method: string;
23
+ args?: unknown[];
24
+ result?: MutationBlock;
25
+ }
26
+ export interface MutationBlock {
27
+ props?: Record<string, unknown>;
28
+ calls?: CallSpec[];
29
+ }
@@ -0,0 +1,71 @@
1
+ import type { MutationBlock, RefItem, Vec3Tuple } from "./CommonSchema";
2
+ export interface ComponentSchema extends MutationBlock {
3
+ type: string;
4
+ script?: number;
5
+ }
6
+ export interface EntityOverrideProps {
7
+ name?: string;
8
+ isActive?: boolean;
9
+ layer?: number;
10
+ position?: Vec3Tuple;
11
+ rotation?: Vec3Tuple;
12
+ scale?: Vec3Tuple;
13
+ }
14
+ export interface AddedEntityOverride {
15
+ /** Parent path from prefab instance root via children indices. `[]` = instance root. */
16
+ parent: number[];
17
+ /** Index into the top-level entities[] array. */
18
+ entity: number;
19
+ }
20
+ export interface AddedComponentOverride {
21
+ /** Target entity path from prefab instance root via children indices. `[]` = instance root. */
22
+ target: number[];
23
+ /** Index into the top-level components[] array. */
24
+ component: number;
25
+ }
26
+ export interface EntityPropOverride extends EntityOverrideProps {
27
+ /** Path from prefab instance root via children indices. `[]` = instance root. */
28
+ path: number[];
29
+ }
30
+ export interface ComponentSelector {
31
+ type: string;
32
+ index: number;
33
+ }
34
+ export interface ComponentOverride extends MutationBlock {
35
+ /** Path from prefab instance root via children indices. `[]` = instance root. */
36
+ path: number[];
37
+ selector: ComponentSelector;
38
+ }
39
+ export interface RemovedComponentOverride {
40
+ /** Path from prefab instance root via children indices. `[]` = instance root. */
41
+ path: number[];
42
+ selectors: ComponentSelector[];
43
+ }
44
+ export interface InstanceOverrides {
45
+ entityProps?: EntityPropOverride[];
46
+ componentProps?: ComponentOverride[];
47
+ /** Each element is a path from prefab instance root via children indices. */
48
+ removedEntities?: number[][];
49
+ removedComponents?: RemovedComponentOverride[];
50
+ addedEntities?: AddedEntityOverride[];
51
+ addedComponents?: AddedComponentOverride[];
52
+ }
53
+ export interface InstanceSchema {
54
+ asset: number;
55
+ overrides?: InstanceOverrides;
56
+ }
57
+ export interface NormalEntitySchema extends EntityOverrideProps {
58
+ children?: number[];
59
+ components?: number[];
60
+ }
61
+ export interface PrefabInstanceEntitySchema {
62
+ instance: InstanceSchema;
63
+ }
64
+ export type EntitySchema = NormalEntitySchema | PrefabInstanceEntitySchema;
65
+ /** Common base for v2 scene and prefab files. */
66
+ export interface HierarchyFile {
67
+ version: "2.0";
68
+ refs: RefItem[];
69
+ entities: EntitySchema[];
70
+ components: ComponentSchema[];
71
+ }
@@ -0,0 +1,70 @@
1
+ import { BlendFactor, BlendOperation, ColorWriteMask, CompareFunction, CullMode, RenderQueueType, StencilOperation } from "@galacean/engine-core";
2
+ import type { RefItem } from "./CommonSchema";
3
+ import type { IColor, IVector2, IVector3 } from "./BasicSchema";
4
+ export interface IRenderState {
5
+ blendState: {
6
+ targetBlendState: {
7
+ enabled: boolean;
8
+ colorBlendOperation: BlendOperation;
9
+ alphaBlendOperation: BlendOperation;
10
+ sourceColorBlendFactor: BlendFactor;
11
+ sourceAlphaBlendFactor: BlendFactor;
12
+ destinationColorBlendFactor: BlendFactor;
13
+ destinationAlphaBlendFactor: BlendFactor;
14
+ colorWriteMask: ColorWriteMask;
15
+ };
16
+ blendColor: IColor;
17
+ alphaToCoverage: boolean;
18
+ };
19
+ depthState: {
20
+ enabled: boolean;
21
+ writeEnabled: boolean;
22
+ compareFunction: CompareFunction;
23
+ };
24
+ stencilState: {
25
+ enabled: boolean;
26
+ referenceValue: number;
27
+ mask: number;
28
+ writeMask: number;
29
+ compareFunctionFront: CompareFunction;
30
+ compareFunctionBack: CompareFunction;
31
+ passOperationFront: StencilOperation;
32
+ passOperationBack: StencilOperation;
33
+ failOperationFront: StencilOperation;
34
+ failOperationBack: StencilOperation;
35
+ zFailOperationFront: StencilOperation;
36
+ zFailOperationBack: StencilOperation;
37
+ };
38
+ rasterState: {
39
+ cullMode: CullMode;
40
+ depthBias: number;
41
+ slopeScaledDepthBias: number;
42
+ };
43
+ renderQueueType: RenderQueueType;
44
+ }
45
+ export interface IMaterialSchema {
46
+ name: string;
47
+ shader: string;
48
+ shaderData: {
49
+ [key: string]: {
50
+ type: MaterialLoaderType;
51
+ value: IVector3 | IVector2 | IColor | number | RefItem;
52
+ };
53
+ };
54
+ macros: Array<{
55
+ name: string;
56
+ value?: string;
57
+ }>;
58
+ renderState: IRenderState;
59
+ shaderRef: RefItem;
60
+ }
61
+ export declare enum MaterialLoaderType {
62
+ Vector2 = "Vector2",
63
+ Vector3 = "Vector3",
64
+ Vector4 = "Vector4",
65
+ Color = "Color",
66
+ Float = "Float",
67
+ Texture = "Texture",
68
+ Boolean = "Boolean",
69
+ Integer = "Integer"
70
+ }
@@ -0,0 +1,4 @@
1
+ import type { HierarchyFile } from "./HierarchySchema";
2
+ export interface PrefabFile extends HierarchyFile {
3
+ root: number;
4
+ }
@@ -0,0 +1,59 @@
1
+ import { BackgroundMode, BackgroundTextureFillMode, DiffuseMode, FogMode, ShadowCascadesMode, ShadowResolution } from "@galacean/engine-core";
2
+ import type { HierarchyFile } from "./HierarchySchema";
3
+ import type { Vec3Tuple, Vec4Tuple } from "./CommonSchema";
4
+ export declare enum SpecularMode {
5
+ Sky = "Sky",
6
+ Custom = "Custom"
7
+ }
8
+ export interface SceneFile extends HierarchyFile {
9
+ scene: {
10
+ name?: string;
11
+ entities: number[];
12
+ background: {
13
+ mode: BackgroundMode;
14
+ color: Vec4Tuple;
15
+ texture?: number;
16
+ textureFillMode?: BackgroundTextureFillMode;
17
+ skyMesh?: number;
18
+ skyMaterial?: number;
19
+ };
20
+ ambient?: {
21
+ diffuseMode: DiffuseMode;
22
+ ambientLight?: number;
23
+ customAmbientLight?: number;
24
+ diffuseSolidColor?: Vec4Tuple;
25
+ diffuseIntensity: number;
26
+ specularIntensity: number;
27
+ specularMode: SpecularMode;
28
+ };
29
+ shadow?: {
30
+ castShadows?: boolean;
31
+ enableTransparentShadow?: boolean;
32
+ shadowResolution?: ShadowResolution;
33
+ shadowDistance?: number;
34
+ shadowCascades?: ShadowCascadesMode;
35
+ shadowTwoCascadeSplits?: number;
36
+ shadowFourCascadeSplits?: Vec3Tuple;
37
+ shadowFadeBorder?: number;
38
+ };
39
+ fog?: {
40
+ fogMode?: FogMode;
41
+ fogStart?: number;
42
+ fogEnd?: number;
43
+ fogDensity?: number;
44
+ fogColor?: Vec4Tuple;
45
+ };
46
+ ambientOcclusion?: {
47
+ enabledAmbientOcclusion?: boolean;
48
+ quality?: number;
49
+ intensity?: number;
50
+ radius?: number;
51
+ bias?: number;
52
+ power?: number;
53
+ bilateralThreshold?: number;
54
+ minHorizonAngle?: number;
55
+ };
56
+ /** Not supported in scene yet; presence triggers a warning. */
57
+ postProcess?: unknown;
58
+ };
59
+ }
@@ -1,4 +1,7 @@
1
+ export * from "./CommonSchema";
2
+ export * from "./HierarchySchema";
3
+ export * from "./SceneSchema";
4
+ export * from "./PrefabSchema";
1
5
  export * from "./BasicSchema";
2
6
  export * from "./MaterialSchema";
3
7
  export * from "./ProjectSchema";
4
- export * from "./SceneSchema";
@@ -0,0 +1,2 @@
1
+ import type { RefItem } from "./CommonSchema";
2
+ export declare function resolveRefItem(refs: RefItem[], index: number, owner: string, label: string): RefItem;
@@ -1,105 +0,0 @@
1
- import { Layer } from "@galacean/engine-core";
2
- export interface IVector3 {
3
- x: number;
4
- y: number;
5
- z: number;
6
- }
7
- export interface IVector2 {
8
- x: number;
9
- y: number;
10
- }
11
- export interface IVector4 {
12
- x: number;
13
- y: number;
14
- z: number;
15
- w: number;
16
- }
17
- export interface IColor {
18
- r: number;
19
- g: number;
20
- b: number;
21
- a: number;
22
- }
23
- export interface IHierarchyFile {
24
- entities: Array<IEntity>;
25
- }
26
- export type IMethod = {
27
- params: Array<IBasicType>;
28
- result?: IInstance;
29
- };
30
- export type IMethodParams = Array<IBasicType> | IMethod;
31
- export interface IBasicEntity {
32
- name?: string;
33
- id?: string;
34
- transform?: IComponent;
35
- components?: Array<IComponent>;
36
- isActive?: boolean;
37
- position?: IVector3;
38
- rotation?: IVector3;
39
- scale?: IVector3;
40
- children?: Array<string>;
41
- parent?: string;
42
- layer?: Layer;
43
- }
44
- export type IEntity = IBasicEntity | IRefEntity | IStrippedEntity;
45
- export interface IRefEntity extends IBasicEntity {
46
- assetUrl: string;
47
- key?: string;
48
- isClone?: boolean;
49
- modifications: (IInstance & {
50
- target: IPrefabModifyTarget;
51
- })[];
52
- removedEntities: IPrefabModifyTarget[];
53
- removedComponents: IPrefabModifyTarget[];
54
- }
55
- export interface IPrefabModifyTarget {
56
- entityId?: string;
57
- componentId?: string;
58
- }
59
- export interface IStrippedEntity extends IBasicEntity {
60
- strippedId: string;
61
- prefabInstanceId: string;
62
- prefabSource: {
63
- assetId: string;
64
- entityId: string;
65
- };
66
- }
67
- export type IComponent = {
68
- id: string;
69
- url?: string;
70
- } & IClass;
71
- export type IClass = {
72
- class: string;
73
- constructParams?: Array<IBasicType>;
74
- } & IInstance;
75
- export interface IInstance {
76
- methods?: {
77
- [methodName: string]: Array<IMethodParams>;
78
- };
79
- props?: {
80
- [key: string]: IBasicType | IMethodParams;
81
- };
82
- }
83
- export type IClassType = {
84
- classType: string;
85
- };
86
- export type IBasicType = string | number | boolean | null | undefined | IAssetRef | IClass | IClassType | IMethodParams | IEntityRef | IComponentRef | ISignalRef;
87
- export type IAssetRef = {
88
- key?: string;
89
- url: string;
90
- };
91
- export type IEntityRef = {
92
- entityPath: number[];
93
- };
94
- export type IComponentRef = {
95
- entityPath: number[];
96
- componentType: string;
97
- componentIndex: number;
98
- };
99
- export type ISignalRef = {
100
- listeners: Array<{
101
- target: IComponentRef;
102
- methodName: string;
103
- arguments?: Array<IBasicType>;
104
- }>;
105
- };