mirror of
https://github.com/motajs/template.git
synced 2026-11-03 07:24:30 +08:00
refactor: Layer2 数据拆分至 data-system
This commit is contained in:
1 parent
80b73938b4
commit
9ada0796b3
20 files changed
+110
-155
No files matched your search
@@ -33,6 +33,13 @@
|
||||
| `pnpm type` | 对仓库执行类型检查 |
|
||||
| `pnpm check:circular` | 对仓库执行循环引用检查 |
|
||||
|
||||
## 术语统一
|
||||
|
||||
- 方法:一般指挂载到接口 `interface` 或类 `class` 上的函数。
|
||||
- 函数:一般指在文件顶层定义的函数,有时也会指方法,需要根据语境判断。
|
||||
- 接口:有时指 `interface`,有时也会指方法、成员等内容,需要根据语境判断。
|
||||
- 成员/属性:一般指接口 `interface`、类 `class`、对象 `object` 上的字段。
|
||||
|
||||
## 开发原则
|
||||
|
||||
### 模块原则
|
||||
@@ -97,11 +104,29 @@
|
||||
- **数据端**:可在 `node` 环境中单独运行,可直接用于录像验证,不负责任何渲染逻辑。
|
||||
- **渲染端**:仅负责向数据端发送消息,不负责任何逻辑运算。
|
||||
|
||||
| 包 | 层级 | 说明 |
|
||||
| ---------------------- | ------------ | ------------------------------------ |
|
||||
| `@user/data-base` | 数据端系统层 | 负责数据端核心系统 |
|
||||
| `@user/data-state` | 数据端实现层 | 依赖系统层实现完整的游戏实例 |
|
||||
| `@user/client-base` | 渲染端系统层 | 负责渲染端核心系统 |
|
||||
| `@user/client-modules` | 渲染端实现层 | 依赖系统层实现客户端的渲染与用户交互 |
|
||||
|
||||
数据端允许调用渲染端代码,但必须使用全局接口 `Mota.r(() => {})` 包裹。除非必要,否则不建议在数据端调用渲染端代码。
|
||||
|
||||
### 渲染端
|
||||
|
||||
渲染端目前已基本制作完成,分为两层:
|
||||
|
||||
| 包 | 层级 | 说明 |
|
||||
| ---------------------- | ------ | ------------------------------------ |
|
||||
| `@user/client-base` | 系统层 | 负责渲染端核心系统 |
|
||||
| `@user/client-modules` | 实现层 | 依赖系统层实现客户端的渲染与用户交互 |
|
||||
|
||||
### 数据端
|
||||
|
||||
数据端目前正在从旧引擎进行彻底性重构,分为三层:
|
||||
|
||||
**Layer 0 — 公共层**:包含公共接口、工具函数等内容,不依赖任何外部游戏逻辑,可被任意高层直接引用。内容较少,与 Layer 1 共同放在 `@user/data-base` 中,不单独开包。
|
||||
|
||||
**Layer 1 — 数据层**:包含所有会影响游戏存档与流程的数据内容,如地图、怪物、玩家属性等。本层通过统一接口 `IStateBase` 对外暴露数据访问能力,各类数据模块均以此接口为核心组织。
|
||||
|
||||
**Layer 2 — 执行层**:直接引用 Layer 1,负责产生影响游戏进程的动作,如玩家控制、战斗计算等。本层内容不会进入存档,仅通过修改 Layer 1 的数据来影响游戏状态,并通过统一接口 `ICoreState` 对外暴露执行能力。
|
||||
|
||||
| 包 | 层级 | 说明 |
|
||||
| ------------------- | ----------------- | ------------------------------------------------------------------------------- |
|
||||
| `@user/data-base` | Layer 0 / Layer 1 | 公共层与数据层,定义 `IStateBase` 及各类游戏数据(地图、怪物、玩家属性等) |
|
||||
| `@user/data-state` | — | 数据端的顶层模块,指导 Layer 2 的执行行为,不直接参与执行 |
|
||||
| `@user/data-system` | Layer 2 | 执行层,定义 `ICoreState`,依赖数据层实现玩家控制、战斗计算等影响游戏进程的动作 |
|
||||
Reference in new issue
Block a user