Files
esengine/packages/physics-rapier2d/src/Physics2DComponentsModule.ts
yhh 7834328ae0 fix(physics-rapier2d): 修复物理插件组件注册
- PhysicsEditorPlugin 添加 runtimeModule 引用
- 适配 IComponentRegistry 接口
- 修复物理组件在场景加载时未注册的问题
2025-12-16 11:12:50 +08:00

52 lines
1.8 KiB
TypeScript

/**
* Physics 2D Components Module (Lightweight)
* 2D 物理组件模块(轻量级)
*
* 仅注册组件,不包含 WASM 依赖
* 用于编辑器中的组件序列化/反序列化
*/
import type { IComponentRegistry } from '@esengine/ecs-framework';
import type { IRuntimeModule } from '@esengine/engine-core';
// Components (no WASM dependency)
import { Rigidbody2DComponent } from './components/Rigidbody2DComponent';
import { BoxCollider2DComponent } from './components/BoxCollider2DComponent';
import { CircleCollider2DComponent } from './components/CircleCollider2DComponent';
import { CapsuleCollider2DComponent } from './components/CapsuleCollider2DComponent';
import { PolygonCollider2DComponent } from './components/PolygonCollider2DComponent';
/**
* Physics 2D Components Module (Lightweight)
* 2D 物理组件模块(轻量级)
*
* 仅实现组件注册,不包含系统创建和 WASM 初始化
* 用于编辑器场景序列化
*/
export class Physics2DComponentsModule implements IRuntimeModule {
/**
* 注册组件到 ComponentRegistry
* Register components to ComponentRegistry
*/
registerComponents(registry: IComponentRegistry): void {
registry.register(Rigidbody2DComponent);
registry.register(BoxCollider2DComponent);
registry.register(CircleCollider2DComponent);
registry.register(CapsuleCollider2DComponent);
registry.register(PolygonCollider2DComponent);
}
/**
* 不创建系统(完整运行时模块负责)
*/
createSystems(): void {
// No-op: Systems are created by the full runtime module
}
}
/**
* 默认导出模块实例
*/
export const physics2DComponentsModule = new Physics2DComponentsModule();
export default physics2DComponentsModule;