Files
esengine/packages/material-system/src/MaterialSystemPlugin.ts
YHH 63f006ab62 feat: 添加跨平台运行时、资产系统和UI适配功能 (#256)
* feat(platform-common): 添加WASM加载器和环境检测API

* feat(rapier2d): 新增Rapier2D WASM绑定包

* feat(physics-rapier2d): 添加跨平台WASM加载器

* feat(asset-system): 添加运行时资产目录和bundle格式

* feat(asset-system-editor): 新增编辑器资产管理包

* feat(editor-core): 添加构建系统和模块管理

* feat(editor-app): 重构浏览器预览使用import maps

* feat(platform-web): 添加BrowserRuntime和资产读取

* feat(engine): 添加材质系统和着色器管理

* feat(material): 新增材质系统和着色器编辑器

* feat(tilemap): 增强tilemap编辑器和动画系统

* feat(modules): 添加module.json配置

* feat(core): 添加module.json和类型定义更新

* chore: 更新依赖和构建配置

* refactor(plugins): 更新插件模板使用ModuleManifest

* chore: 添加第三方依赖库

* chore: 移除BehaviourTree-ai和ecs-astar子模块

* docs: 更新README和文档主题样式

* fix: 修复Rust文档测试和添加rapier2d WASM绑定

* fix(tilemap-editor): 修复画布高DPI屏幕分辨率适配问题

* feat(ui): 添加UI屏幕适配系统(CanvasScaler/SafeArea)

* fix(ecs-engine-bindgen): 添加缺失的ecs-framework-math依赖

* fix: 添加缺失的包依赖修复CI构建

* fix: 修复CodeQL检测到的代码问题

* fix: 修复构建错误和缺失依赖

* fix: 修复类型检查错误

* fix(material-system): 修复tsconfig配置支持TypeScript项目引用

* fix(editor-core): 修复Rollup构建配置添加tauri external

* fix: 修复CodeQL检测到的代码问题

* fix: 修复CodeQL检测到的代码问题
2025-12-03 22:15:22 +08:00

97 lines
2.5 KiB
TypeScript
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
/**
* MaterialSystemPlugin for ES Engine.
* ES引擎的材质系统插件。
*
* 注意:材质系统不注册独立组件,材质作为渲染组件(如 SpriteComponent的属性使用
*/
import { MaterialManager, getMaterialManager } from './MaterialManager';
import { createLogger } from '@esengine/ecs-framework';
import type { IPlugin, ModuleManifest, IRuntimeModule } from '@esengine/engine-core';
/** Logger instance for MaterialRuntimeModule. | MaterialRuntimeModule的日志实例。 */
const logger = createLogger('MaterialRuntimeModule');
/**
* Runtime module interface for Material system.
* 材质系统的运行时模块接口。
*/
export interface IMaterialRuntimeModule {
onInitialize?(): Promise<void>;
onDestroy?(): void;
getMaterialManager(): MaterialManager;
}
/**
* Runtime module that provides material and shader functionality.
* 提供材质和着色器功能的运行时模块。
*
* 该模块提供:
* - MaterialManager: 材质资产管理
* - 材质文件加载和缓存
* - 与 Rust 引擎的材质/着色器桥接
*/
export class MaterialRuntimeModule implements IMaterialRuntimeModule {
private materialManager: MaterialManager;
constructor() {
this.materialManager = getMaterialManager();
}
/**
* Initialize the material system.
* 初始化材质系统。
*/
async onInitialize(): Promise<void> {
logger.info('Initialized');
}
/**
* Cleanup the material system.
* 清理材质系统。
*/
onDestroy(): void {
logger.info('Destroyed');
}
/**
* Get the material manager.
* 获取材质管理器。
*/
getMaterialManager(): MaterialManager {
return this.materialManager;
}
}
// Export singleton instance
export const materialRuntimeModule = new MaterialRuntimeModule();
/**
* Plugin manifest for Material System.
* 材质系统的插件清单。
*/
const manifest: ModuleManifest = {
id: 'material-system',
name: '@esengine/material-system',
displayName: 'Material System',
version: '1.0.0',
description: '材质和着色器系统',
category: 'Rendering',
icon: 'Palette',
isCore: true,
defaultEnabled: true,
isEngineModule: true,
dependencies: ['core', 'asset-system'],
exports: { other: ['Material', 'Shader', 'MaterialManager'] },
requiresWasm: false
};
/**
* Material System Plugin.
* 材质系统插件。
*/
export const MaterialSystemPlugin: IPlugin = {
manifest,
runtimeModule: materialRuntimeModule as IRuntimeModule
};