fix: 恢复 @esengine/ecs-framework 包名

上一个提交错误地将 npm 包名也改了,这里恢复正确的包名。
只更新 GitHub 仓库 URL,不改变 npm 包名。
This commit is contained in:
yhh
2025-12-08 21:26:35 +08:00
parent 240b165970
commit ad96edfad0
334 changed files with 558 additions and 558 deletions

View File

@@ -57,7 +57,7 @@ body:
id: version
attributes:
label: 版本 / Version
description: 使用的 @esengine/esengine 版本 / Version of @esengine/esengine
description: 使用的 @esengine/ecs-framework 版本 / Version of @esengine/ecs-framework
placeholder: 例如 / e.g., 2.2.8
validations:
required: true
@@ -102,7 +102,7 @@ body:
description: 如果可能,提供最小可复现代码 / If possible, provide minimal reproducible code
render: typescript
placeholder: |
import { Core, Scene, Entity } from '@esengine/esengine';
import { Core, Scene, Entity } from '@esengine/ecs-framework';
// 你的代码 / Your code here
validations:

View File

@@ -116,7 +116,7 @@ jobs:
fi
# 检测 core
if echo "$TITLE $BODY" | grep -iE "(@esengine/esengine|packages/core|core package|核心包)" > /dev/null; then
if echo "$TITLE $BODY" | grep -iE "(@esengine/ecs-framework|packages/core|core package|核心包)" > /dev/null; then
LABELS_TO_ADD="$LABELS_TO_ADD core"
echo " 🎯 检测到: core"
fi

View File

