UNPKG

@woosh/meep-engine

Version:

Pure JavaScript game engine. Fully featured and production ready.

128 lines 3.73 kB
export class DynamicActorSystem extends AbstractContextSystem<any> { /** * * @param {Engine} engine */ constructor(engine: Engine); dependencies: (typeof DynamicActor)[]; components_used: ResourceAccessSpecification<typeof Blackboard>[]; /** * * @type {DynamicRuleDescriptionTable} */ database: DynamicRuleDescriptionTable; /** * Scope used for dispatching actions * @type {DataScope} */ scope: DataScope; /** * When precisely each rule was last used * @type {HashMap<DynamicRuleDescription, number>} * @private */ private __global_last_used_times; /** * Time when a group with an ID will be cooled down * @type {Map<string, number>} * @private */ private __global_cooldown_ready; /** * * @type {MultiPredicateEvaluator} */ evaluator: MultiPredicateEvaluator; /** * * @type {number} * @private */ private __current_time; /** * Print debug output into console * @type {boolean} * @private */ private __debug; /** * * @type {Engine} */ engine: Engine; /** * * @return {number} */ getCurrentTime(): number; /** * * @param {number} entity * @param {DynamicRuleDescription} rule * @param {*} context */ attemptRuleExecution(entity: number, rule: DynamicRuleDescription, context: any): boolean; /** * * @param {number} entity */ terminateActiveExecution(entity: number): void; /** * * @param {number} entity * @param {DynamicRuleDescription} rule * @param {*} context */ executeRule(entity: number, rule: DynamicRuleDescription, context: any): void; /** * * @param {number} entity * @param {DataScope} scope */ populateEntityScope(entity: number, scope: DataScope): void; /** * * @param {Object} context * @return {DynamicRuleDescription|undefined} */ matchRule(context: any): DynamicRuleDescription | undefined; /** * Given a context, returns N actors that match that context best, filter is used to restrict search and reject certain actors entirely * Useful for picking an actor for a response action * * @param {Object} context * @param {function(entity:number,dataset:EntityComponentDataset):} [filter] * @param {*} [filterContext] * @param {number} [count] * @returns {{entity:number,rule:DynamicRuleDescription, scope: DataScope}[]} */ requestBestActors(context: any, filter?: typeof returnTrue, filterContext?: any, count?: number): { entity: number; rule: DynamicRuleDescription; scope: DataScope; }[]; /** * * @param {number} entity * @param {string} event * @param {Object} context * @returns {DynamicRuleDescription|undefined} */ match(entity: number, event: string, context: any): DynamicRuleDescription | undefined; startup(entityManager: any): Promise<void>; /** * * @param {DynamicActor} actor * @param {number} entity * @private */ private __update_visitDynamicActor; update(timeDelta: any): void; } import { AbstractContextSystem } from "../system/AbstractContextSystem.js"; import { DynamicActor } from "./DynamicActor.js"; import { Blackboard } from "../../intelligence/blackboard/Blackboard.js"; import { ResourceAccessSpecification } from "../../../core/model/ResourceAccessSpecification.js"; import { DataScope } from "./DataScope.js"; import { returnTrue } from "../../../core/function/returnTrue.js"; //# sourceMappingURL=DynamicActorSystem.d.ts.map