@scenemesh/entity-engine-studio
Version:
Entity Engine Studio
66 lines • 2.85 kB
JavaScript
// Entity Engine Studio - 基于 EntityEngine 的配置工作室
// ================================================================================
// 🎯 核心组件
// ================================================================================
export { PreviewPanel } from './components/preview';
export { StudioService } from './services/studio-service';
// 变更检测服务
export { changeDetector } from './services/change-detector';
// 视图和组件编辑器
export { ViewOptionsEditor } from './components/view-editor';
export { WidgetConfigEditor } from './components/view-editor';
export { EnhancedFieldEditor } from './components/view-editor';
export { EntityEngineAPI } from './services/entity-engine-api';
export { UniversalFieldsEditor } from './components/view-editor';
// ================================================================================
// 🔧 服务层
// ================================================================================
export { HierarchicalViewEditor } from './components/view-editor';
export { HierarchicalModelEditor } from './components/model-editor';
// 主工作空间组件
export { UnifiedConfigurationWorkspace } from './components/workspace';
export { StudioEngineService } from './services/studio-engine-service';
export { studioRenderers, EntityEngineStudioLauncher } from './renderers';
export { StudioEngineProvider, useStudioEngineOptional } from './providers/studio-engine-provider';
export class StudioExtensionRegistry {
constructor() {
this.extensions = new Map();
}
register(extension) {
this.extensions.set(extension.name, extension);
}
unregister(name) {
this.extensions.delete(name);
}
get(name) {
return this.extensions.get(name);
}
getAll() {
return Array.from(this.extensions.values());
}
getEditors(type) {
return this.getAll()
.map((ext) => ext.editors?.[type])
.filter(Boolean);
}
getToolbarItems() {
return this.getAll().flatMap((ext) => ext.toolbar?.items || []);
}
getPanels(position) {
return this.getAll().flatMap((ext) => ext.panels?.[position] || []);
}
}
export const studioExtensionRegistry = new StudioExtensionRegistry();
// ================================================================================
// 🛠️ 工具函数
// ================================================================================
import { StudioEngineService } from './services/studio-engine-service';
export function createStudioInstance(engine) {
return {
service: new StudioEngineService(engine),
extensionRegistry: studioExtensionRegistry,
};
}
export const STUDIO_VERSION = '0.0.4';
export const STUDIO_NAME = '@scenemesh/entity-engine-studio';
//# sourceMappingURL=index.js.map