feat: Add human mechanics and event handling, including UI components and action management

This commit is contained in:
2025-07-03 12:09:31 +05:30
parent 424df54ff7
commit b5c69f3335
13 changed files with 469 additions and 48 deletions

View File

@@ -251,6 +251,7 @@ function AssetsGroup({ plane }: { readonly plane: RefMesh }) {
rotation: [item.rotation.x, item.rotation.y, item.rotation.z],
state: "idle",
type: "human",
speed: 1,
point: {
uuid: item.eventData.point?.uuid || THREE.MathUtils.generateUUID(),
position: [item.eventData.point?.position[0] || 0, item.eventData.point?.position[1] || 0, item.eventData.point?.position[2] || 0],

View File

@@ -369,6 +369,7 @@ async function handleModelLoad(
rotation: newFloorItem.rotation,
state: "idle",
type: "human",
speed: 1,
point: {
uuid: THREE.MathUtils.generateUUID(),
position: [data.points[0].x, data.points[0].y, data.points[0].z],

View File

@@ -30,7 +30,7 @@ export const handleAddEventToProduct = ({
projectId: projectId || '',
eventDatas: event
}).then((data) => {
// console.log(data);
console.log(data);
})
if (clearSelectedAsset) {

View File

@@ -1,6 +1,27 @@
import HumanInstances from './instances/humanInstances'
import { useEffect, useState } from "react";
import { useSelectedEventSphere } from "../../../store/simulation/useSimulationStore";
import { usePlayButtonStore } from "../../../store/usePlayButtonStore";
import { useSceneContext } from "../../scene/sceneContext";
function Human() {
const { humanStore } = useSceneContext();
const { getHumanById } = humanStore();
const { selectedEventSphere } = useSelectedEventSphere();
const { isPlaying } = usePlayButtonStore();
const [isHumanSelected, setIsHumanSelected] = useState(false);
useEffect(() => {
if (selectedEventSphere) {
const selectedVehicle = getHumanById(selectedEventSphere.userData.modelUuid);
if (selectedVehicle) {
setIsHumanSelected(true);
} else {
setIsHumanSelected(false);
}
}
}, [getHumanById, selectedEventSphere])
return (
<>

View File

@@ -1,4 +1,5 @@
import { useEffect } from 'react'
import HumanUi from './humanUi';
function HumanInstance({ human }: { human: HumanStatus }) {
@@ -8,6 +9,9 @@ function HumanInstance({ human }: { human: HumanStatus }) {
return (
<>
<HumanUi human={human} />
</>
)
}

View File

@@ -0,0 +1,10 @@
import React from 'react'
function HumanUi({ human }: { human: HumanStatus }) {
return (
<>
</>
)
}
export default HumanUi