trainsim/state/states/index.ts

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;
}