Update error messages and refactor brush replacement logic

This commit is contained in:
2026-04-15 07:51:43 +02:00
parent 8514eeaadc
commit be2e8f1cde

View File

@@ -3,6 +3,7 @@ import {
cloneBrush,
cloneBrushGeometry,
cloneFaceUvState,
updateBrush,
type Brush,
type BrushFace
} from "../document/brushes";
@@ -17,7 +18,7 @@ export function getBoxBrushOrThrow(document: SceneDocument, brushId: string): Br
const brush = document.brushes[brushId];
if (brush === undefined) {
throw new Error(`Box brush ${brushId} does not exist.`);
throw new Error(`Whitebox solid ${brushId} does not exist.`);
}
return brush;
@@ -85,7 +86,7 @@ export function getBoxBrushFaceOrThrow(document: SceneDocument, brushId: string,
const face = brush.faces[faceId];
if (face === undefined) {
throw new Error(`Box brush ${brushId} does not contain face ${faceId}.`);
throw new Error(`Whitebox solid ${brushId} does not contain face ${faceId}.`);
}
return face;
@@ -94,15 +95,17 @@ export function getBoxBrushFaceOrThrow(document: SceneDocument, brushId: string,
export function replaceBoxBrushFace(document: SceneDocument, brushId: string, faceId: WhiteboxFaceId, face: BrushFace): SceneDocument {
const brush = getBoxBrushOrThrow(document, brushId);
return replaceBrush(document, {
...brush,
faces: {
...brush.faces,
[faceId]: {
materialId: face.materialId,
uv: cloneFaceUvState(face.uv)
}
},
geometry: cloneBrushGeometry(brush.geometry)
});
return replaceBrush(
document,
updateBrush(brush, {
faces: {
...brush.faces,
[faceId]: {
materialId: face.materialId,
uv: cloneFaceUvState(face.uv)
}
} as typeof brush.faces,
geometry: cloneBrushGeometry(brush.geometry)
})
);
}