UNPKG

excalibur

Version:

Excalibur.js is a simple JavaScript game engine with TypeScript bindings for making 2D games in HTML5 Canvas. Our mission is to make web game development as simple as possible.

61 lines (60 loc) 2.04 kB
import { Entity } from './Entity'; import { Query } from './Query'; import { Component, ComponentCtor } from './Component'; import { World } from './World'; import { TagQuery } from './TagQuery'; /** * The query manager is responsible for updating all queries when entities/components change */ export declare class QueryManager { private _world; private _queries; private _addComponentHandlers; private _removeComponentHandlers; private _componentToQueriesIndex; private _tagQueries; private _addTagHandlers; private _removeTagHandlers; private _tagToQueriesIndex; constructor(_world: World); createQuery<TKnownComponentCtors extends ComponentCtor<Component>>(requiredComponents: TKnownComponentCtors[]): Query<TKnownComponentCtors>; createTagQuery<TKnownTags extends string>(requiredTags: TKnownTags[]): TagQuery<TKnownTags>; private _createAddComponentHandler; private _createRemoveComponentHandler; private _createAddTagHandler; private _createRemoveTagHandler; /** * Scans queries and locates any that need this entity added * @param entity */ addEntity(entity: Entity): void; /** * Scans queries and locates any that need this entity removed * @param entity */ removeEntity(entity: Entity): void; /** * Updates any queries when a component is added to an entity * @param entity * @param component */ addComponent(entity: Entity, component: Component): void; /** * Updates any queries when a component is removed from an entity * @param entity * @param component */ removeComponent(entity: Entity, component: Component): void; /** * Updates any queries when a tag is added to an entity * @param entity * @param tag */ addTag(entity: Entity, tag: string): void; /** * Updates any queries when a component is removed from an entity * @param entity * @param tag */ removeTag(entity: Entity, tag: string): void; }