@dcl/ecs
Version:
Decentraland ECS
35 lines (34 loc) • 909 B
TypeScript
import { Entity } from '../engine/entity';
import { CompositeDefinition } from './proto/gen/composite.gen';
/**
* @public
*/
export type CompositeResource = {
src: string;
composite: CompositeDefinition;
};
/**
* @param src - the source path of the composite
* @public
*/
export type CompositeProvider = {
getCompositeOrNull(src: string): CompositeResource | null;
};
/** @public */
export declare enum EntityMappingMode {
EMM_NONE = 0,
EMM_NEXT_AVAILABLE = 1,
EMM_DIRECT_MAPPING = 2
}
/** @public */
export type InstanceCompositeOptions = {
entityMapping?: {
type: EntityMappingMode.EMM_NEXT_AVAILABLE;
getNextAvailableEntity: () => Entity | null;
} | {
type: EntityMappingMode.EMM_DIRECT_MAPPING;
getCompositeEntity: (compositeEntity: Entity | number) => Entity;
};
rootEntity?: Entity;
alreadyRequestedSrc?: Set<string>;
};