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