Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | import { replayConstruction } from '../engine/replayConstruction' import type { ReplayResult } from '../engine/replayConstruction' import { PROP_REGISTRY } from '../propositions/registry' import type { ConstructionState } from '../types' import type { FactStore } from '../engine/factStore' export interface FinalStateResult { state: ConstructionState factStore: FactStore } /** * Replay a proposition's construction steps to produce the final state * and fact store. Uses the generic replayConstruction engine which handles * all step types (compass, straightedge, intersection, extend, macro). */ export function buildFinalState(propId: number): FinalStateResult | null { const prop = PROP_REGISTRY[propId] if (!prop || prop.steps.length === 0) return null const result = replayConstruction(prop.givenElements, prop.steps, prop) return { state: result.state, factStore: result.factStore } } |