UNPKG

@woosh/meep-engine

Version:

Pure JavaScript game engine. Fully featured and production ready.

46 lines (25 loc) 1.71 kB
interface Type<T> extends Function { new(...args: any[]): T; } export class EntityComponentDataset { public hasComponent<T>(entity: number, component: Type<T>): boolean public getComponent<T>(entity: number, component: Type<T>): T | undefined public getComponentSafe<T>(entity: number, component: Type<T>): T public addComponentToEntity<T>(entityIndex: number, componentInstance: T): void public removeComponentFromEntity<T>(entityIndex: number, klass: Type<T>): void public setComponentTypeMap(types: any[]): void; public registerComponentType<T>(componentType: Type<T>): boolean public registerManyComponentTypes(componentTypes: Type<any>[]): boolean public createEntity(): number public createEntitySpecific(entityId: number): void public removeEntity(entityIndex: number): boolean public removeEntities(entityIndices: number[]): void public entityExists(entityIndex: number): boolean public traverseEntities(classes: any[], visitor: (...params: any) => boolean, thisArg?: any): void public traverseComponents<T>(klass: Type<T>, visitor: (component: T, entity: number) => boolean, thisArg?: any): void public addEntityEventListener<T>(entity: number, eventName: string, listener: (event: T, entity?: number) => any, thisArg?: any) public removeEntityEventListener<T>(entity: number, eventName: string, listener: (event: T, entity?: number) => any, thisArg?: any); public sendEvent<T>(entity: number, name: string, event?: T); public getComponentClassByName<T>(name: string): Type<T>; getAnyComponent<T>(type: Type<T>): { entity: number, component: T | null } }