From b779e62eb2b4c25f6107b073439b88a7e8262a44 Mon Sep 17 00:00:00 2001 From: unanmed <1319491857@qq.com> Date: Sun, 17 May 2026 21:38:29 +0800 Subject: [PATCH] =?UTF-8?q?refactor:=20=E7=BB=9F=E4=B8=80=E4=B8=89?= =?UTF-8?q?=E4=B8=AA=E6=95=B0=E6=8D=AE=E5=B1=82=E7=9A=84=E6=8E=A5=E5=8F=A3?= =?UTF-8?q?=E9=A3=8E=E6=A0=BC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- dev.md | 2 +- packages-user/data-base/src/types.ts | 5 +++++ packages-user/data-common/src/types.ts | 2 +- packages-user/data-state/src/types.ts | 7 ++----- packages-user/data-system/src/index.ts | 2 ++ packages-user/data-system/src/types.ts | 12 ++++++++++++ 6 files changed, 23 insertions(+), 7 deletions(-) create mode 100644 packages-user/data-system/src/types.ts diff --git a/dev.md b/dev.md index 62f19e0..c124f90 100644 --- a/dev.md +++ b/dev.md @@ -122,7 +122,7 @@ 数据端目前正在从旧引擎进行彻底性重构,分为三层: -**Layer 0 — 公共层**:包含公共接口、工具函数等内容,不依赖任何外部游戏逻辑,可被任意高层直接引用。内容较少,与 Layer 1 共同放在 `@user/data-base` 中,不单独开包。 +**Layer 0 — 公共层**:包含公共接口、工具函数等内容,不依赖任何外部游戏逻辑,可被任意高层直接引用。包含统一接口 `IDataCommon`。 **Layer 1 — 数据层**:包含所有会影响游戏存档与流程的数据内容,如地图、怪物、玩家属性等。本层通过统一接口 `IStateBase` 对外暴露数据访问能力,各类数据模块均以此接口为核心组织。 diff --git a/packages-user/data-base/src/types.ts b/packages-user/data-base/src/types.ts index 94e65e0..796a4b6 100644 --- a/packages-user/data-base/src/types.ts +++ b/packages-user/data-base/src/types.ts @@ -34,3 +34,8 @@ export interface IStateBase extends IDataCommon { */ getSaveableContent(id: string): ISaveableContent | null; } + +export interface IStateBaseExtended { + /** 当前对象对应的数据层对象(Layer 1 对象) */ + readonly state: IStateBase; +} diff --git a/packages-user/data-common/src/types.ts b/packages-user/data-common/src/types.ts index d814269..dffe3f9 100644 --- a/packages-user/data-common/src/types.ts +++ b/packages-user/data-common/src/types.ts @@ -11,6 +11,6 @@ export interface IDataCommon { } export interface IDataCommonExtended { - /** 当前对象对应的基本数据端对象(Layer 0 对象) */ + /** 当前对象对应的公共层对象(Layer 0 对象) */ readonly state: IDataCommon; } diff --git a/packages-user/data-state/src/types.ts b/packages-user/data-state/src/types.ts index beb114d..73de768 100644 --- a/packages-user/data-state/src/types.ts +++ b/packages-user/data-state/src/types.ts @@ -3,7 +3,7 @@ import { IEnemyAttr } from './enemy'; import { IHeroAttr } from './hero'; import { ILoadProgressTotal } from '@motajs/loader'; import { ISaveSystem } from './save'; -import { IEnemyContext } from '@user/data-system'; +import { IStateSystem } from '@user/data-system'; import { ISaveableContent } from '@user/data-common'; export interface ISaveableExecutor { @@ -15,14 +15,11 @@ export interface ISaveableExecutor { afterLoad(data: T, state: IStateBase): void; } -export interface ICoreState extends IStateBase { +export interface ICoreState extends IStateSystem { /** 加载进度对象 */ readonly loadProgress: ILoadProgressTotal; /** 数据端加载对象 */ readonly dataLoader: IMotaDataLoader; - /** 怪物上下文 */ - readonly enemyContext: IEnemyContext; - /** 存档系统 */ readonly saveSystem: ISaveSystem; diff --git a/packages-user/data-system/src/index.ts b/packages-user/data-system/src/index.ts index 25a6dfe..d7cdcfd 100644 --- a/packages-user/data-system/src/index.ts +++ b/packages-user/data-system/src/index.ts @@ -1,2 +1,4 @@ export * from './combat'; export * from './trigger'; + +export * from './types'; diff --git a/packages-user/data-system/src/types.ts b/packages-user/data-system/src/types.ts new file mode 100644 index 0000000..f08ee0b --- /dev/null +++ b/packages-user/data-system/src/types.ts @@ -0,0 +1,12 @@ +import { IStateBase } from '@user/data-base'; +import { IEnemyContext } from './combat'; + +export interface IStateSystem extends IStateBase { + /** 怪物上下文 */ + readonly enemyContext: IEnemyContext; +} + +export interface IStateSystemExtended { + /** 当前对象对应的执行层对象(Layer 2 对象) */ + readonly state: IStateSystem; +}