diff --git a/packages/build-config/templates/plugin/src/editor/Plugin.ts.template b/packages/build-config/templates/plugin/src/editor/Plugin.ts.template index f3975a57..e0154deb 100644 --- a/packages/build-config/templates/plugin/src/editor/Plugin.ts.template +++ b/packages/build-config/templates/plugin/src/editor/Plugin.ts.template @@ -4,31 +4,33 @@ * 插件定义 - 注册编辑器模块(Inspector、工具等) */ -import type { IPluginLoader, PluginDescriptor, IEditorModuleLoader } from '@esengine/ecs-components'; +import type { IPlugin, ModuleManifest, IEditorModuleLoader } from '@esengine/editor-core'; import { {{name}}RuntimeModule } from '../{{name}}RuntimeModule'; class {{name}}EditorModule implements IEditorModuleLoader { - registerInspectors(registry: any): void { + async install(): Promise { // 注册组件 Inspector // registry.register('MyComponent', MyComponentInspector); } + async uninstall(): Promise {} } -const descriptor: PluginDescriptor = { +const manifest: ModuleManifest = { id: '@esengine/{{name}}', - name: '{{displayName}}', + name: '@esengine/{{name}}', + displayName: '{{displayName}}', version: '1.0.0', + description: '{{displayName}} plugin', category: '{{category}}', - enabledByDefault: true, - isEnginePlugin: false, - modules: [ - { name: '{{name}}Runtime', type: 'runtime', entry: './src/runtime.ts' }, - { name: '{{name}}Editor', type: 'editor', entry: './src/editor/index.ts' } - ] + isCore: false, + defaultEnabled: true, + isEngineModule: false, + dependencies: ['engine-core'], + exports: {} }; -export const {{name}}Plugin: IPluginLoader = { - descriptor, +export const {{name}}Plugin: IPlugin = { + manifest, runtimeModule: new {{name}}RuntimeModule(), editorModule: new {{name}}EditorModule() }; diff --git a/packages/physics-rapier2d-editor/src/Physics2DPlugin.ts b/packages/physics-rapier2d-editor/src/Physics2DPlugin.ts index 2f73ef07..4a0aa0f4 100644 --- a/packages/physics-rapier2d-editor/src/Physics2DPlugin.ts +++ b/packages/physics-rapier2d-editor/src/Physics2DPlugin.ts @@ -3,27 +3,31 @@ * 完整的 2D 物理插件(运行时 + 编辑器) */ -import type { IPlugin, PluginDescriptor } from '@esengine/editor-core'; +import type { IPlugin, ModuleManifest } from '@esengine/editor-core'; import { PhysicsRuntimeModule } from '@esengine/physics-rapier2d/runtime'; import { physics2DEditorModule } from './Physics2DEditorModule'; /** - * Physics 2D 插件描述符 - * Physics 2D Plugin Descriptor + * Physics 2D 插件清单 + * Physics 2D Plugin Manifest */ -const descriptor: PluginDescriptor = { +const manifest: ModuleManifest = { id: '@esengine/physics-rapier2d', - name: 'Physics 2D', + name: '@esengine/physics-rapier2d', + displayName: 'Physics 2D', version: '1.0.0', description: 'Deterministic 2D physics with Rapier2D', - category: 'physics', - enabledByDefault: true, - isEnginePlugin: true, + category: 'Physics', + isCore: false, + defaultEnabled: true, + isEngineModule: true, canContainContent: false, - modules: [ - { name: 'Runtime', type: 'runtime', loadingPhase: 'default' }, - { name: 'Editor', type: 'editor', loadingPhase: 'postDefault' } - ] + requiresWasm: true, + dependencies: ['engine-core'], + exports: { + components: ['Rigidbody2DComponent', 'BoxCollider2DComponent', 'CircleCollider2DComponent'], + systems: ['PhysicsSystem'] + } }; /** @@ -31,7 +35,7 @@ const descriptor: PluginDescriptor = { * Complete Physics 2D Plugin (runtime + editor) */ export const Physics2DPlugin: IPlugin = { - descriptor, + manifest, runtimeModule: new PhysicsRuntimeModule(), editorModule: physics2DEditorModule };