simulation and decal bug fix
This commit is contained in:
@@ -27,7 +27,7 @@ function DecalInstance({ parent, visible = true, decal, zPosition = decal.decalP
|
|||||||
}
|
}
|
||||||
}, [selectedDecal])
|
}, [selectedDecal])
|
||||||
|
|
||||||
const { handlePointerMissed, handlePointerLeave, handleClick, handlePointerDown, handlePointerEnter } = useDecalEventHandlers({ parent, decal, visible });
|
const { handlePointerMissed, handlePointerLeave, handleClick, handlePointerDown, handlePointerEnter, handleDecalUp } = useDecalEventHandlers({ parent, decal, visible });
|
||||||
|
|
||||||
const [texture, setTexture] = useState<THREE.Texture | null>(null);
|
const [texture, setTexture] = useState<THREE.Texture | null>(null);
|
||||||
|
|
||||||
@@ -152,6 +152,7 @@ function DecalInstance({ parent, visible = true, decal, zPosition = decal.decalP
|
|||||||
scale={[(decal.decalType.type === 'Floor' || zPosition < 0) ? -decal.decalScale : decal.decalScale, decal.decalScale, 0.01]}
|
scale={[(decal.decalType.type === 'Floor' || zPosition < 0) ? -decal.decalScale : decal.decalScale, decal.decalScale, 0.01]}
|
||||||
userData={decal}
|
userData={decal}
|
||||||
onPointerDown={(e) => { if (e.button === 0) handlePointerDown(e) }}
|
onPointerDown={(e) => { if (e.button === 0) handlePointerDown(e) }}
|
||||||
|
onPointerUp={(e) => { if (e.button === 0) handleDecalUp(e) }}
|
||||||
onClick={(e) => { handleClick(e) }}
|
onClick={(e) => { handleClick(e) }}
|
||||||
onPointerEnter={(e) => { handlePointerEnter(e) }}
|
onPointerEnter={(e) => { handlePointerEnter(e) }}
|
||||||
onPointerLeave={(e) => { handlePointerLeave(e) }}
|
onPointerLeave={(e) => { handlePointerLeave(e) }}
|
||||||
|
|||||||
@@ -218,13 +218,12 @@ export function useDecalEventHandlers({
|
|||||||
|
|
||||||
const handlePointerDown = (e: ThreeEvent<MouseEvent>) => {
|
const handlePointerDown = (e: ThreeEvent<MouseEvent>) => {
|
||||||
if (visible && !toggleView && activeModule === 'builder') {
|
if (visible && !toggleView && activeModule === 'builder') {
|
||||||
if (e.object.userData.decalUuid && toolMode === 'cursor') {
|
if (e.object.userData.decalUuid && toolMode === 'cursor' && (selectedDecal && selectedDecal.decalData.decalUuid === decal.decalUuid)) {
|
||||||
e.stopPropagation();
|
e.stopPropagation();
|
||||||
setDecalDragState(true, decal.decalUuid, null);
|
setDecalDragState(true, decal.decalUuid, null);
|
||||||
if (controls) {
|
if (controls) {
|
||||||
(controls as CameraControls).enabled = false;
|
(controls as CameraControls).enabled = false;
|
||||||
}
|
}
|
||||||
setSelectedDecal({ decalMesh: e.object, decalData: decal });
|
|
||||||
setSelectedWall(null);
|
setSelectedWall(null);
|
||||||
setSelectedFloor(null);
|
setSelectedFloor(null);
|
||||||
|
|
||||||
@@ -235,6 +234,14 @@ export function useDecalEventHandlers({
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
const handleDecalUp = (e: ThreeEvent<MouseEvent>) => {
|
||||||
|
if (visible && !toggleView && activeModule === 'builder') {
|
||||||
|
if (!decalDragState.isDragging && !selectedDecal && e.object.userData.decalUuid && toolMode === 'cursor') {
|
||||||
|
setSelectedDecal({ decalMesh: e.object, decalData: decal });
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
const handleClick = (e: ThreeEvent<MouseEvent>) => {
|
const handleClick = (e: ThreeEvent<MouseEvent>) => {
|
||||||
if (visible && !toggleView && activeModule === 'builder') {
|
if (visible && !toggleView && activeModule === 'builder') {
|
||||||
if (e.object.userData.decalUuid) {
|
if (e.object.userData.decalUuid) {
|
||||||
@@ -292,6 +299,7 @@ export function useDecalEventHandlers({
|
|||||||
|
|
||||||
return {
|
return {
|
||||||
handlePointerDown,
|
handlePointerDown,
|
||||||
|
handleDecalUp,
|
||||||
handleClick,
|
handleClick,
|
||||||
handlePointerEnter,
|
handlePointerEnter,
|
||||||
handlePointerLeave,
|
handlePointerLeave,
|
||||||
|
|||||||
@@ -116,7 +116,7 @@ function MachineInstance({ machineDetail }: { readonly machineDetail: MachineSta
|
|||||||
function handleCallBack() {
|
function handleCallBack() {
|
||||||
if (currentPhase == "processing") {
|
if (currentPhase == "processing") {
|
||||||
setMachineState(machineDetail.modelUuid, 'idle');
|
setMachineState(machineDetail.modelUuid, 'idle');
|
||||||
setMachineActive(machineDetail.modelUuid, true);
|
setMachineActive(machineDetail.modelUuid, false);
|
||||||
setCurrentPhase("idle")
|
setCurrentPhase("idle")
|
||||||
isIncrememtable.current = true;
|
isIncrememtable.current = true;
|
||||||
machineStatus(machineDetail.modelUuid, "Machine has completed the processing")
|
machineStatus(machineDetail.modelUuid, "Machine has completed the processing")
|
||||||
|
|||||||
@@ -206,47 +206,17 @@ export function useTriggerHandler() {
|
|||||||
} else if (model?.type === 'machine') {
|
} else if (model?.type === 'machine') {
|
||||||
const armBot = getArmBotById(trigger.triggeredAsset?.triggeredModel.modelUuid);
|
const armBot = getArmBotById(trigger.triggeredAsset?.triggeredModel.modelUuid);
|
||||||
if (armBot) {
|
if (armBot) {
|
||||||
if (armBot.isActive === false && armBot.state === 'idle') {
|
setIsPaused(materialId, true);
|
||||||
const machine = getMachineById(action.triggers[0]?.triggeredAsset?.triggeredModel.modelUuid);
|
addArmBotToMonitor(armBot.modelUuid, () => {
|
||||||
|
const machine = getMachineById(action.triggers[0]?.triggeredAsset?.triggeredModel.modelUuid || '');
|
||||||
if (machine) {
|
if (machine) {
|
||||||
if (machine.isActive === false && machine.state === 'idle' && !machine.currentAction) {
|
setIsPaused(materialId, true);
|
||||||
setIsPaused(materialId, true);
|
|
||||||
|
addMachineToMonitor(machine.modelUuid, () => {
|
||||||
handleAction(action, materialId);
|
handleAction(action, materialId);
|
||||||
} else {
|
})
|
||||||
|
|
||||||
// Handle current action using Event Manager
|
|
||||||
setIsPaused(materialId, true);
|
|
||||||
|
|
||||||
addMachineToMonitor(machine.modelUuid,
|
|
||||||
() => {
|
|
||||||
handleAction(action, materialId);
|
|
||||||
}
|
|
||||||
)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
} else {
|
});
|
||||||
setIsPaused(materialId, true);
|
|
||||||
addArmBotToMonitor(armBot.modelUuid, () => {
|
|
||||||
const machine = getMachineById(action.triggers[0]?.triggeredAsset?.triggeredModel.modelUuid || '');
|
|
||||||
if (machine) {
|
|
||||||
if (machine.isActive === false && machine.state === 'idle' && !machine.currentAction) {
|
|
||||||
setIsPaused(materialId, true);
|
|
||||||
handleAction(action, materialId);
|
|
||||||
} else {
|
|
||||||
|
|
||||||
// Handle current action using Event Manager
|
|
||||||
setIsPaused(materialId, true);
|
|
||||||
|
|
||||||
addMachineToMonitor(machine.modelUuid,
|
|
||||||
() => {
|
|
||||||
handleAction(action, materialId);
|
|
||||||
}
|
|
||||||
)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
if (armBot.isActive === false && armBot.state === 'idle') {
|
if (armBot.isActive === false && armBot.state === 'idle') {
|
||||||
|
|||||||
Reference in New Issue
Block a user