@dcl-sdk/utils
Version:
A collection of helpers to make it easier to build a Decentraland scene using the SDK 7.
51 lines (50 loc) • 1.64 kB
TypeScript
import { IEngine } from '@dcl/sdk/ecs';
export declare namespace actions {
class SequenceRunner {
private beginSequenceNode;
private currentSequenceNode;
private engine;
private systemFn;
private running;
private started;
private onFinishCallback?;
constructor(targetEngine: IEngine, sequenceBuilt?: SequenceBuilder, onFinishCallback?: () => void);
startSequence(sequenceBuilt: SequenceBuilder): void;
destroy(): void;
setOnFinishCallback(onFinishCallback: () => void): void;
isRunning(): boolean;
stop(): void;
resume(): void;
reset(): void;
getRunningAction(): IAction | null;
private update;
}
interface IAction {
onStart(): void;
update(dt: number): void;
onFinish(): void;
hasFinished: boolean;
}
class SequenceBuilder {
private currentSequenceNode;
beginSequenceNode: SequenceNode | null;
private whileNodeStack;
then(action: IAction): SequenceBuilder;
if(condition: () => boolean): SequenceBuilder;
else(): SequenceBuilder;
endIf(): SequenceBuilder;
while(condition: () => boolean): SequenceBuilder;
endWhile(): SequenceBuilder;
breakWhile(): SequenceBuilder;
}
class SequenceNode {
action: IAction | null;
next: SequenceNode | null;
then(next: SequenceNode): SequenceNode;
onStart(): void;
update(dt: number): void;
onFinish(): void;
hasFinish(): boolean;
getSequence(): SequenceNode;
}
}