2025-12-01 22:28:51 +08:00
|
|
|
import type { ComponentRegistry as ComponentRegistryType } from '@esengine/ecs-framework';
|
2025-12-03 22:15:22 +08:00
|
|
|
import type { IRuntimeModule, IPlugin, ModuleManifest } from '@esengine/engine-core';
|
2025-12-01 22:28:51 +08:00
|
|
|
import { CameraComponent } from './CameraComponent';
|
|
|
|
|
|
|
|
|
|
class CameraRuntimeModule implements IRuntimeModule {
|
|
|
|
|
registerComponents(registry: typeof ComponentRegistryType): void {
|
|
|
|
|
registry.register(CameraComponent);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
2025-12-03 22:15:22 +08:00
|
|
|
const manifest: ModuleManifest = {
|
|
|
|
|
id: 'camera',
|
|
|
|
|
name: '@esengine/camera',
|
|
|
|
|
displayName: 'Camera',
|
2025-12-01 22:28:51 +08:00
|
|
|
version: '1.0.0',
|
|
|
|
|
description: '2D/3D 相机组件',
|
2025-12-03 22:15:22 +08:00
|
|
|
category: 'Rendering',
|
|
|
|
|
isCore: false,
|
|
|
|
|
defaultEnabled: true,
|
|
|
|
|
isEngineModule: true,
|
|
|
|
|
dependencies: ['core', 'math'],
|
|
|
|
|
exports: { components: ['CameraComponent'] }
|
2025-12-01 22:28:51 +08:00
|
|
|
};
|
|
|
|
|
|
|
|
|
|
export const CameraPlugin: IPlugin = {
|
2025-12-03 22:15:22 +08:00
|
|
|
manifest,
|
2025-12-01 22:28:51 +08:00
|
|
|
runtimeModule: new CameraRuntimeModule()
|
|
|
|
|
};
|