phaser4-rex-plugins
Version:
69 lines (54 loc) • 1.51 kB
TypeScript
import FSMBase from './FSMBase';
export default FSM;
declare namespace FSM {
interface IStateConfig extends FSMBase.IStateConfig {
next?: string | ((this: FSM) => string),
enter?: (this: FSM) => void,
exit?: (this: FSM) => void,
update?: (this: FSM, time: number, delta: number) => void;
preupdate?: (this: FSM, time: number, delta: number) => void;
postupdate?: (this: FSM, time: number, delta: number) => void;
}
interface IConfig extends FSMBase.IConfig {
states?: { [name: string]: IStateConfig },
scene?: Phaser.Scene;
}
}
declare class FSM extends FSMBase {
constructor(config?: FSM.IConfig);
addState(
name: string,
state: FSM.IStateConfig
): this;
addState(state: FSM.IStateConfig): this;
addStates(
states: { [name: string]: FSM.IStateConfig },
): this;
addStates(
states: FSM.IStateConfig[]
): this;
update(
time: number,
delta: number
): void;
preupdate(
time: number,
delta: number
): void;
postupdate(
time: number,
delta: number
): void;
startUpdate(
scene?: Phaser.Scene
): this;
stopUpdate(): this;
startPreUpdate(
scene?: Phaser.Scene
): this;
stopPreUpdate(): this;
startPostUpdate(
scene?: Phaser.Scene
): this;
stopPostUpdate(): this;
}