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; +}