27 lines
867 B
TypeScript
27 lines
867 B
TypeScript
import { StateMachine } from "../machine.ts";
|
|
import { Track } from "../../track.ts";
|
|
import { EditTrainState } from "./EditTrainState.ts";
|
|
import { EditTrackState } from "./EditTrackState.ts";
|
|
import { PausedState } from "./PausedState.ts";
|
|
import { RunningState } from "./RunningState.ts";
|
|
import { LoadState } from "./LoadState.ts";
|
|
|
|
export enum States {
|
|
LOAD,
|
|
RUNNING,
|
|
PAUSED,
|
|
EDIT_TRACK,
|
|
EDIT_TRAIN,
|
|
}
|
|
|
|
export function bootstrapGameStateMachine() {
|
|
const stateMachine = new StateMachine<States>();
|
|
stateMachine.addState(new LoadState(stateMachine));
|
|
stateMachine.addState(new RunningState(stateMachine));
|
|
stateMachine.addState(new PausedState(stateMachine));
|
|
stateMachine.addState(new EditTrackState(stateMachine));
|
|
stateMachine.addState(new EditTrainState(stateMachine));
|
|
stateMachine.transitionTo(States.LOAD);
|
|
return stateMachine;
|
|
}
|