Skip to content

ECS Framework API v2.2.13


ECS Framework API / IPlugin

Interface: IPlugin

Defined in: packages/core/src/Core/Plugin.ts:54

插件接口

所有插件都必须实现此接口。 插件提供了一种扩展框架功能的标准方式。

Example

typescript
class MyPlugin implements IPlugin {
    readonly name = 'my-plugin';
    readonly version = '1.0.0';
    readonly dependencies = ['other-plugin'];

    async install(core: Core, services: ServiceContainer) {
        // 注册服务
        services.registerSingleton(MyService);

        // 添加系统
        const world = core.getWorld();
        if (world) {
            world.addSystem(new MySystem());
        }
    }

    async uninstall() {
        // 清理资源
    }
}

Properties

name

readonly name: string

Defined in: packages/core/src/Core/Plugin.ts:60

插件唯一名称

用于依赖解析和插件管理。


version

readonly version: string

Defined in: packages/core/src/Core/Plugin.ts:67

插件版本

遵循语义化版本规范 (semver)。


dependencies?

readonly optional dependencies: readonly string[]

Defined in: packages/core/src/Core/Plugin.ts:74

依赖的其他插件名称列表

这些插件必须在当前插件之前安装。

Methods

install()

install(core, services): void | Promise<void>

Defined in: packages/core/src/Core/Plugin.ts:85

安装插件

在此方法中初始化插件,注册服务、系统等。 可以是同步或异步的。

Parameters

core

Core

Core实例,用于访问World等

services

ServiceContainer

服务容器,用于注册服务

Returns

void | Promise<void>


uninstall()

uninstall(): void | Promise<void>

Defined in: packages/core/src/Core/Plugin.ts:93

卸载插件

清理插件占用的资源。 可以是同步或异步的。

Returns

void | Promise<void>

Released under the MIT License.