Feature/runtime cdn and plugin loader (#240)
* feat(ui): 完善 UI 布局系统和编辑器可视化工具 * refactor: 移除 ModuleRegistry,统一使用 PluginManager 插件系统 * fix: 修复 CodeQL 警告并提升测试覆盖率 * refactor: 分离运行时入口点,解决 runtime bundle 包含 React 的问题 * fix(ci): 添加 editor-core 和 editor-runtime 到 CI 依赖构建步骤 * docs: 完善 ServiceContainer 文档,新增 Symbol.for 模式和 @InjectProperty 说明 * fix(ci): 修复 type-check 失败问题 * fix(ci): 修复类型检查失败问题 * fix(ci): 修复类型检查失败问题 * fix(ci): behavior-tree 构建添加 @tauri-apps 外部依赖 * fix(ci): behavior-tree 添加 @tauri-apps/plugin-fs 类型依赖 * fix(ci): platform-web 添加缺失的 behavior-tree 依赖 * fix(lint): 移除正则表达式中不必要的转义字符
This commit is contained in:
@@ -6,15 +6,42 @@
|
||||
*
|
||||
* @example
|
||||
* ```typescript
|
||||
* import { UIBuilder, UILayoutSystem, UIInputSystem, UIAnimationSystem } from '@esengine/ui';
|
||||
* import {
|
||||
* UIBuilder,
|
||||
* UILayoutSystem,
|
||||
* UIInputSystem,
|
||||
* UIAnimationSystem,
|
||||
* // ECS Render Systems
|
||||
* UIRectRenderSystem,
|
||||
* UITextRenderSystem,
|
||||
* UIButtonRenderSystem,
|
||||
* UIProgressBarRenderSystem,
|
||||
* UISliderRenderSystem,
|
||||
* UIScrollViewRenderSystem,
|
||||
* getUIRenderCollector
|
||||
* } from '@esengine/ui';
|
||||
*
|
||||
* // 创建 UI Scene
|
||||
* const uiScene = world.createScene('ui');
|
||||
*
|
||||
* // 添加 UI 系统
|
||||
* uiScene.addSystem(new UILayoutSystem());
|
||||
* uiScene.addSystem(new UIInputSystem());
|
||||
* uiScene.addSystem(new UIAnimationSystem());
|
||||
* // 添加 UI 系统(按 updateOrder 自动排序)
|
||||
* // Add UI systems (auto-sorted by updateOrder)
|
||||
* uiScene.addSystem(new UILayoutSystem()); // Layout first
|
||||
* uiScene.addSystem(new UIInputSystem()); // Input handling
|
||||
* uiScene.addSystem(new UIAnimationSystem()); // Animation
|
||||
*
|
||||
* // 添加渲染系统(每个组件类型一个系统)
|
||||
* // Add render systems (one per component type)
|
||||
* uiScene.addSystem(new UIRectRenderSystem()); // Basic rectangles (order: 100)
|
||||
* uiScene.addSystem(new UIProgressBarRenderSystem());// Progress bars (order: 110)
|
||||
* uiScene.addSystem(new UISliderRenderSystem()); // Sliders (order: 111)
|
||||
* uiScene.addSystem(new UIScrollViewRenderSystem()); // Scroll views (order: 112)
|
||||
* uiScene.addSystem(new UIButtonRenderSystem()); // Buttons (order: 113)
|
||||
* uiScene.addSystem(new UITextRenderSystem()); // Text (order: 120)
|
||||
*
|
||||
* // 在渲染前清除收集器
|
||||
* // Clear collector before render
|
||||
* getUIRenderCollector().clear();
|
||||
*
|
||||
* // 使用 UIBuilder 创建元素
|
||||
* const ui = new UIBuilder(uiScene);
|
||||
@@ -92,11 +119,30 @@ export {
|
||||
UIScrollbarVisibility
|
||||
} from './components/widgets/UIScrollViewComponent';
|
||||
|
||||
// Systems
|
||||
// Systems - Core
|
||||
export { UILayoutSystem } from './systems/UILayoutSystem';
|
||||
export { UIInputSystem, MouseButton, type UIInputEvent } from './systems/UIInputSystem';
|
||||
export { UIAnimationSystem, Easing, type EasingFunction, type EasingName } from './systems/UIAnimationSystem';
|
||||
export { UIRenderDataProvider, type UIRenderData } from './systems/UIRenderDataProvider';
|
||||
export { UIRenderDataProvider, type IRenderDataProvider, type IUIRenderDataProvider } from './systems/UIRenderDataProvider';
|
||||
|
||||
// Systems - Render (ECS-compliant render systems)
|
||||
export {
|
||||
// Collector
|
||||
UIRenderCollector,
|
||||
getUIRenderCollector,
|
||||
resetUIRenderCollector,
|
||||
invalidateUIRenderCaches,
|
||||
type UIRenderPrimitive,
|
||||
type ProviderRenderData,
|
||||
// Render systems
|
||||
UIRenderBeginSystem,
|
||||
UIRectRenderSystem,
|
||||
UITextRenderSystem,
|
||||
UIButtonRenderSystem,
|
||||
UIProgressBarRenderSystem,
|
||||
UISliderRenderSystem,
|
||||
UIScrollViewRenderSystem
|
||||
} from './systems/render';
|
||||
|
||||
// Rendering
|
||||
export { WebGLUIRenderer } from './rendering/WebGLUIRenderer';
|
||||
@@ -114,3 +160,9 @@ export {
|
||||
type UIPanelConfig,
|
||||
type UIScrollViewConfig
|
||||
} from './UIBuilder';
|
||||
|
||||
// Runtime module (no editor dependencies)
|
||||
export { UIRuntimeModule } from './UIRuntimeModule';
|
||||
|
||||
// Plugin (for PluginManager - includes editor dependencies)
|
||||
export { UIPlugin } from './editor/UIPlugin';
|
||||
|
||||
Reference in New Issue
Block a user