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:
YHH
2025-11-27 20:42:46 +08:00
committed by GitHub
parent 71869b1a58
commit 107439d70c
367 changed files with 10661 additions and 12473 deletions

View File

@@ -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';