Files
esengine/packages/runtime-core/src/RuntimeBootstrap.ts
YHH b42a7b4e43 Feature/editor optimization (#251)
* refactor: 编辑器/运行时架构拆分与构建系统升级

* feat(core): 层级系统重构与UI变换矩阵修复

* refactor: 移除 ecs-components 聚合包并修复跨包组件查找问题

* fix(physics): 修复跨包组件类引用问题

* feat: 统一运行时架构与浏览器运行支持

* feat(asset): 实现浏览器运行时资产加载系统

* fix: 修复文档、CodeQL安全问题和CI类型检查错误

* fix: 修复文档、CodeQL安全问题和CI类型检查错误

* fix: 修复文档、CodeQL安全问题、CI类型检查和测试错误

* test: 补齐核心模块测试用例,修复CI构建配置

* fix: 修复测试用例中的类型错误和断言问题

* fix: 修复 turbo build:npm 任务的依赖顺序问题

* fix: 修复 CI 构建错误并优化构建性能
2025-12-01 22:28:51 +08:00

67 lines
1.5 KiB
TypeScript

/**
* Runtime Bootstrap
* 运行时启动器 - 提供通用的初始化流程
*/
import { Core } from '@esengine/ecs-framework';
import type { IScene } from '@esengine/ecs-framework';
import {
runtimePluginManager,
type IPlugin,
type IRuntimeModule,
type PluginDescriptor,
type SystemContext
} from './PluginManager';
export interface RuntimeConfig {
enabledPlugins?: string[];
isEditor?: boolean;
}
/**
* 创建插件(简化工厂)
*/
export function createPlugin(
descriptor: PluginDescriptor,
runtimeModule: IRuntimeModule
): IPlugin {
return { descriptor, runtimeModule };
}
/**
* 注册插件到运行时
*/
export function registerPlugin(plugin: IPlugin): void {
runtimePluginManager.register(plugin);
}
/**
* 初始化运行时
* @param config 运行时配置
*/
export async function initializeRuntime(config?: RuntimeConfig): Promise<void> {
if (config?.enabledPlugins) {
runtimePluginManager.loadConfig({ enabledPlugins: config.enabledPlugins });
} else {
for (const plugin of runtimePluginManager.getPlugins()) {
runtimePluginManager.enable(plugin.descriptor.id);
}
}
await runtimePluginManager.initializeRuntime(Core.services);
}
/**
* 为场景创建系统
*/
export function createSystemsForScene(scene: IScene, context: SystemContext): void {
runtimePluginManager.createSystemsForScene(scene, context);
}
/**
* 重置运行时(用于热重载等场景)
*/
export function resetRuntime(): void {
runtimePluginManager.reset();
}