added decal dropping to scene, decal movement from one wall to another wall, one floor to another floor, one wall to floor and one floor to wall
This commit is contained in:
@@ -1,4 +1,4 @@
|
||||
import { Object3D } from 'three';
|
||||
import { Object3D, Vector3 } from 'three';
|
||||
import { create } from 'zustand';
|
||||
import { immer } from 'zustand/middleware/immer';
|
||||
|
||||
@@ -38,8 +38,13 @@ interface BuilderState {
|
||||
zoneColor: string;
|
||||
|
||||
// Decal Settings
|
||||
selectedDecal: { decalMesh: Object3D, decalData: Decal } | null;
|
||||
selectedDecal: { decalMesh: Object3D | null, decalData: Decal } | null;
|
||||
deletableDecal: Object3D | null;
|
||||
decalDragState: {
|
||||
isDragging: boolean,
|
||||
draggingDecalUuid: string | null,
|
||||
dragOffset: Vector3 | null,
|
||||
},
|
||||
|
||||
// Aisle General
|
||||
selectedAisle: Object3D | null;
|
||||
@@ -87,8 +92,9 @@ interface BuilderState {
|
||||
setZoneColor: (color: string) => void;
|
||||
|
||||
// Setters - Decal
|
||||
setSelectedDecal: (decal: { decalMesh: Object3D, decalData: Decal } | null) => void;
|
||||
setSelectedDecal: (decal: { decalMesh: Object3D | null, decalData: Decal } | null) => void;
|
||||
setDeletableDecal: (decal: Object3D | null) => void;
|
||||
setDecalDragState: (isDragging: boolean, draggingDecalUuid: string | null, dragOffset: Vector3 | null) => void;
|
||||
|
||||
// Setters - Aisle General
|
||||
setSelectedAisle: (aisle: Object3D | null) => void;
|
||||
@@ -143,6 +149,11 @@ export const useBuilderStore = create<BuilderState>()(
|
||||
|
||||
selectedDecal: null,
|
||||
deletableDecal: null,
|
||||
decalDragState: {
|
||||
isDragging: false,
|
||||
draggingDecalUuid: null,
|
||||
dragOffset: null,
|
||||
},
|
||||
|
||||
selectedAisle: null,
|
||||
aisleType: 'solid-aisle',
|
||||
@@ -290,7 +301,7 @@ export const useBuilderStore = create<BuilderState>()(
|
||||
|
||||
// === Setters: Decal ===
|
||||
|
||||
setSelectedDecal: (decal: { decalMesh: Object3D, decalData: Decal } | null) => {
|
||||
setSelectedDecal: (decal: { decalMesh: Object3D | null, decalData: Decal } | null) => {
|
||||
set((state) => {
|
||||
state.selectedDecal = decal;
|
||||
})
|
||||
@@ -302,6 +313,16 @@ export const useBuilderStore = create<BuilderState>()(
|
||||
})
|
||||
},
|
||||
|
||||
setDecalDragState: (isDragging: boolean, draggingDecalUuid: string | null, dragOffset: Vector3 | null) => {
|
||||
set((state) => {
|
||||
state.decalDragState = {
|
||||
isDragging,
|
||||
draggingDecalUuid,
|
||||
dragOffset,
|
||||
}
|
||||
})
|
||||
},
|
||||
|
||||
// === Setters: Aisle General ===
|
||||
|
||||
setSelectedAisle: (aisle: Object3D | null) => {
|
||||
|
||||
Reference in New Issue
Block a user