import { getContext } from "../../lib/context.ts"; import { TrackSystem } from "../../track/system.ts"; import { Train } from "../../train/train.ts"; import { State } from "../machine.ts"; import { States } from "./index.ts"; export class RunningState extends State { override name: States = States.RUNNING; override validTransitions: Set = new Set([ States.PAUSED, States.EDIT_TRACK, ]); override update(dt: number): void { const ctx = getContext() as { trains: Train[]; track: TrackSystem }; // TODO // Update trains // Update world // Handle input // Draw (maybe via a layer system that syncs with doodler) ctx.track.draw(); for (const train of ctx.trains) { train.draw(); } // Monitor world events } override start(): void { // noop } override stop(): void { // noop } }