refactor(engine-core): 改进插件服务注册机制

- 更新 IComponentRegistry 类型引用
- 优化 PluginServiceRegistry 服务管理
This commit is contained in:
yhh
2025-12-16 11:11:48 +08:00
parent 844a770335
commit 03229ffb59
2 changed files with 55 additions and 3 deletions

View File

@@ -11,7 +11,7 @@
* @see docs/architecture/plugin-system-design.md
*/
import type { ComponentRegistry as ComponentRegistryType, IScene, ServiceContainer } from '@esengine/ecs-framework';
import type { IComponentRegistry, IScene, ServiceContainer } from '@esengine/ecs-framework';
import { PluginServiceRegistry } from '@esengine/ecs-framework';
import { TransformComponent } from './TransformComponent';
import type { ModuleManifest } from './ModuleManifest';
@@ -105,7 +105,7 @@ export interface IRuntimeModule {
* 注册组件到 ComponentRegistry
* Register components to ComponentRegistry
*/
registerComponents?(registry: typeof ComponentRegistryType): void;
registerComponents?(registry: IComponentRegistry): void;
/**
* 注册服务到 ServiceContainer
@@ -192,7 +192,7 @@ export type IPlugin<TEditorModule = unknown> = IRuntimePlugin<TEditorModule>;
// ============================================================================
class EngineRuntimeModule implements IRuntimeModule {
registerComponents(registry: typeof ComponentRegistryType): void {
registerComponents(registry: IComponentRegistry): void {
registry.register(TransformComponent);
}
}

View File

@@ -65,6 +65,58 @@ export interface IEngineBridge {
* Set clear color
*/
setClearColor(r: number, g: number, b: number, a: number): void;
// ===== Texture State API (Optional) =====
// ===== 纹理状态 API可选=====
/**
* 获取纹理加载状态
* Get texture loading state
*
* @param id 纹理 ID | Texture ID
* @returns 状态字符串: 'loading', 'ready', 或 'failed:reason'
* State string: 'loading', 'ready', or 'failed:reason'
*/
getTextureState?(id: number): string;
/**
* 检查纹理是否就绪
* Check if texture is ready for rendering
*
* @param id 纹理 ID | Texture ID
* @returns 纹理数据已加载则返回 true | true if texture data is loaded
*/
isTextureReady?(id: number): boolean;
/**
* 获取正在加载的纹理数量
* Get count of textures currently loading
*
* @returns 处于加载状态的纹理数量 | Number of textures in loading state
*/
getTextureLoadingCount?(): number;
/**
* 异步加载纹理(等待完成)
* Load texture asynchronously (wait for completion)
*
* 与 loadTexture 不同,此方法会等待纹理实际加载完成。
* Unlike loadTexture, this method waits until texture is actually loaded.
*
* @param id 纹理 ID | Texture ID
* @param url 图片 URL | Image URL
* @returns 纹理就绪时解析的 Promise | Promise that resolves when texture is ready
*/
loadTextureAsync?(id: number, url: string): Promise<void>;
/**
* 等待所有加载中的纹理完成
* Wait for all loading textures to complete
*
* @param timeout 最大等待时间毫秒默认30000| Max wait time in ms (default 30000)
* @returns 所有纹理加载完成时解析 | Resolves when all textures are loaded
*/
waitForAllTextures?(timeout?: number): Promise<void>;
}
/**