>(
@@ -60,10 +64,10 @@ export const ObjectEditorView = observer(function ({ object }: ObjectEditorViewP
e.stopPropagation();
// Reading selection state inside an event handler: not tracked by observer.
const currentMode = state.worldEditor.isEnabled &&
- state.worldEditor.selectedObjectId === object.id
- ? state.worldEditor.selectedObjectMode
+ state.worldEditor.selection?.type === 'object' && state.worldEditor.selection?.id === object.id
+ ? state.worldEditor.selection?.editMode
: undefined;
- state.worldEditor.setSelectedObject(object.id, nextSelectionEditMode(currentMode));
+ state.worldEditor.setSelectedObject({ id: object.id, editMode: nextObjectEditMode(currentMode) });
}
function handleTransformEnd() {
diff --git a/src/components/Panel.tsx b/src/components/Panel.tsx
index 8dd123b..ed732f8 100644
--- a/src/components/Panel.tsx
+++ b/src/components/Panel.tsx
@@ -1,39 +1,16 @@
import { observer } from "mobx-react-lite";
import './Panel.scss';
-import { RenderInfoView } from "./RenderInfoView";
-import { MenuView } from "./MenuView";
-import { state } from "../state";
+import type { ReactNode } from "react";
export type PanelProps = {
side?: 'left' | 'right';
+ children?: ReactNode;
}
-export const Panel = observer(function ({ side = 'left' }: PanelProps) {
-
- const isGame = state.game && !state.game.isPaused;
-
- if (isGame)
- return null;
-
- function handleCloneTest1Object(): void {
- state.worldEditor.addObjectCloneAtRandomPosition('test1');
- }
-
- function handleLoadWorld(): void {
- state.world.load();
- }
-
- function handleLoadMockWorld(): void {
- state.world.loadMock();
- }
-
+export const Panel = observer(function ({ children, side = 'left' }: PanelProps) {
return
-
-
-
-
-
+ {children}
});
diff --git a/src/components/ThreeView.tsx b/src/components/ThreeView.tsx
index 25630aa..76aa4c2 100644
--- a/src/components/ThreeView.tsx
+++ b/src/components/ThreeView.tsx
@@ -44,7 +44,7 @@ export const ThreeView = observer(function () {