@scenemesh/entity-engine-studio
Version:
Entity Engine Studio
117 lines (84 loc) • 3 kB
Markdown
# Entity Engine Studio Plugin
这个插件为 Entity Engine 提供了一个弹框式的 Studio 工作空间,允许用户通过 shell 设置菜单快速打开和使用 Studio 功能。
## 功能特性
- 🎯 **弹框式界面**: 通过模态框形式打开 Studio,无需离开当前页面
- 🔧 **集成设置菜单**: 在 shell-settings-menu 插槽中添加"打开 Studio"选项
- 🚀 **完整工作空间**: 包含完整的 UnifiedConfigurationWorkspace 功能
- 💾 **配置保存**: 支持配置保存和取消操作
## 使用方法
### 1. 导入插件
```typescript
import { studioRenderers, EntityEngineStudioLauncher } from '@scenemesh/entity-engine-studio';
```
### 2. 注册渲染器
在你的 Entity Engine 配置中注册 Studio 渲染器:
```typescript
// 方式一:批量注册
engine.registerRenderers(studioRenderers);
// 方式二:单独注册
engine.registerRenderer(EntityEngineStudioLauncher);
```
### 3. 确保依赖
确保你的应用已经安装了必要的依赖:
- `@mantine/core`
- `@mantine/modals`
- `lucide-react`
### 4. 模态框提供者
确保你的应用根部包含了 Mantine 的 ModalsProvider:
```typescript
import { ModalsProvider } from '@mantine/modals';
function App() {
return (
<ModalsProvider>
{/* 你的应用内容 */}
</ModalsProvider>
);
}
```
## 工作原理
1. **插槽注册**: 插件注册到 `shell-settings-menu` 插槽
2. **菜单显示**: 在 shell 视图的设置菜单中显示"打开 Studio"选项
3. **弹框打开**: 点击后通过 `@mantine/modals` 打开大尺寸模态框
4. **工作空间加载**: 模态框内加载完整的 UnifiedConfigurationWorkspace
5. **引擎共享**: 使用当前页面的 EntityEngine 实例
## 组件结构
```
src/renderers/studio/
├── index.tsx # 主渲染器和菜单组件
└── studio-modal.tsx # 弹框内容组件
```
## 配置选项
弹框默认配置:
- 大小: 95% 视口宽度
- 高度: 90% 视口高度
- 居中显示
- 支持 ESC 键关闭
- 不支持点击外部关闭(防止意外关闭)
## 自定义样式
你可以通过 Mantine 的主题系统自定义弹框样式:
```typescript
// 在你的主题配置中
const theme = {
components: {
Modal: {
styles: {
modal: {
// 自定义模态框样式
}
}
}
}
};
```
## 注意事项
1. **引擎依赖**: 插件需要在 EntityEngine 上下文中使用
2. **模态框管理**: 使用 Mantine 的模态框系统,确保正确的提供者配置
3. **性能考虑**: Studio 工作空间较重,建议按需加载
4. **兼容性**: 需要现代浏览器支持,建议 ES2020+ 环境
## 故障排除
### 常见问题
1. **模态框不显示**: 检查 ModalsProvider 是否正确配置
2. **样式异常**: 确保 Mantine CSS 已正确导入
3. **功能缺失**: 检查 EntityEngine 实例是否可用
### 调试信息
插件会在控制台输出相关日志,可通过浏览器开发者工具查看。