@rjfwhite/random-lib
Version:
Core engine for MML
54 lines • 1.87 kB
TypeScript
import { Behavior, BehaviorConstructor } from "./behaviors/types";
export declare class WorldMaker {
private behaviorClasses;
private activeBehaviors;
private elementParentMap;
private observer;
private lastTime;
private tickIntervalId;
private isRunning;
private rootElement;
private stats;
private statsElement;
constructor();
registerBehavior(behaviorClass: BehaviorConstructor): void;
getBehavior<T extends Behavior>(element: Element, behaviorClass: new (element: Element, world: WorldMaker) => T): T | null;
hasBehavior(element: Element, behaviorClass: BehaviorConstructor): boolean;
getAllBehaviors(element: Element): Behavior[];
getElementsWithBehavior(behaviorClass: BehaviorConstructor): Element[];
getRootElement(): Element | null;
private initStatsDisplay;
private updateStatsDisplay;
getStats(): {
tickTime: number;
fps: number;
elementCount: number;
behaviorCount: number;
behaviorsTicked: number;
systemCount: number;
systemsTicked: number;
msPerBehaviorTick: number;
msPerSystemTick: number;
lastStatsUpdate: number;
frameCount: number;
totalTickTime: number;
};
forceCleanupDisconnectedElements(): number;
getActiveBehaviorCount(): number;
getDisconnectedElementCount(): number;
private cleanupDisconnectedElements;
private elementMatchesRules;
private elementMatchesSelector;
startObserving(root: Element): void;
stopObserving(): void;
private startTickLoop;
private stopTickLoop;
private handleMutations;
private checkElementForBehaviors;
private attachBehavior;
private detachBehavior;
private updateBehaviorAttribute;
private removeElementBehaviors;
private tick;
}
//# sourceMappingURL=WorldMaker.d.ts.map