@woosh/meep-engine
Version:
Pure JavaScript game engine. Fully featured and production ready.
128 lines • 3.73 kB
TypeScript
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