lingo3d
Version:
Lingo3D is a React/Vue 3d game development framework that ships with a complete visual editor
44 lines • 2.57 kB
JavaScript
import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "preact/jsx-runtime";
import Toolbar from "../Toolbar";
import SceneGraph from "../SceneGraph";
import Editor from "../Editor";
import Library from "../Library";
import HUD from "../HUD";
import Stats from "../Stats";
import WorldBar from "../WorldBar";
import Panels from "../Panels";
import { DEBUG } from "../../globals";
import useSyncState from "../hooks/useSyncState";
import { getStats } from "../../states/useStats";
import DummyIKEditor from "../DummyIKEditor";
import GameGraphEditor from "../GameGraphEditor";
import { getGameGraph } from "../../states/useGameGraph";
import { getDummyIK } from "../../states/useDummyIK";
import prevent from "../utils/prevent";
import { getWorldExpanded } from "../../states/useWorldExpanded";
import Runtime from "../Runtime";
import World from "../World";
import { getEditorRuntime } from "../../states/useEditorRuntime";
import { useEffect } from "preact/hooks";
import MenuBar from "../MenuBar";
import { getScript } from "../../states/useScript";
import ScriptEditor from "../ScriptEditor";
import Terminal from "../Terminal";
import NewScriptDialog from "../ScriptEditor/NewScriptDialog";
const LingoEditor = () => {
const stats = useSyncState(getStats);
const gameGraph = useSyncState(getGameGraph);
const script = useSyncState(getScript);
const dummyIK = useSyncState(getDummyIK);
const worldExpanded = useSyncState(getWorldExpanded);
const editorRuntime = useSyncState(getEditorRuntime);
useEffect(() => {
document.body.classList.add("lingo3d-body");
return () => {
document.body.classList.remove("lingo3d-body");
};
}, []);
return (_jsxs("div", { className: "lingo3d-ui lingo3d-lingoeditor lingo3d-absfull", onContextMenu: DEBUG ? undefined : prevent, children: [!worldExpanded && (_jsxs(_Fragment, { children: [_jsx(MenuBar, {}), _jsx(Toolbar, {}), !script && _jsx(SceneGraph, {}), dummyIK ? (_jsx(DummyIKEditor, {})) : gameGraph ? (_jsx(GameGraphEditor, {})) : script ? (_jsx(ScriptEditor, {})) : (_jsx(Editor, {})), !gameGraph && !script && !dummyIK && _jsx(Library, {}), !gameGraph && !script && !dummyIK && _jsx(Panels, {})] })), _jsx(WorldBar, {}), _jsxs("div", { className: "lingo3d-world lingo3d-bg lingo3d-flexcol", style: { flexGrow: 1 }, children: [editorRuntime ? _jsx(Runtime, {}) : _jsx(World, {}), _jsx(Terminal, {})] }), stats && _jsx(Stats, {}), _jsx(HUD, {}), _jsx(NewScriptDialog, {})] }));
};
export default LingoEditor;
//# sourceMappingURL=index.js.map