feat: Add selectedWallAsset and selectedFloorAsset state management; implement corresponding setters in useBuilderStore

This commit is contained in:
2025-06-30 16:59:27 +05:30
parent 997775c27e
commit 1a9aef323a
4 changed files with 102 additions and 14 deletions

View File

@@ -9,6 +9,12 @@ interface BuilderState {
snappedPosition: [number, number, number] | null;
hoveredLine: [Point, Point] | null;
// Wall Asset
selectedWallAsset: Object3D | null;
// Floor Asset
selectedFloorAsset: Object3D | null;
// Wall Settings
selectedWall: Object3D | null;
wallThickness: number;
@@ -51,6 +57,12 @@ interface BuilderState {
setSnappedPosition: (position: [number, number, number] | null) => void;
setHoveredLine: (line: [Point, Point] | null) => void;
// Setters - Wall Asset
setSelectedWallAsset: (asset: Object3D | null) => void;
// Setters - Floor Asset
setSelectedFloorAsset: (asset: Object3D | null) => void;
// Setters - Wall
setSelectedWall: (wall: Object3D | null) => void;
setWallThickness: (thickness: number) => void;
@@ -100,6 +112,10 @@ export const useBuilderStore = create<BuilderState>()(
snappedPosition: null,
hoveredLine: null,
selectedWallAsset: null,
selectedFloorAsset: null,
selectedWall: null,
wallThickness: 0.5,
wallHeight: 7,
@@ -156,6 +172,22 @@ export const useBuilderStore = create<BuilderState>()(
})
},
// === Setters: Wall Asset ===
setSelectedWallAsset(asset: Object3D | null) {
set((state) => {
state.selectedWallAsset = asset;
});
},
// === Setters: Floor Asset ===
setSelectedFloorAsset(asset: Object3D | null) {
set((state) => {
state.selectedFloorAsset = asset;
});
},
// === Setters: Wall ===
setSelectedWall: (wall: Object3D | null) => {