Merge branch 'master' into dependabot/npm_and_yarn/protobufjs-7.5.4
This commit is contained in:
@@ -1,55 +1,62 @@
|
|||||||
{
|
{
|
||||||
"projectName": "ecs-framework",
|
"projectName": "ecs-framework",
|
||||||
"projectOwner": "esengine",
|
"projectOwner": "esengine",
|
||||||
"repoType": "github",
|
"repoType": "github",
|
||||||
"repoHost": "https://github.com",
|
"repoHost": "https://github.com",
|
||||||
"files": [
|
"files": ["README.md"],
|
||||||
"README.md"
|
"imageSize": 100,
|
||||||
],
|
"commit": true,
|
||||||
"imageSize": 100,
|
"commitConvention": "angular",
|
||||||
"commit": true,
|
"contributors": [
|
||||||
"commitConvention": "angular",
|
{
|
||||||
"contributors": [],
|
"login": "yhh",
|
||||||
"contributorsPerLine": 7,
|
"name": "Frank Huang",
|
||||||
"contributorsSortAlphabetically": false,
|
"avatar_url": "https://avatars.githubusercontent.com/u/145575?v=4",
|
||||||
"badgeTemplate": "[](#contributors)",
|
"profile": "https://github.com/yhh",
|
||||||
"contributorTemplate": "<a href=\"<%= contributor.profile %>\"><img src=\"<%= contributor.avatar_url %>\" width=\"<%= options.imageSize %>px;\" alt=\"<%= contributor.name %>\"/><br /><sub><b><%= contributor.name %></b></sub></a>",
|
"contributions": ["code"]
|
||||||
"types": {
|
}
|
||||||
"code": {
|
],
|
||||||
"symbol": "💻",
|
"contributorsPerLine": 7,
|
||||||
"description": "Code",
|
"contributorsSortAlphabetically": false,
|
||||||
"link": "[<%= symbol %>](<%= url %> \"Code\")"
|
"badgeTemplate": "[](#contributors)",
|
||||||
|
"contributorTemplate": "<a href=\"<%= contributor.profile %>\"><img src=\"<%= contributor.avatar_url %>\" width=\"<%= options.imageSize %>px;\" alt=\"<%= contributor.name %>\"/><br /><sub><b><%= contributor.name %></b></sub></a>",
|
||||||
|
"types": {
|
||||||
|
"code": {
|
||||||
|
"symbol": "💻",
|
||||||
|
"description": "Code",
|
||||||
|
"link": "[<%= symbol %>](<%= url %> \"Code\")"
|
||||||
|
},
|
||||||
|
"doc": {
|
||||||
|
"symbol": "📖",
|
||||||
|
"description": "Documentation",
|
||||||
|
"link": "[<%= symbol %>](<%= url %> \"Documentation\")"
|
||||||
|
},
|
||||||
|
"test": {
|
||||||
|
"symbol": "⚠️",
|
||||||
|
"description": "Tests",
|
||||||
|
"link": "[<%= symbol %>](<%= url %> \"Tests\")"
|
||||||
|
},
|
||||||
|
"bug": {
|
||||||
|
"symbol": "🐛",
|
||||||
|
"description": "Bug reports",
|
||||||
|
"link": "[<%= symbol %>](<%= url %> \"Bug reports\")"
|
||||||
|
},
|
||||||
|
"example": {
|
||||||
|
"symbol": "💡",
|
||||||
|
"description": "Examples",
|
||||||
|
"link": "[<%= symbol %>](<%= url %> \"Examples\")"
|
||||||
|
},
|
||||||
|
"design": {
|
||||||
|
"symbol": "🎨",
|
||||||
|
"description": "Design",
|
||||||
|
"link": "[<%= symbol %>](<%= url %> \"Design\")"
|
||||||
|
},
|
||||||
|
"ideas": {
|
||||||
|
"symbol": "🤔",
|
||||||
|
"description": "Ideas & Planning",
|
||||||
|
"link": "[<%= symbol %>](<%= url %> \"Ideas & Planning\")"
|
||||||
|
}
|
||||||
},
|
},
|
||||||
"doc": {
|
"skipCi": true
|
||||||
"symbol": "📖",
|
|
||||||
"description": "Documentation",
|
|
||||||
"link": "[<%= symbol %>](<%= url %> \"Documentation\")"
|
|
||||||
},
|
|
||||||
"test": {
|
|
||||||
"symbol": "⚠️",
|
|
||||||
"description": "Tests",
|
|
||||||
"link": "[<%= symbol %>](<%= url %> \"Tests\")"
|
|
||||||
},
|
|
||||||
"bug": {
|
|
||||||
"symbol": "🐛",
|
|
||||||
"description": "Bug reports",
|
|
||||||
"link": "[<%= symbol %>](<%= url %> \"Bug reports\")"
|
|
||||||
},
|
|
||||||
"example": {
|
|
||||||
"symbol": "💡",
|
|
||||||
"description": "Examples",
|
|
||||||
"link": "[<%= symbol %>](<%= url %> \"Examples\")"
|
|
||||||
},
|
|
||||||
"design": {
|
|
||||||
"symbol": "🎨",
|
|
||||||
"description": "Design",
|
|
||||||
"link": "[<%= symbol %>](<%= url %> \"Design\")"
|
|
||||||
},
|
|
||||||
"ideas": {
|
|
||||||
"symbol": "🤔",
|
|
||||||
"description": "Ideas & Planning",
|
|
||||||
"link": "[<%= symbol %>](<%= url %> \"Ideas & Planning\")"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"skipCi": true
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
36
.coderabbit.yaml
Normal file
36
.coderabbit.yaml
Normal file
@@ -0,0 +1,36 @@
|
|||||||
|
# CodeRabbit 配置文件
|
||||||
|
# https://docs.coderabbit.ai/configuration
|
||||||
|
|
||||||
|
language: "zh-CN" # 使用中文评论
|
||||||
|
reviews:
|
||||||
|
# 审查级别
|
||||||
|
profile: "chill" # "chill" 或 "strict" 或 "assertive"
|
||||||
|
|
||||||
|
# 自动审查设置
|
||||||
|
auto_review:
|
||||||
|
enabled: true
|
||||||
|
drafts: false # 草稿 PR 不自动审查
|
||||||
|
base_branches:
|
||||||
|
- master
|
||||||
|
- main
|
||||||
|
|
||||||
|
# 审查内容
|
||||||
|
request_changes_workflow: false # 不阻止 PR 合并
|
||||||
|
high_level_summary: true # 生成高层次摘要
|
||||||
|
poem: false # 不生成诗歌(可以改为 true 增加趣味)
|
||||||
|
review_status: true # 显示审查状态
|
||||||
|
|
||||||
|
# 忽略的文件
|
||||||
|
path_filters:
|
||||||
|
- "!**/*.md" # 不审查 markdown
|
||||||
|
- "!**/package-lock.json" # 不审查 lock 文件
|
||||||
|
- "!**/dist/**" # 不审查构建输出
|
||||||
|
- "!**/*.min.js" # 不审查压缩文件
|
||||||
|
|
||||||
|
# 聊天设置
|
||||||
|
chat:
|
||||||
|
auto_reply: true # 自动回复问题
|
||||||
|
|
||||||
|
# 提交建议
|
||||||
|
suggestions:
|
||||||
|
enabled: true # 启用代码建议
|
||||||
28
.github/workflows/pr-agent.yml
vendored
Normal file
28
.github/workflows/pr-agent.yml
vendored
Normal file
@@ -0,0 +1,28 @@
|
|||||||
|
name: PR Agent
|
||||||
|
|
||||||
|
on:
|
||||||
|
pull_request:
|
||||||
|
types: [opened, reopened, synchronize]
|
||||||
|
issue_comment:
|
||||||
|
types: [created, edited]
|
||||||
|
|
||||||
|
permissions:
|
||||||
|
contents: read
|
||||||
|
pull-requests: write
|
||||||
|
issues: write
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
pr_agent:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
name: Run PR Agent
|
||||||
|
if: ${{ github.event.sender.type != 'Bot' }}
|
||||||
|
steps:
|
||||||
|
- name: PR Agent Action
|
||||||
|
id: pragent
|
||||||
|
uses: Codium-ai/pr-agent@main
|
||||||
|
env:
|
||||||
|
OPENAI_KEY: ${{ secrets.OPENAI_KEY }}
|
||||||
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||||
|
github_action_config.auto_review: "true"
|
||||||
|
github_action_config.auto_describe: "true"
|
||||||
|
github_action_config.auto_improve: "false"
|
||||||
92
README.md
92
README.md
@@ -11,7 +11,43 @@
|
|||||||
[](https://github.com/esengine/ecs-framework/stargazers)
|
[](https://github.com/esengine/ecs-framework/stargazers)
|
||||||
[](https://deepwiki.com/esengine/ecs-framework)
|
[](https://deepwiki.com/esengine/ecs-framework)
|
||||||
|
|
||||||
一个高性能的 TypeScript ECS (Entity-Component-System) 框架,专为现代游戏开发而设计。
|
<div align="center">
|
||||||
|
|
||||||
|
<p>一个高性能的 TypeScript ECS (Entity-Component-System) 框架,专为现代游戏开发而设计。</p>
|
||||||
|
|
||||||
|
<p>A high-performance TypeScript ECS (Entity-Component-System) framework designed for modern game development.</p>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 📊 项目统计 / Project Stats
|
||||||
|
|
||||||
|
<div align="center">
|
||||||
|
|
||||||
|
[](https://star-history.com/#esengine/ecs-framework&Date)
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div align="center">
|
||||||
|
|
||||||
|
<a href="https://github.com/esengine/ecs-framework/graphs/contributors">
|
||||||
|
<img src="https://contrib.rocks/image?repo=esengine/ecs-framework" />
|
||||||
|
</a>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
### 📈 下载趋势 / Download Trends
|
||||||
|
|
||||||
|
<div align="center">
|
||||||
|
|
||||||
|
[](https://www.npmjs.com/package/@esengine/ecs-framework)
|
||||||
|
|
||||||
|
[](https://npmtrends.com/@esengine/ecs-framework)
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
## 特性
|
## 特性
|
||||||
|
|
||||||
@@ -96,6 +132,30 @@ function gameLoop(deltaTime: number) {
|
|||||||
- **多场景** - 支持 World/Scene 分层架构
|
- **多场景** - 支持 World/Scene 分层架构
|
||||||
- **时间管理** - 内置定时器和时间控制系统
|
- **时间管理** - 内置定时器和时间控制系统
|
||||||
|
|
||||||
|
## 🏗️ 架构设计 / Architecture
|
||||||
|
|
||||||
|
```mermaid
|
||||||
|
graph TB
|
||||||
|
A[Core 核心] --> B[World 世界]
|
||||||
|
B --> C[Scene 场景]
|
||||||
|
C --> D[EntityManager 实体管理器]
|
||||||
|
C --> E[SystemManager 系统管理器]
|
||||||
|
D --> F[Entity 实体]
|
||||||
|
F --> G[Component 组件]
|
||||||
|
E --> H[EntitySystem 实体系统]
|
||||||
|
E --> I[WorkerSystem 工作线程系统]
|
||||||
|
|
||||||
|
style A fill:#e1f5ff
|
||||||
|
style B fill:#fff3e0
|
||||||
|
style C fill:#f3e5f5
|
||||||
|
style D fill:#e8f5e9
|
||||||
|
style E fill:#fff9c4
|
||||||
|
style F fill:#ffebee
|
||||||
|
style G fill:#e0f2f1
|
||||||
|
style H fill:#fce4ec
|
||||||
|
style I fill:#f1f8e9
|
||||||
|
```
|
||||||
|
|
||||||
## 平台支持
|
## 平台支持
|
||||||
|
|
||||||
支持主流游戏引擎和 Web 平台:
|
支持主流游戏引擎和 Web 平台:
|
||||||
@@ -159,9 +219,28 @@ function gameLoop(deltaTime: number) {
|
|||||||
- [路径寻找](https://github.com/esengine/ecs-astar) - A*、BFS、Dijkstra 算法
|
- [路径寻找](https://github.com/esengine/ecs-astar) - A*、BFS、Dijkstra 算法
|
||||||
- [AI 系统](https://github.com/esengine/BehaviourTree-ai) - 行为树、效用 AI
|
- [AI 系统](https://github.com/esengine/BehaviourTree-ai) - 行为树、效用 AI
|
||||||
|
|
||||||
|
## 💪 支持项目 / Support the Project
|
||||||
|
|
||||||
|
如果这个项目对你有帮助,请考虑:
|
||||||
|
|
||||||
|
If this project helps you, please consider:
|
||||||
|
|
||||||
|
<div align="center">
|
||||||
|
|
||||||
|
[](https://github.com/sponsors/esengine)
|
||||||
|
[](https://github.com/esengine/ecs-framework)
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
- ⭐ 给项目点个 Star
|
||||||
|
- 🐛 报告 Bug 或提出新功能
|
||||||
|
- 📝 改进文档
|
||||||
|
- 💖 成为赞助者
|
||||||
|
|
||||||
## 社区与支持
|
## 社区与支持
|
||||||
|
|
||||||
- [问题反馈](https://github.com/esengine/ecs-framework/issues) - Bug 报告和功能建议
|
- [问题反馈](https://github.com/esengine/ecs-framework/issues) - Bug 报告和功能建议
|
||||||
|
- [讨论区](https://github.com/esengine/ecs-framework/discussions) - 提问、分享想法
|
||||||
- [QQ 交流群](https://jq.qq.com/?_wv=1027&k=29w1Nud6) - ecs游戏框架交流
|
- [QQ 交流群](https://jq.qq.com/?_wv=1027&k=29w1Nud6) - ecs游戏框架交流
|
||||||
|
|
||||||
## 贡献者 / Contributors
|
## 贡献者 / Contributors
|
||||||
@@ -173,8 +252,19 @@ Thanks goes to these wonderful people:
|
|||||||
<!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section -->
|
<!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section -->
|
||||||
<!-- prettier-ignore-start -->
|
<!-- prettier-ignore-start -->
|
||||||
<!-- markdownlint-disable -->
|
<!-- markdownlint-disable -->
|
||||||
|
<table>
|
||||||
|
<tbody>
|
||||||
|
<tr>
|
||||||
|
<td align="center" valign="top" width="14.28%"><a href="https://github.com/esengine"><img src="https://avatars.githubusercontent.com/esengine?s=100" width="100px;" alt="esengine"/><br /><sub><b>esengine</b></sub></a><br /><a href="#maintenance-esengine" title="Maintenance">🚧</a> <a href="https://github.com/esengine/ecs-framework/commits?author=esengine" title="Code">💻</a> <a href="#design-esengine" title="Design">🎨</a></td>
|
||||||
|
<td align="center" valign="top" width="14.28%"><a href="https://github.com/foxling"><img src="https://avatars.githubusercontent.com/foxling?s=100" width="100px;" alt="LING YE"/><br /><sub><b>LING YE</b></sub></a><br /><a href="https://github.com/esengine/ecs-framework/commits?author=foxling" title="Code">💻</a></td>
|
||||||
|
<td align="center" valign="top" width="14.28%"><a href="https://github.com/MirageTank"><img src="https://avatars.githubusercontent.com/MirageTank?s=100" width="100px;" alt="MirageTank"/><br /><sub><b>MirageTank</b></sub></a><br /><a href="https://github.com/esengine/ecs-framework/commits?author=MirageTank" title="Code">💻</a></td>
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
|
||||||
<!-- markdownlint-restore -->
|
<!-- markdownlint-restore -->
|
||||||
<!-- prettier-ignore-end -->
|
<!-- prettier-ignore-end -->
|
||||||
|
|
||||||
<!-- ALL-CONTRIBUTORS-LIST:END -->
|
<!-- ALL-CONTRIBUTORS-LIST:END -->
|
||||||
|
|
||||||
本项目遵循 [all-contributors](https://github.com/all-contributors/all-contributors) 规范。欢迎任何形式的贡献!
|
本项目遵循 [all-contributors](https://github.com/all-contributors/all-contributors) 规范。欢迎任何形式的贡献!
|
||||||
|
|||||||
Reference in New Issue
Block a user