Files
blockly3d/webclient/src/components/SceneView.tsx
T
2026-06-27 21:27:35 +03:00

28 lines
1.0 KiB
TypeScript

import { observer } from "mobx-react-lite";
import { GameObjectView } from "./GameObjectView";
import { ObjectEditorView } from "./ObjectEditorView";
import { DebugLabelsView } from "./DebugLabelsView";
import type { Scene } from "../types";
type SceneViewProps = {
scene: Scene,
isEditor?: boolean;
debugOverlay?: boolean;
}
export const SceneView = observer(function (props: SceneViewProps) {
return (<>
<ambientLight intensity={0.5} />
<directionalLight position={[5, 5, 5]} intensity={1} />
{
Object.values(props.scene.objects)
.map((obj) => (
!props.isEditor
? <GameObjectView key={obj.id} object={obj} isPlayer={props.scene.playerObjectId === obj.id} isSceneEditor={props.isEditor} />
: <ObjectEditorView key={obj.id} object={obj} isPlayer={props.scene.playerObjectId === obj.id} />
))
}
{props.debugOverlay && <DebugLabelsView scene={props.scene} editMode={props.isEditor} />}
</>);
});