@@ -1,6 +1,6 @@
[
{
"name": "@esengine/esengine (ESM)",
"name": "@esengine/ecs-framework (ESM)",
"path": "packages/core/dist/esm/index.js",
"import": "*",
"limit": "50 KB",
@@ -8,7 +8,7 @@
"gzip": true
},
{
"name": "@esengine/esengine (UMD)",
"name": "@esengine/ecs-framework (UMD)",
"path": "packages/core/dist/umd/ecs-framework.js",
"limit": "60 KB",
"webpack": false,

View File

@@ -35,7 +35,7 @@ This project follows the [Conventional Commits](https://www.conventionalcommits.
### 范围 / Scope
- **core**: 核心包 @esengine/esengine
- **core**: 核心包 @esengine/ecs-framework
- **math**: 数学库包
- **editor**: 编辑器
- **docs**: 文档

View File

@@ -25,7 +25,7 @@ ESEngine is completely free and open source under the MIT license. No strings at
### Using npm
```bash
npm install @esengine/esengine
npm install @esengine/ecs-framework
```
### Building from Source
@@ -42,7 +42,7 @@ Pre-built editor binaries are available on the [Releases](https://github.com/ese
import {
Core, Scene, Entity, Component, EntitySystem,
Matcher, Time, ECSComponent, ECSSystem
} from '@esengine/esengine';
} from '@esengine/ecs-framework';
@ECSComponent('Position')
class Position extends Component {
@@ -102,7 +102,7 @@ ESEngine is organized into modular packages. Each feature has a runtime module a
| Package | Description |
|---------|-------------|
| `@esengine/esengine` | Core ECS framework with entity management, component system, and queries |
| `@esengine/ecs-framework` | Core ECS framework with entity management, component system, and queries |
| `@esengine/math` | Vector, matrix, and mathematical utilities |
| `@esengine/engine` | Rust/WASM 2D renderer |
| `@esengine/engine-core` | Engine module system and lifecycle management |

View File

@@ -25,7 +25,7 @@ ESEngine 基于 MIT 协议完全免费开源。无附加条件,无版税。你
### 通过 npm 安装
```bash
npm install @esengine/esengine
npm install @esengine/ecs-framework
```
### 从源码构建
@@ -42,7 +42,7 @@ npm install @esengine/esengine
import {
Core, Scene, Entity, Component, EntitySystem,
Matcher, Time, ECSComponent, ECSSystem
} from '@esengine/esengine';
} from '@esengine/ecs-framework';
@ECSComponent('Position')
class Position extends Component {
@@ -102,7 +102,7 @@ ESEngine 采用模块化组织。每个功能都有运行时模块和可选的
| 包名 | 描述 |
|------|------|
| `@esengine/esengine` | ECS 框架核心,包含实体管理、组件系统和查询 |
| `@esengine/ecs-framework` | ECS 框架核心,包含实体管理、组件系统和查询 |
| `@esengine/math` | 向量、矩阵和数学工具 |
| `@esengine/engine` | Rust/WASM 2D 渲染器 |
| `@esengine/engine-core` | 引擎模块系统和生命周期管理 |

View File

@@ -1,6 +1,6 @@
# Changelog
本文档记录 `@esengine/esengine` 核心库的版本更新历史。
本文档记录 `@esengine/ecs-framework` 核心库的版本更新历史。
---
@@ -198,5 +198,5 @@
## 相关链接
- [GitHub Releases](https://github.com/esengine/esengine/releases)
- [NPM Package](https://www.npmjs.com/package/@esengine/esengine)
- [NPM Package](https://www.npmjs.com/package/@esengine/ecs-framework)
- [文档首页](./index.md)

View File

@@ -1,6 +1,6 @@
# Changelog
This document records the version update history of the `@esengine/esengine` core library.
This document records the version update history of the `@esengine/ecs-framework` core library.
---
@@ -196,5 +196,5 @@ This document records the version update history of the `@esengine/esengine` cor
## Related Links
- [GitHub Releases](https://github.com/esengine/esengine/releases)
- [NPM Package](https://www.npmjs.com/package/@esengine/esengine)
- [NPM Package](https://www.npmjs.com/package/@esengine/ecs-framework)
- [Documentation Home](./index.md)

View File

@@ -8,7 +8,7 @@ This guide will help you get started with ECS Framework, from installation to cr
```bash
# Using npm
npm install @esengine/esengine
npm install @esengine/ecs-framework
```
## Initialize Core
@@ -18,7 +18,7 @@ npm install @esengine/esengine
The core of ECS Framework is the `Core` class, a singleton that manages the entire framework lifecycle.
```typescript
import { Core } from '@esengine/esengine'
import { Core } from '@esengine/ecs-framework'
// Method 1: Using config object (recommended)
const core = Core.create({
@@ -102,7 +102,7 @@ See engine integration examples: [Game Engine Integration](#game-engine-integrat
Components are pure data containers that store entity state:
```typescript
import { Component, ECSComponent } from '@esengine/esengine'
import { Component, ECSComponent } from '@esengine/ecs-framework'
// Position component
@ECSComponent('Position')
@@ -151,7 +151,7 @@ class Sprite extends Component {
Systems contain game logic and process entities with specific components. ECS Framework provides Matcher-based entity filtering:
```typescript
import { EntitySystem, Matcher, Time, ECSSystem } from '@esengine/esengine'
import { EntitySystem, Matcher, Time, ECSSystem } from '@esengine/ecs-framework'
// Movement system - handles position and velocity
@ECSSystem('MovementSystem')
@@ -219,7 +219,7 @@ class RenderSystem extends EntitySystem {
Recommended to extend Scene class for custom scenes:
```typescript
import { Scene } from '@esengine/esengine'
import { Scene } from '@esengine/ecs-framework'
// Recommended: Extend Scene for custom scene
class GameScene extends Scene {
@@ -264,7 +264,7 @@ player.addComponent(new Sprite("player.png", 64, 64));
Core has built-in scene management, very simple to use:
```typescript
import { Core, Scene } from '@esengine/esengine';
import { Core, Scene } from '@esengine/ecs-framework';
// Initialize Core
Core.create({ debug: true });
@@ -304,7 +304,7 @@ const player = Core.ecsAPI?.createEntity('Player')
Only for complex server-side applications (MMO game servers, game room systems, etc.):
```typescript
import { Core, WorldManager } from '@esengine/esengine';
import { Core, WorldManager } from '@esengine/ecs-framework';
// Initialize Core
Core.create({ debug: true });
@@ -338,7 +338,7 @@ function gameLoop(deltaTime: number) {
```typescript
import { Stage } from "laya/display/Stage";
import { Laya } from "Laya";
import { Core } from '@esengine/esengine';
import { Core } from '@esengine/ecs-framework';
// Initialize Laya
Laya.init(800, 600).then(() => {
@@ -358,7 +358,7 @@ Laya.init(800, 600).then(() => {
```typescript
import { Component, _decorator } from 'cc';
import { Core } from '@esengine/esengine';
import { Core } from '@esengine/ecs-framework';
const { ccclass } = _decorator;

View File

@@ -18,7 +18,7 @@ In the ECS framework, entities have two lifecycle policies:
### Creating a Persistent Entity
```typescript
import { Scene } from '@esengine/esengine';
import { Scene } from '@esengine/ecs-framework';
class GameScene extends Scene {
protected initialize(): void {
@@ -38,7 +38,7 @@ class GameScene extends Scene {
### Behavior During Scene Transitions
```typescript
import { Core, Scene } from '@esengine/esengine';
import { Core, Scene } from '@esengine/ecs-framework';
// Initial scene
class Level1Scene extends Scene {
@@ -147,7 +147,7 @@ public get lifecyclePolicy(): EEntityLifecyclePolicy
**Example**:
```typescript
import { EEntityLifecyclePolicy } from '@esengine/esengine';
import { EEntityLifecyclePolicy } from '@esengine/ecs-framework';
if (entity.lifecyclePolicy === EEntityLifecyclePolicy.Persistent) {
console.log('Persistent entity');

View File

@@ -28,7 +28,7 @@ SceneManager is suitable for:
This is the simplest and recommended approach, suitable for most applications:
```typescript
import { Core, Scene } from '@esengine/esengine';
import { Core, Scene } from '@esengine/ecs-framework';
// 1. Initialize Core
Core.create({ debug: true });
@@ -78,7 +78,7 @@ update(deltaTime: number) {
If you need more control, you can use SceneManager directly:
```typescript
import { Core, SceneManager, Scene } from '@esengine/esengine';
import { Core, SceneManager, Scene } from '@esengine/ecs-framework';
// Initialize Core
Core.create({ debug: true });

View File

@@ -34,7 +34,7 @@ This document focuses on the usage of the Scene class itself. For detailed infor
**Recommended: Inherit the Scene class to create custom scenes**
```typescript
import { Scene, EntitySystem } from '@esengine/esengine';
import { Scene, EntitySystem } from '@esengine/ecs-framework';
class GameScene extends Scene {
protected initialize(): void {
@@ -81,7 +81,7 @@ class GameScene extends Scene {
### Using Scene Configuration
```typescript
import { ISceneConfig } from '@esengine/esengine';
import { ISceneConfig } from '@esengine/ecs-framework';
const config: ISceneConfig = {
name: "MainGame",

View File

@@ -19,7 +19,7 @@ The framework provides several different system base classes:
The most basic system class, all other systems inherit from it:
```typescript
import { EntitySystem, ECSSystem, Matcher } from '@esengine/esengine';
import { EntitySystem, ECSSystem, Matcher } from '@esengine/ecs-framework';
@ECSSystem('Movement')
class MovementSystem extends EntitySystem {
@@ -586,7 +586,7 @@ class GameScene extends Scene {
Systems implement the `IService` interface and support obtaining other services or systems through dependency injection:
```typescript
import { ECSSystem, Injectable, Inject } from '@esengine/esengine';
import { ECSSystem, Injectable, Inject } from '@esengine/ecs-framework';
@Injectable()
@ECSSystem('Physics')

View File

@@ -10,7 +10,7 @@
```typescript
import { GlobalBlackboardService } from '@esengine/behavior-tree';
import { Core } from '@esengine/esengine';
import { Core } from '@esengine/ecs-framework';
// 获取全局黑板服务
const globalBlackboard = Core.services.resolve(GlobalBlackboardService);
@@ -30,7 +30,7 @@ const playerCount = globalBlackboard.getValue<number>('playerCount');
```typescript
import { INodeExecutor, NodeExecutionContext, BindingHelper } from '@esengine/behavior-tree';
import { GlobalBlackboardService } from '@esengine/behavior-tree';
import { Core } from '@esengine/esengine';
import { Core } from '@esengine/ecs-framework';
export class CheckGameState implements INodeExecutor {
execute(context: NodeExecutionContext): TaskStatus {

View File

@@ -24,7 +24,7 @@
### 基本使用
```typescript
import { Core } from '@esengine/esengine';
import { Core } from '@esengine/ecs-framework';
import {
BehaviorTreeAssetManager,
BehaviorTreeBuilder,
@@ -365,7 +365,7 @@ function onLevelStart() {
## 完整示例:多敌人类型的游戏
```typescript
import { Core, Scene } from '@esengine/esengine';
import { Core, Scene } from '@esengine/ecs-framework';
import {
BehaviorTreePlugin,
BehaviorTreeAssetManager,

View File

@@ -15,7 +15,7 @@
在你的 Cocos Creator 项目根目录下:
```bash
npm install @esengine/esengine @esengine/behavior-tree
npm install @esengine/ecs-framework @esengine/behavior-tree
```
### 步骤2配置 tsconfig.json
@@ -62,7 +62,7 @@ assets/
```typescript
import { _decorator, Component } from 'cc';
import { Core, Scene } from '@esengine/esengine';
import { Core, Scene } from '@esengine/ecs-framework';
import { BehaviorTreePlugin } from '@esengine/behavior-tree';
const { ccclass } = _decorator;
@@ -110,7 +110,7 @@ export class Main extends Component {
```typescript
import { _decorator, Component, Node } from 'cc';
import { Core, Entity } from '@esengine/esengine';
import { Core, Entity } from '@esengine/ecs-framework';
import {
BehaviorTreeBuilder,
BehaviorTreeStarter,
@@ -313,7 +313,7 @@ export class PlayerDetector extends Component {
框架提供了 `BehaviorTreeAssetManager` 来统一管理行为树资产,避免重复创建:
```typescript
import { Core } from '@esengine/esengine';
import { Core } from '@esengine/ecs-framework';
import {
BehaviorTreeAssetManager,
BehaviorTreeBuilder,
@@ -359,7 +359,7 @@ assets/
```typescript
import { resources, JsonAsset } from 'cc';
import { Core } from '@esengine/esengine';
import { Core } from '@esengine/ecs-framework';
import {
BehaviorTreeAssetManager,
BehaviorTreeAssetSerializer,
@@ -422,7 +422,7 @@ export class BehaviorTreeLoader {
```typescript
import { _decorator, Component } from 'cc';
import { Core, Scene } from '@esengine/esengine';
import { Core, Scene } from '@esengine/ecs-framework';
import { BehaviorTreePlugin } from '@esengine/behavior-tree';
import { BehaviorTreeLoader } from './BehaviorTreeLoader';
@@ -471,7 +471,7 @@ export class Main extends Component {
```typescript
import { _decorator, Component } from 'cc';
import { Core, Entity } from '@esengine/esengine';
import { Core, Entity } from '@esengine/ecs-framework';
import {
BehaviorTreeAssetManager,
BehaviorTreeStarter

View File

@@ -331,7 +331,7 @@ const tree = BehaviorTreeBuilder.create('BlackboardOps')
```typescript
import { GlobalBlackboardService } from '@esengine/behavior-tree';
import { Core } from '@esengine/esengine';
import { Core } from '@esengine/ecs-framework';
const globalBlackboard = Core.services.resolve(GlobalBlackboardService);
@@ -347,7 +347,7 @@ const gameState = globalBlackboard.getValue('gameState');
```typescript
import { GlobalBlackboardService } from '@esengine/behavior-tree';
import { Core } from '@esengine/esengine';
import { Core } from '@esengine/ecs-framework';
export class CheckGameState implements INodeExecutor {
execute(context: NodeExecutionContext): TaskStatus {

View File

@@ -626,7 +626,7 @@ import './executors/CheckHealth';
```typescript
// src/main.ts
import { Core } from '@esengine/esengine';
import { Core } from '@esengine/ecs-framework';
import { BehaviorTreePlugin } from '@esengine/behavior-tree';
// 导入自定义执行器
@@ -650,7 +650,7 @@ async function main() {
// my-behavior-plugin/src/plugin.ts
import type { IEditorPlugin } from '@esengine/editor-core';
import { EditorPluginCategory } from '@esengine/editor-core';
import type { Core, ServiceContainer } from '@esengine/esengine';
import type { Core, ServiceContainer } from '@esengine/ecs-framework';
// 导入执行器(触发装饰器注册)
import './executors/AttackAction';

View File

@@ -86,7 +86,7 @@ npm run tauri:dev
```typescript
import { BehaviorTreeBuilder, BehaviorTreeStarter } from '@esengine/behavior-tree';
import { Core, Scene } from '@esengine/esengine';
import { Core, Scene } from '@esengine/ecs-framework';
// 使用Builder创建行为树
const tree = BehaviorTreeBuilder.create('EnemyAI')

View File

@@ -62,7 +62,7 @@ Root: Selector
推荐使用Builder API在代码中创建行为树
```typescript
import { Core, Scene } from '@esengine/esengine';
import { Core, Scene } from '@esengine/ecs-framework';
import {
BehaviorTreePlugin,
BehaviorTreeBuilder,
@@ -200,7 +200,7 @@ export class DebugAction implements INodeExecutor {
## 完整示例
```typescript
import { Core, Scene } from '@esengine/esengine';
import { Core, Scene } from '@esengine/ecs-framework';
import {
BehaviorTreePlugin,
BehaviorTreeBuilder,

View File

@@ -15,7 +15,7 @@ npm install @esengine/behavior-tree
### 步骤1: 导入依赖
```typescript
import { Core, Scene, Entity } from '@esengine/esengine';
import { Core, Scene, Entity } from '@esengine/ecs-framework';
import {
BehaviorTreeBuilder,
BehaviorTreeStarter,
@@ -113,7 +113,7 @@ setTimeout(() => {
## 完整代码
```typescript
import { Core, Scene } from '@esengine/esengine';
import { Core, Scene } from '@esengine/ecs-framework';
import {
BehaviorTreeBuilder,
BehaviorTreeStarter,

View File

@@ -70,7 +70,7 @@
### 使用Builder创建
```typescript
import { Core, Scene } from '@esengine/esengine';
import { Core, Scene } from '@esengine/ecs-framework';
import {
BehaviorTreeBuilder,
BehaviorTreeStarter,

View File

@@ -13,7 +13,7 @@
在你的 Laya 项目根目录下:
```bash
npm install @esengine/esengine @esengine/behavior-tree
npm install @esengine/ecs-framework @esengine/behavior-tree
```
## 项目结构
@@ -40,7 +40,7 @@ resources/
### 在Main.ts中初始化
```typescript
import { Core, Scene } from '@esengine/esengine';
import { Core, Scene } from '@esengine/ecs-framework';
import { BehaviorTreePlugin } from '@esengine/behavior-tree';
export class Main {
@@ -85,7 +85,7 @@ new Main();
## 创建AI组件
```typescript
import { Core, Entity } from '@esengine/esengine';
import { Core, Entity } from '@esengine/ecs-framework';
import {
BehaviorTreeBuilder,
BehaviorTreeStarter,
@@ -156,7 +156,7 @@ import {
BehaviorTreeRuntimeComponent
} from '@esengine/behavior-tree';
import { TaskStatus, NodeType } from '@esengine/behavior-tree';
import { Core, Entity } from '@esengine/esengine';
import { Core, Entity } from '@esengine/ecs-framework';
// 自定义移动执行器
@NodeExecutorMetadata({

View File

@@ -17,7 +17,7 @@
### 安装
```bash
npm install @esengine/esengine @esengine/behavior-tree
npm install @esengine/ecs-framework @esengine/behavior-tree
```
### TypeScript 配置
@@ -41,7 +41,7 @@ npm install @esengine/esengine @esengine/behavior-tree
### 简单的游戏服务器 NPC
```typescript
import { Core, Scene } from '@esengine/esengine';
import { Core, Scene } from '@esengine/ecs-framework';
import {
BehaviorTreePlugin,
BehaviorTreeBuilder,
@@ -109,7 +109,7 @@ startServer();
创建一个基于行为树的智能聊天机器人:
```typescript
import { Core, Scene, Entity } from '@esengine/esengine';
import { Core, Scene, Entity } from '@esengine/ecs-framework';
import {
BehaviorTreePlugin,
BehaviorTreeBuilder,
@@ -273,7 +273,7 @@ main();
### 房间管理系统
```typescript
import { Core, Scene, Entity } from '@esengine/esengine';
import { Core, Scene, Entity } from '@esengine/ecs-framework';
import {
BehaviorTreePlugin,
BehaviorTreeBuilder,
@@ -519,7 +519,7 @@ setInterval(() => {
```typescript
import express from 'express';
import { Core, Scene } from '@esengine/esengine';
import { Core, Scene } from '@esengine/ecs-framework';
const app = express();
const scene = new Scene();

View File

@@ -15,7 +15,7 @@
### 基础组件定义
```typescript
import { Component, ECSComponent } from '@esengine/esengine';
import { Component, ECSComponent } from '@esengine/ecs-framework';
@ECSComponent('Position')
class Position extends Component {
@@ -105,7 +105,7 @@ class BadComponent extends Component {
当组件需要支持序列化时,`@ECSComponent``@Serializable` 需要一起使用:
```typescript
import { Component, ECSComponent, Serializable, Serialize } from '@esengine/esengine';
import { Component, ECSComponent, Serializable, Serialize } from '@esengine/ecs-framework';
@ECSComponent('Player')
@Serializable({ version: 1 })
@@ -533,7 +533,7 @@ class BadFollower extends Component {
#### 基本用法
```typescript
import { Component, ECSComponent, EntityRef, Entity } from '@esengine/esengine';
import { Component, ECSComponent, EntityRef, Entity } from '@esengine/ecs-framework';
@ECSComponent('Parent')
class ParentComponent extends Component {

View File

@@ -19,7 +19,7 @@ QuerySystem 负责实际执行查询,内部使用响应式查询机制自动优
### 基础用法
```typescript
import { EntitySystem, Matcher, Entity, Component } from '@esengine/esengine';
import { EntitySystem, Matcher, Entity, Component } from '@esengine/ecs-framework';
class PositionComponent extends Component {
public x: number = 0;

View File

@@ -38,7 +38,7 @@ const player = scene.createEntity("Player");
实体通过添加组件来获得功能:
```typescript
import { Component, ECSComponent } from '@esengine/esengine';
import { Component, ECSComponent } from '@esengine/ecs-framework';
// 定义位置组件
@ECSComponent('Position')

View File

@@ -266,7 +266,7 @@ class GameScene extends Scene {
对于跨场景的事件通信,可以使用全局事件总线:
```typescript
import { GlobalEventBus } from '@esengine/esengine';
import { GlobalEventBus } from '@esengine/ecs-framework';
class GameManager {
private eventBus = GlobalEventBus.getInstance();
@@ -374,7 +374,7 @@ class MovementSystem extends EntitySystem {
框架提供了一些预定义的 ECS 生命周期事件:
```typescript
import { ECSEventType } from '@esengine/esengine';
import { ECSEventType } from '@esengine/ecs-framework';
class ECSMonitor {
private eventBus = GlobalEventBus.getInstance();

View File

@@ -8,7 +8,7 @@
```bash
# 使用 npm
npm install @esengine/esengine
npm install @esengine/ecs-framework
```
## 初始化 Core
@@ -18,7 +18,7 @@ npm install @esengine/esengine
ECS Framework 的核心是 `Core` 类,它是一个单例模式,负责管理整个框架的生命周期。
```typescript
import { Core } from '@esengine/esengine'
import { Core } from '@esengine/ecs-framework'
// 方式1使用配置对象推荐
const core = Core.create({
@@ -102,7 +102,7 @@ const instance = Core.Instance; // 获取当前实例,如果未创建则为 n
组件是纯数据容器,用于存储实体的状态:
```typescript
import { Component, ECSComponent } from '@esengine/esengine'
import { Component, ECSComponent } from '@esengine/ecs-framework'
// 位置组件
@ECSComponent('Position')
@@ -151,7 +151,7 @@ class Sprite extends Component {
系统包含游戏逻辑处理具有特定组件的实体。ECS Framework 提供了基于 Matcher 的实体过滤机制:
```typescript
import { EntitySystem, Matcher, Time, ECSSystem } from '@esengine/esengine'
import { EntitySystem, Matcher, Time, ECSSystem } from '@esengine/ecs-framework'
// 移动系统 - 处理位置和速度
@ECSSystem('MovementSystem')
@@ -219,7 +219,7 @@ class RenderSystem extends EntitySystem {
推荐继承 Scene 类来创建自定义场景:
```typescript
import { Scene } from '@esengine/esengine'
import { Scene } from '@esengine/ecs-framework'
// 推荐继承Scene创建自定义场景
class GameScene extends Scene {
@@ -264,7 +264,7 @@ player.addComponent(new Sprite("player.png", 64, 64));
Core 内置了场景管理功能,使用非常简单:
```typescript
import { Core, Scene } from '@esengine/esengine';
import { Core, Scene } from '@esengine/ecs-framework';
// 初始化Core
Core.create({ debug: true });
@@ -304,7 +304,7 @@ const player = Core.ecsAPI?.createEntity('Player')
仅适用于复杂的服务器端应用MMO游戏服务器、游戏房间系统等
```typescript
import { Core, WorldManager } from '@esengine/esengine';
import { Core, WorldManager } from '@esengine/ecs-framework';
// 初始化Core
Core.create({ debug: true });
@@ -338,7 +338,7 @@ function gameLoop(deltaTime: number) {
```typescript
import { Stage } from "laya/display/Stage";
import { Laya } from "Laya";
import { Core } from '@esengine/esengine';
import { Core } from '@esengine/ecs-framework';
// 初始化 Laya
Laya.init(800, 600).then(() => {
@@ -358,7 +358,7 @@ Laya.init(800, 600).then(() => {
```typescript
import { Component, _decorator } from 'cc';
import { Core } from '@esengine/esengine';
import { Core } from '@esengine/ecs-framework';
const { ccclass } = _decorator;

View File

@@ -20,7 +20,7 @@
存储层级关系数据的组件:
```typescript
import { HierarchyComponent } from '@esengine/esengine';
import { HierarchyComponent } from '@esengine/ecs-framework';
// HierarchyComponent 的核心属性
interface HierarchyComponent {
@@ -36,7 +36,7 @@ interface HierarchyComponent {
处理层级逻辑的系统,提供所有层级操作的 API
```typescript
import { HierarchySystem } from '@esengine/esengine';
import { HierarchySystem } from '@esengine/ecs-framework';
// 获取系统
const hierarchySystem = scene.getEntityProcessor(HierarchySystem);
@@ -47,7 +47,7 @@ const hierarchySystem = scene.getEntityProcessor(HierarchySystem);
### 添加系统到场景
```typescript
import { Scene, HierarchySystem } from '@esengine/esengine';
import { Scene, HierarchySystem } from '@esengine/ecs-framework';
class GameScene extends Scene {
protected initialize(): void {
@@ -256,7 +256,7 @@ import {
Scene,
HierarchySystem,
HierarchyComponent
} from '@esengine/esengine';
} from '@esengine/ecs-framework';
class GameScene extends Scene {
private hierarchySystem!: HierarchySystem;
@@ -319,7 +319,7 @@ class GameScene extends Scene {
结合 Transform 组件实现层级变换:
```typescript
import { EntitySystem, Matcher, HierarchySystem, HierarchyComponent } from '@esengine/esengine';
import { EntitySystem, Matcher, HierarchySystem, HierarchyComponent } from '@esengine/ecs-framework';
class HierarchyTransformSystem extends EntitySystem {
private hierarchySystem!: HierarchySystem;

View File

@@ -13,7 +13,7 @@ ECS 框架提供了功能强大的分级日志系统,支持多种日志级别
## 日志级别
```typescript
import { LogLevel } from '@esengine/esengine';
import { LogLevel } from '@esengine/ecs-framework';
// 日志级别从低到高
LogLevel.Debug // 0 - 调试信息
@@ -29,7 +29,7 @@ LogLevel.None // 5 - 不输出任何日志
### 使用默认日志器
```typescript
import { Logger } from '@esengine/esengine';
import { Logger } from '@esengine/ecs-framework';
class GameSystem extends EntitySystem {
protected process(entities: readonly Entity[]): void {
@@ -46,7 +46,7 @@ class GameSystem extends EntitySystem {
### 创建命名日志器
```typescript
import { createLogger } from '@esengine/esengine';
import { createLogger } from '@esengine/ecs-framework';
class MovementSystem extends EntitySystem {
private logger = createLogger('MovementSystem');
@@ -103,7 +103,7 @@ class Scene {
### 设置全局日志级别
```typescript
import { setGlobalLogLevel, LogLevel } from '@esengine/esengine';
import { setGlobalLogLevel, LogLevel } from '@esengine/ecs-framework';
// 在开发环境显示所有日志
setGlobalLogLevel(LogLevel.Debug);
@@ -118,7 +118,7 @@ setGlobalLogLevel(LogLevel.None);
### 创建自定义配置的日志器
```typescript
import { ConsoleLogger, LogLevel } from '@esengine/esengine';
import { ConsoleLogger, LogLevel } from '@esengine/ecs-framework';
class CustomLoggerExample {
private debugLogger: ConsoleLogger;
@@ -159,7 +159,7 @@ class CustomLoggerExample {
### 使用预定义颜色
```typescript
import { Colors, setLoggerColors } from '@esengine/esengine';
import { Colors, setLoggerColors } from '@esengine/ecs-framework';
// 自定义颜色方案
setLoggerColors({
@@ -174,7 +174,7 @@ setLoggerColors({
### 完整颜色示例
```typescript
import { LoggerManager, Colors, LogLevel } from '@esengine/esengine';
import { LoggerManager, Colors, LogLevel } from '@esengine/ecs-framework';
class ColorLoggerDemo {
private logger = createLogger('ColorDemo');
@@ -211,7 +211,7 @@ class ColorLoggerDemo {
### 分层日志器
```typescript
import { LoggerManager } from '@esengine/esengine';
import { LoggerManager } from '@esengine/ecs-framework';
class HierarchicalLoggingExample {
private systemLogger = createLogger('GameSystems');
@@ -247,7 +247,7 @@ class HierarchicalLoggingExample {
#### 基本用法
```typescript
import { setLoggerFactory } from '@esengine/esengine';
import { setLoggerFactory } from '@esengine/ecs-framework';
setLoggerFactory((name?: string) => {
// 返回实现 ILogger 接口的日志器实例
@@ -285,7 +285,7 @@ class PlayerMovementSystem extends EntitySystem {
### 自定义输出
```typescript
import { ConsoleLogger, LogLevel } from '@esengine/esengine';
import { ConsoleLogger, LogLevel } from '@esengine/ecs-framework';
class CustomOutputLogger {
private fileLogger: ConsoleLogger;

View File

@@ -18,7 +18,7 @@
### 创建持久化实体
```typescript
import { Scene } from '@esengine/esengine';
import { Scene } from '@esengine/ecs-framework';
class GameScene extends Scene {
protected initialize(): void {
@@ -38,7 +38,7 @@ class GameScene extends Scene {
### 场景切换时的行为
```typescript
import { Core, Scene } from '@esengine/esengine';
import { Core, Scene } from '@esengine/ecs-framework';
// 初始场景
class Level1Scene extends Scene {
@@ -147,7 +147,7 @@ public get lifecyclePolicy(): EEntityLifecyclePolicy
**示例**:
```typescript
import { EEntityLifecyclePolicy } from '@esengine/esengine';
import { EEntityLifecyclePolicy } from '@esengine/ecs-framework';
if (entity.lifecyclePolicy === EEntityLifecyclePolicy.Persistent) {
console.log('持久化实体');

View File

@@ -95,7 +95,7 @@ export interface PlatformWorker {
根据你的运行环境选择对应的适配器:
```typescript
import { PlatformManager } from '@esengine/esengine';
import { PlatformManager } from '@esengine/ecs-framework';
// 浏览器环境
if (typeof window !== 'undefined') {
@@ -140,7 +140,7 @@ if (manager.hasAdapter()) {
### 1. 实现接口
```typescript
import type { IPlatformAdapter, PlatformWorker, WorkerCreationOptions, PlatformConfig } from '@esengine/esengine';
import type { IPlatformAdapter, PlatformWorker, WorkerCreationOptions, PlatformConfig } from '@esengine/ecs-framework';
export class CustomAdapter implements IPlatformAdapter {
public readonly name = 'custom';
@@ -189,7 +189,7 @@ export class CustomAdapter implements IPlatformAdapter {
### 2. 注册自定义适配器
```typescript
import { PlatformManager } from '@esengine/esengine';
import { PlatformManager } from '@esengine/ecs-framework';
import { CustomAdapter } from './CustomAdapter';
const customAdapter = new CustomAdapter();

View File

@@ -20,7 +20,7 @@ import type {
PlatformWorker,
WorkerCreationOptions,
PlatformConfig
} from '@esengine/esengine';
} from '@esengine/ecs-framework';
/**
* 浏览器平台适配器
@@ -231,7 +231,7 @@ class BrowserWorker implements PlatformWorker {
### 2. 注册适配器
```typescript
import { PlatformManager } from '@esengine/esengine';
import { PlatformManager } from '@esengine/ecs-framework';
import { BrowserAdapter } from './platform/BrowserAdapter';
// 创建并注册浏览器适配器
@@ -246,7 +246,7 @@ PlatformManager.registerAdapter(browserAdapter);
浏览器适配器与 WorkerEntitySystem 配合使用,框架会自动处理 Worker 脚本的创建:
```typescript
import { WorkerEntitySystem, Matcher } from '@esengine/esengine';
import { WorkerEntitySystem, Matcher } from '@esengine/ecs-framework';
class PhysicsSystem extends WorkerEntitySystem {
constructor() {

View File

@@ -26,7 +26,7 @@ import type {
WorkerCreationOptions,
PlatformConfig,
NodeDeviceInfo
} from '@esengine/esengine';
} from '@esengine/ecs-framework';
/**
* Node.js 平台适配器
@@ -353,7 +353,7 @@ class NodeWorker implements PlatformWorker {
### 2. 注册适配器
```typescript
import { PlatformManager } from '@esengine/esengine';
import { PlatformManager } from '@esengine/ecs-framework';
import { NodeAdapter } from './platform/NodeAdapter';
// 检查是否在Node.js环境
@@ -368,7 +368,7 @@ if (typeof process !== 'undefined' && process.versions && process.versions.node)
Node.js 适配器与 WorkerEntitySystem 配合使用,框架会自动处理 Worker 脚本的创建:
```typescript
import { WorkerEntitySystem, Matcher } from '@esengine/esengine';
import { WorkerEntitySystem, Matcher } from '@esengine/ecs-framework';
import * as os from 'os';
class PhysicsSystem extends WorkerEntitySystem {

View File

@@ -200,7 +200,7 @@ function processSharedArrayBuffer(startIndex, endIndex, deltaTime, systemConfig)
### 步骤 3使用 WorkerEntitySystem
```typescript
import { WorkerEntitySystem, Matcher, Entity } from '@esengine/esengine';
import { WorkerEntitySystem, Matcher, Entity } from '@esengine/ecs-framework';
interface PhysicsData {
id: number;
@@ -295,7 +295,7 @@ import type {
PlatformWorker,
WorkerCreationOptions,
PlatformConfig
} from '@esengine/esengine';
} from '@esengine/ecs-framework';
/**
* 微信小游戏平台适配器
@@ -430,7 +430,7 @@ class WeChatWorker implements PlatformWorker {
## 注册适配器
```typescript
import { PlatformManager } from '@esengine/esengine';
import { PlatformManager } from '@esengine/ecs-framework';
import { WeChatMiniGameAdapter } from './platform/WeChatMiniGameAdapter';
// 在游戏启动时注册适配器

View File

@@ -27,7 +27,7 @@
创建一个简单的调试插件:
```typescript
import { IPlugin, Core, ServiceContainer } from '@esengine/esengine';
import { IPlugin, Core, ServiceContainer } from '@esengine/ecs-framework';
class DebugPlugin implements IPlugin {
readonly name = 'debug-plugin';
@@ -51,7 +51,7 @@ class DebugPlugin implements IPlugin {
使用 `Core.installPlugin()` 安装插件:
```typescript
import { Core } from '@esengine/esengine';
import { Core } from '@esengine/ecs-framework';
// 初始化Core
Core.create({ debug: true });
@@ -204,7 +204,7 @@ await Core.installPlugin(new AsyncPlugin());
插件可以向服务容器注册自己的服务:
```typescript
import { IService } from '@esengine/esengine';
import { IService } from '@esengine/ecs-framework';
class NetworkService implements IService {
connect(url: string) {
@@ -240,7 +240,7 @@ class NetworkPlugin implements IPlugin {
插件可以向场景添加自定义系统:
```typescript
import { EntitySystem, Matcher } from '@esengine/esengine';
import { EntitySystem, Matcher } from '@esengine/ecs-framework';
class PhysicsSystem extends EntitySystem {
constructor() {
@@ -393,7 +393,7 @@ for (const meta of allMetadata) {
### 网络同步插件
```typescript
import { IPlugin, IService, Core, ServiceContainer } from '@esengine/esengine';
import { IPlugin, IService, Core, ServiceContainer } from '@esengine/ecs-framework';
class NetworkSyncService implements IService {
private ws?: WebSocket;

View File

@@ -28,7 +28,7 @@ SceneManager 适合以下场景:
这是最简单和推荐的方式,适合大多数应用:
```typescript
import { Core, Scene } from '@esengine/esengine';
import { Core, Scene } from '@esengine/ecs-framework';
// 1. 初始化 Core
Core.create({ debug: true });
@@ -78,7 +78,7 @@ update(deltaTime: number) {
如果需要更多控制,可以直接使用 SceneManager
```typescript
import { Core, SceneManager, Scene } from '@esengine/esengine';
import { Core, SceneManager, Scene } from '@esengine/ecs-framework';
// 初始化 Core
Core.create({ debug: true });
@@ -146,7 +146,7 @@ class GameOverSystem extends EntitySystem {
### 完整的场景切换示例
```typescript
import { Core, Scene } from '@esengine/esengine';
import { Core, Scene } from '@esengine/ecs-framework';
// 初始化
Core.create({ debug: true });
@@ -564,7 +564,7 @@ Core (全局服务)
## 完整示例
```typescript
import { Core, Scene, EntitySystem, Entity, Matcher } from '@esengine/esengine';
import { Core, Scene, EntitySystem, Entity, Matcher } from '@esengine/ecs-framework';
// 定义组件
class Transform {

View File

@@ -34,7 +34,7 @@ ECS Framework 提供了两种场景管理方式:
**推荐做法:继承 Scene 类来创建自定义场景**
```typescript
import { Scene, EntitySystem } from '@esengine/esengine';
import { Scene, EntitySystem } from '@esengine/ecs-framework';
class GameScene extends Scene {
protected initialize(): void {
@@ -81,7 +81,7 @@ class GameScene extends Scene {
### 使用场景配置
```typescript
import { ISceneConfig } from '@esengine/esengine';
import { ISceneConfig } from '@esengine/ecs-framework';
const config: ISceneConfig = {
name: "MainGame",
@@ -558,7 +558,7 @@ class ProperInitScene extends Scene {
## 完整示例
```typescript
import { Scene, EntitySystem, Entity, Matcher } from '@esengine/esengine';
import { Scene, EntitySystem, Entity, Matcher } from '@esengine/ecs-framework';
// 定义组件
class Transform {
@@ -638,14 +638,14 @@ class GameScene extends Scene {
// 使用场景
// 方式1通过 SceneManager推荐
import { Core, SceneManager } from '@esengine/esengine';
import { Core, SceneManager } from '@esengine/ecs-framework';
Core.create({ debug: true });
const sceneManager = Core.services.resolve(SceneManager);
sceneManager.setScene(new GameScene());
// 方式2通过 WorldManager高级用例
import { WorldManager } from '@esengine/esengine';
import { WorldManager } from '@esengine/ecs-framework';
const worldManager = Core.services.resolve(WorldManager);
const world = worldManager.createWorld('game');

View File

@@ -35,7 +35,7 @@
使用 `@Serializable``@Serialize` 装饰器标记需要序列化的组件和字段:
```typescript
import { Component, ECSComponent, Serializable, Serialize } from '@esengine/esengine';
import { Component, ECSComponent, Serializable, Serialize } from '@esengine/ecs-framework';
@ECSComponent('Player')
@Serializable({ version: 1 })
@@ -505,7 +505,7 @@ enum ChangeOperation {
### 注册迁移函数
```typescript
import { VersionMigrationManager } from '@esengine/esengine';
import { VersionMigrationManager } from '@esengine/ecs-framework';
// 假设 PlayerComponent v1 有 hp 字段
// v2 改为 health 和 maxHealth 字段
@@ -531,7 +531,7 @@ VersionMigrationManager.registerComponentMigration(
### 使用迁移构建器
```typescript
import { MigrationBuilder } from '@esengine/esengine';
import { MigrationBuilder } from '@esengine/ecs-framework';
new MigrationBuilder()
.forComponent('Player')

View File

@@ -20,7 +20,7 @@
服务是实现了 `IService` 接口的类,必须提供 `dispose()` 方法用于资源清理:
```typescript
import { IService } from '@esengine/esengine';
import { IService } from '@esengine/ecs-framework';
class MyService implements IService {
constructor() {
@@ -73,7 +73,7 @@ ECS Framework 提供了三级服务容器:
应用程序全局服务容器,可以通过 `Core.services` 访问:
```typescript
import { Core } from '@esengine/esengine';
import { Core } from '@esengine/ecs-framework';
// 初始化Core
Core.create({ debug: true });
@@ -87,7 +87,7 @@ const container = Core.services;
每个 World 拥有独立的服务容器,用于管理 World 范围内的服务:
```typescript
import { World } from '@esengine/esengine';
import { World } from '@esengine/ecs-framework';
// 创建 World
const world = new World({ name: 'GameWorld' });
@@ -339,7 +339,7 @@ ECS Framework 提供了装饰器来简化依赖注入。
标记类为可注入的服务:
```typescript
import { Injectable, IService } from '@esengine/esengine';
import { Injectable, IService } from '@esengine/ecs-framework';
@Injectable()
class GameService implements IService {
@@ -358,7 +358,7 @@ class GameService implements IService {
通过属性装饰器注入依赖。注入时机是在构造函数执行后、`onInitialize()` 调用前完成:
```typescript
import { Injectable, InjectProperty, IService } from '@esengine/esengine';
import { Injectable, InjectProperty, IService } from '@esengine/ecs-framework';
@Injectable()
class PlayerService implements IService {
@@ -408,7 +408,7 @@ class CombatSystem extends EntitySystem {
使用 `registerInjectable` 自动处理依赖注入:
```typescript
import { registerInjectable } from '@esengine/esengine';
import { registerInjectable } from '@esengine/ecs-framework';
// 注册服务(会自动解析 @InjectProperty 依赖)
registerInjectable(Core.services, PlayerService);
@@ -422,7 +422,7 @@ const player = Core.services.resolve(PlayerService);
标记服务为可更新的,使其在每帧自动被调用:
```typescript
import { Injectable, Updatable, IService, IUpdatable } from '@esengine/esengine';
import { Injectable, Updatable, IService, IUpdatable } from '@esengine/ecs-framework';
@Injectable()
@Updatable() // 默认优先级为0
@@ -466,7 +466,7 @@ function gameLoop(deltaTime: number) {
实现 `IService` 接口并注册到容器:
```typescript
import { IService } from '@esengine/esengine';
import { IService } from '@esengine/ecs-framework';
class AudioService implements IService {
private sounds: Map<string, HTMLAudioElement> = new Map();

View File

@@ -19,7 +19,7 @@
最基础的系统类,所有其他系统都继承自它:
```typescript
import { EntitySystem, ECSSystem, Matcher } from '@esengine/esengine';
import { EntitySystem, ECSSystem, Matcher } from '@esengine/ecs-framework';
@ECSSystem('Movement')
class MovementSystem extends EntitySystem {
@@ -586,7 +586,7 @@ class GameScene extends Scene {
系统实现了 `IService` 接口,支持通过依赖注入获取其他服务或系统:
```typescript
import { ECSSystem, Injectable, Inject } from '@esengine/esengine';
import { ECSSystem, Injectable, Inject } from '@esengine/ecs-framework';
@Injectable()
@ECSSystem('Physics')

View File

@@ -9,7 +9,7 @@ Time 类是框架的时间管理核心,提供了游戏时间相关的所有功
### 基本时间属性
```typescript
import { Time } from '@esengine/esengine';
import { Time } from '@esengine/ecs-framework';
class GameSystem extends EntitySystem {
protected process(entities: readonly Entity[]): void {
@@ -124,7 +124,7 @@ Core 提供了强大的定时器调度功能,可以创建一次性或重复执
### 基本定时器使用
```typescript
import { Core } from '@esengine/esengine';
import { Core } from '@esengine/ecs-framework';
class GameScene extends Scene {
protected initialize(): void {

View File

@@ -27,7 +27,7 @@ WorldManager 适合以下高级场景:
WorldManager 是 Core 的内置服务,通过服务容器获取:
```typescript
import { Core, WorldManager } from '@esengine/esengine';
import { Core, WorldManager } from '@esengine/ecs-framework';
// 初始化 Core
Core.create({ debug: true });
@@ -277,7 +277,7 @@ World 支持全局系统,这些系统在 World 级别运行,不依赖特定
### 定义全局系统
```typescript
import { IGlobalSystem } from '@esengine/esengine';
import { IGlobalSystem } from '@esengine/ecs-framework';
// 网络系统World 级别)
class NetworkSystem implements IGlobalSystem {
@@ -513,7 +513,7 @@ console.log(`清理了 ${cleanedCount} 个 World`);
### MMO 游戏房间系统
```typescript
import { Core, WorldManager, Scene, World } from '@esengine/esengine';
import { Core, WorldManager, Scene, World } from '@esengine/ecs-framework';
// 初始化
Core.create({ debug: true });

View File

@@ -8,7 +8,7 @@
"name": "ecs-core-demos",
"version": "1.0.0",
"dependencies": {
"@esengine/esengine": "file:../../packages/core"
"@esengine/ecs-framework": "file:../../packages/core"
},
"devDependencies": {
"typescript": "^5.0.0",
@@ -16,7 +16,7 @@
}
},
"../../packages/core": {
"name": "@esengine/esengine",
"name": "@esengine/ecs-framework",
"version": "2.1.51",
"license": "MIT",
"dependencies": {
@@ -417,7 +417,7 @@
"node": ">=12"
}
},
"node_modules/@esengine/esengine": {
"node_modules/@esengine/ecs-framework": {
"resolved": "../../packages/core",
"link": true
},

View File

@@ -13,6 +13,6 @@
"vite": "^4.0.0"
},
"dependencies": {
"@esengine/esengine": "file:../../packages/core"
"@esengine/ecs-framework": "file:../../packages/core"
}
}

View File

@@ -8,7 +8,7 @@ importers:
.:
dependencies:
'@esengine/esengine':
'@esengine/ecs-framework':
specifier: file:../../packages/core
version: file:../../packages/core
devDependencies:
@@ -153,7 +153,7 @@ packages:
cpu: [x64]
os: [win32]
'@esengine/esengine@file:../../packages/core':
'@esengine/ecs-framework@file:../../packages/core':
resolution: {directory: ../../packages/core, type: directory}
esbuild@0.18.20:
@@ -291,7 +291,7 @@ snapshots:
'@esbuild/win32-x64@0.18.20':
optional: true
'@esengine/esengine@file:../../packages/core':
'@esengine/ecs-framework@file:../../packages/core':
dependencies:
tslib: 2.8.1

View File

@@ -1,4 +1,4 @@
import { Scene, Core } from '@esengine/esengine';
import { Scene, Core } from '@esengine/ecs-framework';
export interface DemoInfo {
id: string;

View File

@@ -8,7 +8,7 @@ import {
Serializable,
Serialize,
IncrementalSerializer
} from '@esengine/esengine';
} from '@esengine/ecs-framework';
// ===== 组件定义 =====
@ECSComponent('IncDemo_Position')

View File

@@ -8,7 +8,7 @@ import {
Serializable,
Serialize,
SerializeAsMap
} from '@esengine/esengine';
} from '@esengine/ecs-framework';
// ===== 组件定义 =====
@ECSComponent('SerDemo_Position')

View File

@@ -1,5 +1,5 @@
import { DemoBase, DemoInfo } from './DemoBase';
import { Component, ECSComponent, WorkerEntitySystem, EntitySystem, Matcher, Entity, ECSSystem, PlatformManager, Time } from '@esengine/esengine';
import { Component, ECSComponent, WorkerEntitySystem, EntitySystem, Matcher, Entity, ECSSystem, PlatformManager, Time } from '@esengine/ecs-framework';
import { BrowserAdapter } from '../platform/BrowserAdapter';
// ============ 组件定义 ============

View File

@@ -1,5 +1,5 @@
import { DEMO_REGISTRY, DemoBase } from './demos';
import { Core } from '@esengine/esengine';
import { Core } from '@esengine/ecs-framework';
class DemoManager {
private demos: Map<string, typeof DemoBase> = new Map();

View File

@@ -3,7 +3,7 @@ import type {
PlatformWorker,
WorkerCreationOptions,
PlatformConfig
} from '@esengine/esengine';
} from '@esengine/ecs-framework';
/**
* 浏览器平台适配器

View File

@@ -8,7 +8,7 @@
"deploy": "node deploy.js"
},
"devDependencies": {
"@esengine/esengine": "^2.3.2",
"@esengine/ecs-framework": "^2.3.2",
"@esengine/worker-generator": "^1.0.1",
"esbuild": "^0.19.0"
}

View File

@@ -2,7 +2,7 @@
* 组件定义
* Component definitions
*/
import { Component, ECSComponent } from '@esengine/esengine';
import { Component, ECSComponent } from '@esengine/ecs-framework';
@ECSComponent('Position')
export class Position extends Component {

View File

@@ -10,7 +10,7 @@ import {
Matcher,
Entity,
ECSSystem
} from '@esengine/esengine';
} from '@esengine/ecs-framework';
import { Position, Velocity, Physics, Renderable } from '../components';
/**

View File

@@ -1,5 +1,5 @@
{
"name": "@esengine/esengine-monorepo",
"name": "@esengine/ecs-framework-monorepo",
"version": "2.1.29",
"description": "ECS Framework Monorepo - 高性能ECS框架及其网络插件",
"private": true,
@@ -21,8 +21,8 @@
"clean": "turbo run clean",
"build": "turbo run build",
"build:filter": "turbo run build --filter",
"build:core": "turbo run build --filter=@esengine/esengine",
"build:math": "turbo run build --filter=@esengine/esengine-math",
"build:core": "turbo run build --filter=@esengine/ecs-framework",
"build:math": "turbo run build --filter=@esengine/ecs-framework-math",
"build:editor": "turbo run build --filter=@esengine/editor-app...",
"build:npm": "turbo run build:npm",
"build:npm:core": "cd packages/core && npm run build:npm",

View File

@@ -30,7 +30,7 @@
"author": "yhh",
"license": "MIT",
"devDependencies": {
"@esengine/esengine": "workspace:*",
"@esengine/ecs-framework": "workspace:*",
"@esengine/engine-core": "workspace:*",
"@esengine/build-config": "workspace:*",
"rimraf": "^5.0.0",

View File

@@ -6,7 +6,7 @@
* Scans all components in a scene, collects resource references, batch-loads them, and assigns runtime IDs back to components
*/
import type { Scene } from '@esengine/esengine';
import type { Scene } from '@esengine/ecs-framework';
import { isResourceComponent, type ResourceReference } from '../interfaces/IResourceComponent';
/**

View File

@@ -28,7 +28,7 @@
"clean": "rimraf dist"
},
"devDependencies": {
"@esengine/esengine": "workspace:*",
"@esengine/ecs-framework": "workspace:*",
"@esengine/engine-core": "workspace:*",
"@esengine/build-config": "workspace:*",
"rimraf": "^5.0.5",

View File

@@ -1,4 +1,4 @@
import type { ComponentRegistry as ComponentRegistryType } from '@esengine/esengine';
import type { ComponentRegistry as ComponentRegistryType } from '@esengine/ecs-framework';
import type { IRuntimeModule, IPlugin, ModuleManifest } from '@esengine/engine-core';
import { AudioSourceComponent } from './AudioSourceComponent';

View File

@@ -1,4 +1,4 @@
import { Component, ECSComponent, Serializable, Serialize, Property } from '@esengine/esengine';
import { Component, ECSComponent, Serializable, Serialize, Property } from '@esengine/ecs-framework';
@ECSComponent('AudioSource')
@Serializable({ version: 2, typeId: 'AudioSource' })

View File

@@ -25,7 +25,7 @@
"@esengine/behavior-tree": "workspace:*"
},
"devDependencies": {
"@esengine/esengine": "workspace:*",
"@esengine/ecs-framework": "workspace:*",
"@esengine/engine-core": "workspace:*",
"@esengine/editor-core": "workspace:*",
"@esengine/editor-runtime": "workspace:*",

View File

@@ -2,7 +2,7 @@ import { Node as BehaviorTreeNode } from '../../domain/models/Node';
import { Connection } from '../../domain/models/Connection';
import { ExecutionLog } from '../../utils/BehaviorTreeExecutor';
import { BlackboardValue } from '../../domain/models/Blackboard';
import { createLogger } from '@esengine/esengine';
import { createLogger } from '@esengine/ecs-framework';
const logger = createLogger('ExecutionHooks');

View File

@@ -6,7 +6,7 @@ import { DOMCache } from '../../utils/DOMCache';
import { EditorEventBus, EditorEvent } from '../../infrastructure/events/EditorEventBus';
import { ExecutionHooksManager } from '../interfaces/IExecutionHooks';
import type { Breakpoint } from '../../types/Breakpoint';
import { createLogger } from '@esengine/esengine';
import { createLogger } from '@esengine/ecs-framework';
const logger = createLogger('ExecutionController');

View File

@@ -1,5 +1,5 @@
import { type GlobalBlackboardConfig, BlackboardValueType, type BlackboardVariable } from '@esengine/behavior-tree';
import { createLogger } from '@esengine/esengine';
import { createLogger } from '@esengine/ecs-framework';
const logger = createLogger('GlobalBlackboardService');

View File

@@ -3,7 +3,7 @@
* 行为树编辑器模块
*/
import type { ServiceContainer } from '@esengine/esengine';
import type { ServiceContainer } from '@esengine/ecs-framework';
import { TransformComponent } from '@esengine/engine-core';
import {
type IEditorModuleLoader,

View File

@@ -1,4 +1,4 @@
import { createLogger } from '@esengine/esengine';
import { createLogger } from '@esengine/ecs-framework';
const logger = createLogger('EditorEventBus');

View File

@@ -1,4 +1,4 @@
import { World, Entity, Scene, createLogger, Time, Core } from '@esengine/esengine';
import { World, Entity, Scene, createLogger, Time, Core } from '@esengine/ecs-framework';
import {
BehaviorTreeRuntimeComponent,
BehaviorTreeAssetManager,

View File

@@ -36,7 +36,7 @@
"author": "yhh",
"license": "MIT",
"devDependencies": {
"@esengine/esengine": "workspace:*",
"@esengine/ecs-framework": "workspace:*",
"@esengine/engine-core": "workspace:*",
"@esengine/asset-system": "workspace:*",
"@esengine/build-config": "workspace:*",

View File

@@ -8,7 +8,7 @@ importers:
.:
dependencies:
'@esengine/esengine':
'@esengine/ecs-framework':
specifier: ^2.2.8
version: 2.2.13
tslib:
@@ -645,7 +645,7 @@ packages:
'@bcoe/v8-coverage@0.2.3':
resolution: {integrity: sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==}
'@esengine/esengine@2.2.13':
'@esengine/ecs-framework@2.2.13':
resolution: {integrity: sha512-RMRUCWMoVxEvWOeEI/r1snGLHPSdcNAzIO0qlMOfJEYoXRrl5CIhddZvhdE97rufynETUvOFaLq3DDZCeVV2kg==}
engines: {node: '>=16.0.0'}
@@ -2739,7 +2739,7 @@ snapshots:
'@bcoe/v8-coverage@0.2.3': {}
'@esengine/esengine@2.2.13': {}
'@esengine/ecs-framework@2.2.13': {}
'@isaacs/cliui@8.0.2':
dependencies:

View File

@@ -15,7 +15,7 @@ const banner = `/**
* @license ${pkg.license}
*/`;
const external = ['@esengine/esengine'];
const external = ['@esengine/ecs-framework'];
const commonPlugins = [
resolve({
@@ -94,7 +94,7 @@ module.exports = [
sourcemap: true,
exports: 'named',
globals: {
'@esengine/esengine': 'ECS'
'@esengine/ecs-framework': 'ECS'
}
},
plugins: [
@@ -181,6 +181,6 @@ module.exports = [
respectExternal: true
})
],
external: ['@esengine/esengine']
external: ['@esengine/ecs-framework']
}
];

View File

@@ -1,5 +1,5 @@
import type { IScene, ServiceContainer } from '@esengine/esengine';
import { ComponentRegistry } from '@esengine/esengine';
import type { IScene, ServiceContainer } from '@esengine/ecs-framework';
import { ComponentRegistry } from '@esengine/ecs-framework';
import type { IRuntimeModule, IPlugin, ModuleManifest, SystemContext } from '@esengine/engine-core';
import { AssetManagerToken } from '@esengine/asset-system';

View File

@@ -1,4 +1,4 @@
import { Entity, Core } from '@esengine/esengine';
import { Entity, Core } from '@esengine/ecs-framework';
import { BehaviorTreeData } from './execution/BehaviorTreeData';
import { BehaviorTreeRuntimeComponent } from './execution/BehaviorTreeRuntimeComponent';
import { BehaviorTreeAssetManager } from './execution/BehaviorTreeAssetManager';

View File

@@ -1,4 +1,4 @@
import { createLogger, BinarySerializer } from '@esengine/esengine';
import { createLogger, BinarySerializer } from '@esengine/ecs-framework';
import type { BehaviorTreeAsset } from './BehaviorTreeAsset';
import { BehaviorTreeAssetValidator } from './BehaviorTreeAsset';
import { EditorFormatConverter, type EditorFormat } from './EditorFormatConverter';

View File

@@ -1,4 +1,4 @@
import { createLogger } from '@esengine/esengine';
import { createLogger } from '@esengine/ecs-framework';
import type { BehaviorTreeAsset, AssetMetadata, BehaviorTreeNodeData, BlackboardVariableDefinition, PropertyBinding } from './BehaviorTreeAsset';
import { NodeType, BlackboardValueType } from '../Types/TaskStatus';

View File

@@ -1,4 +1,4 @@
import { IService } from '@esengine/esengine';
import { IService } from '@esengine/ecs-framework';
import { BlackboardValueType, BlackboardVariable } from '../Types/TaskStatus';
/**

View File

@@ -1,5 +1,5 @@
import { BehaviorTreeData } from './BehaviorTreeData';
import { createLogger, IService } from '@esengine/esengine';
import { createLogger, IService } from '@esengine/ecs-framework';
import { EditorToBehaviorTreeDataConverter } from '../Serialization/EditorToBehaviorTreeDataConverter';
const logger = createLogger('BehaviorTreeAssetManager');

View File

@@ -1,4 +1,4 @@
import { EntitySystem, Matcher, Entity, Time, Core, ECSSystem, ServiceContainer } from '@esengine/esengine';
import { EntitySystem, Matcher, Entity, Time, Core, ECSSystem, ServiceContainer } from '@esengine/ecs-framework';
import type { IAssetManager } from '@esengine/asset-system';
import { BehaviorTreeRuntimeComponent } from './BehaviorTreeRuntimeComponent';
import { BehaviorTreeAssetManager } from './BehaviorTreeAssetManager';

View File

@@ -1,5 +1,5 @@
import { Component, ECSComponent, Property } from '@esengine/esengine';
import { Serializable, Serialize, IgnoreSerialization } from '@esengine/esengine';
import { Component, ECSComponent, Property } from '@esengine/ecs-framework';
import { Serializable, Serialize, IgnoreSerialization } from '@esengine/ecs-framework';
import { NodeRuntimeState, createDefaultRuntimeState } from './BehaviorTreeData';
import { TaskStatus } from '../Types/TaskStatus';

View File

@@ -2,7 +2,7 @@ import { TaskStatus, NodeType } from '../../Types/TaskStatus';
import { INodeExecutor, NodeExecutionContext, BindingHelper } from '../NodeExecutor';
import { NodeExecutorMetadata } from '../NodeMetadata';
import { BehaviorTreeAssetManager } from '../BehaviorTreeAssetManager';
import { Core } from '@esengine/esengine';
import { Core } from '@esengine/ecs-framework';
/**
* SubTree执行器

View File

@@ -1,4 +1,4 @@
import { Entity } from '@esengine/esengine';
import { Entity } from '@esengine/ecs-framework';
import { TaskStatus } from '../Types/TaskStatus';
import { BehaviorNodeData, BehaviorTreeData, NodeRuntimeState } from './BehaviorTreeData';
import { BehaviorTreeRuntimeComponent } from './BehaviorTreeRuntimeComponent';

View File

@@ -11,7 +11,7 @@ import type {
IAssetContent,
AssetContentType
} from '@esengine/asset-system';
import { Core } from '@esengine/esengine';
import { Core } from '@esengine/ecs-framework';
import { BehaviorTreeData } from '../execution/BehaviorTreeData';
import { BehaviorTreeAssetManager } from '../execution/BehaviorTreeAssetManager';
import { EditorToBehaviorTreeDataConverter } from '../Serialization/EditorToBehaviorTreeDataConverter';

View File

@@ -25,7 +25,7 @@
"@esengine/blueprint": "workspace:*"
},
"devDependencies": {
"@esengine/esengine": "workspace:*",
"@esengine/ecs-framework": "workspace:*",
"@esengine/engine-core": "workspace:*",
"@esengine/editor-core": "workspace:*",
"@esengine/node-editor": "workspace:*",

View File

@@ -3,7 +3,7 @@
* 蓝图编辑器插件
*/
import { Core, type ServiceContainer } from '@esengine/esengine';
import { Core, type ServiceContainer } from '@esengine/ecs-framework';
import type { ModuleManifest } from '@esengine/engine-core';
import type { IEditorPlugin, IEditorModuleLoader, PanelDescriptor, FileActionHandler, FileCreationTemplate } from '@esengine/editor-core';
import { MessageHub, PanelPosition } from '@esengine/editor-core';

View File

@@ -4,7 +4,7 @@
*/
import React, { useEffect } from 'react';
import { Core } from '@esengine/esengine';
import { Core } from '@esengine/ecs-framework';
import { IFileSystemService, type IFileSystem } from '@esengine/editor-core';
import { BlueprintCanvas } from './BlueprintCanvas';
import { useBlueprintEditorStore } from '../stores/blueprintEditorStore';

View File

@@ -30,7 +30,7 @@
"author": "yhh",
"license": "MIT",
"devDependencies": {
"@esengine/esengine": "workspace:*",
"@esengine/ecs-framework": "workspace:*",
"@esengine/engine-core": "workspace:*",
"@esengine/build-config": "workspace:*",
"@types/node": "^20.19.17",

View File

@@ -127,7 +127,7 @@ export default defineConfig({
## Runtime vs Editor 分离规则
### ✅ runtime.ts 中可以:
- 导入 @esengine/esengine
- 导入 @esengine/ecs-framework
- 导入 @esengine/ecs-components
- 导入其他包的 `/runtime` 路径
@@ -141,7 +141,7 @@ export default defineConfig({
```typescript
// ✅ 正确
import { Core } from '@esengine/esengine';
import { Core } from '@esengine/ecs-framework';
import { UIRuntimeModule } from '@esengine/ui/runtime';
// ❌ 错误 - 会把编辑器代码打包进来

View File

@@ -22,7 +22,7 @@
"clean": "rimraf dist"
},
"devDependencies": {
"@esengine/esengine": "workspace:*",
"@esengine/ecs-framework": "workspace:*",
"@esengine/engine-core": "workspace:*",
"@esengine/camera": "workspace:*",
"@esengine/editor-core": "workspace:*",

View File

@@ -5,8 +5,8 @@
* 相机编辑器支持
*/
import type { Entity, ServiceContainer } from '@esengine/esengine';
import { Core } from '@esengine/esengine';
import type { Entity, ServiceContainer } from '@esengine/ecs-framework';
import { Core } from '@esengine/ecs-framework';
import { TransformComponent } from '@esengine/engine-core';
import type {
IEditorModuleLoader,

View File

@@ -28,7 +28,7 @@
"clean": "rimraf dist"
},
"devDependencies": {
"@esengine/esengine": "workspace:*",
"@esengine/ecs-framework": "workspace:*",
"@esengine/engine-core": "workspace:*",
"@esengine/build-config": "workspace:*",
"rimraf": "^5.0.5",

View File

@@ -1,4 +1,4 @@
import { Component, ECSComponent, Serializable, Serialize, Property } from '@esengine/esengine';
import { Component, ECSComponent, Serializable, Serialize, Property } from '@esengine/ecs-framework';
export enum ECameraProjection {
Perspective = 'perspective',

View File

@@ -1,4 +1,4 @@
import type { ComponentRegistry as ComponentRegistryType } from '@esengine/esengine';
import type { ComponentRegistry as ComponentRegistryType } from '@esengine/ecs-framework';
import type { IRuntimeModule, IPlugin, ModuleManifest } from '@esengine/engine-core';
import { CameraComponent } from './CameraComponent';

View File

@@ -1,6 +1,6 @@
{
"id": "core",
"name": "@esengine/esengine",
"name": "@esengine/ecs-framework",
"displayName": "Core ECS",
"outputPath": "dist/index.mjs",
"description": "Core Entity-Component-System framework | 核心 ECS 框架",

View File

@@ -1,5 +1,5 @@
{
"name": "@esengine/esengine",
"name": "@esengine/ecs-framework",
"version": "2.3.2",
"description": "用于Laya、Cocos Creator等JavaScript游戏引擎的高性能ECS框架",
"main": "dist/index.cjs",

View File

@@ -8,7 +8,7 @@ const { readFileSync } = require('fs');
const pkg = JSON.parse(readFileSync('./package.json', 'utf8'));
const banner = `/**
* @esengine/esengine v${pkg.version}
* @esengine/ecs-framework v${pkg.version}
* 高性能ECS框架 - 适用于Cocos Creator和Laya等JavaScript游戏引擎
*
* @author ${pkg.author}
@@ -204,7 +204,7 @@ module.exports = [
file: 'dist/index.d.ts',
format: 'es',
banner: `/**
* @esengine/esengine v${pkg.version}
* @esengine/ecs-framework v${pkg.version}
* TypeScript definitions
*/`
},

View File

@@ -38,8 +38,8 @@
"es-engine": "file:../engine/pkg"
},
"devDependencies": {
"@esengine/esengine": "workspace:*",
"@esengine/esengine-math": "workspace:*",
"@esengine/ecs-framework": "workspace:*",
"@esengine/ecs-framework-math": "workspace:*",
"@esengine/engine-core": "workspace:*",
"@esengine/sprite": "workspace:*",
"@esengine/camera": "workspace:*",

View File

@@ -8,7 +8,7 @@ importers:
.:
dependencies:
'@esengine/esengine':
'@esengine/ecs-framework':
specifier: workspace:*
version: link:../core
es-engine:

View File

@@ -3,7 +3,7 @@
* 精灵渲染辅助工具。
*/
import { Entity, Component } from '@esengine/esengine';
import { Entity, Component } from '@esengine/ecs-framework';
import type { EngineBridge } from './EngineBridge';
import { RenderBatcher } from './RenderBatcher';
import { SpriteComponent } from '@esengine/sprite';

View File

@@ -3,7 +3,7 @@
* 相机系统
*/
import { EntitySystem, Matcher, Entity, ECSSystem } from '@esengine/esengine';
import { EntitySystem, Matcher, Entity, ECSSystem } from '@esengine/ecs-framework';
import { CameraComponent } from '@esengine/camera';
import type { EngineBridge } from '../core/EngineBridge';

Some files were not shown because too many files have changed in this diff Show More