Add brush and grid snapping functionality

This commit is contained in:
2026-03-31 02:02:34 +02:00
parent 0be7d57a4c
commit 45e4288f87
4 changed files with 237 additions and 0 deletions

View File

@@ -3,3 +3,28 @@ export type EditorSelection =
| { kind: "brushes"; ids: string[] }
| { kind: "entities"; ids: string[] }
| { kind: "modelInstances"; ids: string[] };
export function cloneEditorSelection(selection: EditorSelection): EditorSelection {
if (selection.kind === "none") {
return {
kind: "none"
};
}
return {
kind: selection.kind,
ids: [...selection.ids]
};
}
export function getSingleSelectedBrushId(selection: EditorSelection): string | null {
if (selection.kind !== "brushes" || selection.ids.length !== 1) {
return null;
}
return selection.ids[0];
}
export function isBrushSelected(selection: EditorSelection, brushId: string): boolean {
return selection.kind === "brushes" && selection.ids.includes(brushId);
}