mirror of
https://github.com/motajs/template.git
synced 2026-05-02 12:23:13 +08:00
refactor: CoreState 一部分类型声明挪到 data-base
This commit is contained in:
parent
1a569804d8
commit
ec59a44efc
@ -1,2 +1,3 @@
|
|||||||
|
export * from './face';
|
||||||
export * from './types';
|
export * from './types';
|
||||||
export * from './utils';
|
export * from './utils';
|
||||||
|
|||||||
@ -16,3 +16,39 @@ export interface IFaceData {
|
|||||||
/** 图块朝向 */
|
/** 图块朝向 */
|
||||||
readonly face: FaceDirection;
|
readonly face: FaceDirection;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export interface IRoleFaceBinder {
|
||||||
|
/**
|
||||||
|
* 给指定的图块分配朝向绑定
|
||||||
|
* @param identifier 图块数字
|
||||||
|
* @param main 主图块朝向,一般是朝下
|
||||||
|
*/
|
||||||
|
malloc(identifier: number, main: FaceDirection): void;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 将一个图块与另一个图块绑定朝向,需要注意要先调用 {@link malloc} 分配朝向信息
|
||||||
|
* @param identifier 当前图块数字
|
||||||
|
* @param main 主图块数字,即当前图块与目标图块属于主图块的另一个朝向
|
||||||
|
* @param face 当前图块的朝向方向
|
||||||
|
*/
|
||||||
|
bind(identifier: number, main: number, face: FaceDirection): void;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取一个图块指定朝向的图块数字
|
||||||
|
* @param identifier 图块数字,可以是任意朝向的图块数字
|
||||||
|
* @param face 要获取的朝向
|
||||||
|
*/
|
||||||
|
getFaceOf(identifier: number, face: FaceDirection): IFaceData | null;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取指定图块数字是哪个朝向
|
||||||
|
* @param identifier 图块数字
|
||||||
|
*/
|
||||||
|
getFaceDirection(identifier: number): FaceDirection | undefined;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取指定图块数字绑定至的主朝向
|
||||||
|
* @param identifier 图块数字,可以是任意朝向的图块数字
|
||||||
|
*/
|
||||||
|
getMainFace(identifier: number): IFaceData | null;
|
||||||
|
}
|
||||||
|
|||||||
@ -3,5 +3,7 @@ export * from './enemy';
|
|||||||
export * from './flag';
|
export * from './flag';
|
||||||
export * from './hero';
|
export * from './hero';
|
||||||
export * from './load';
|
export * from './load';
|
||||||
|
export * from './map';
|
||||||
|
|
||||||
export * from './game';
|
export * from './game';
|
||||||
|
export * from './types';
|
||||||
|
|||||||
50
packages-user/data-base/src/types.ts
Normal file
50
packages-user/data-base/src/types.ts
Normal file
@ -0,0 +1,50 @@
|
|||||||
|
import { IMotaDataLoader } from './load';
|
||||||
|
import { ILoadProgressTotal } from '@motajs/loader';
|
||||||
|
import { IHeroFollower, IHeroState } from './hero';
|
||||||
|
import { IEnemyContext, IEnemyManager } from './enemy';
|
||||||
|
import { IFlagSystem } from './flag';
|
||||||
|
import { IRoleFaceBinder } from './common';
|
||||||
|
import { ILayerState } from './map';
|
||||||
|
|
||||||
|
export interface IStateSaveData {
|
||||||
|
/** 跟随者列表 */
|
||||||
|
readonly followers: readonly IHeroFollower[];
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface IStateBase<TEnemy, THero> {
|
||||||
|
/** 朝向绑定 */
|
||||||
|
readonly roleFace: IRoleFaceBinder;
|
||||||
|
/** id 到图块数字的映射 */
|
||||||
|
readonly idNumberMap: Map<string, number>;
|
||||||
|
/** 图块数字到 id 的映射 */
|
||||||
|
readonly numberIdMap: Map<number, string>;
|
||||||
|
|
||||||
|
/** 加载进度对象 */
|
||||||
|
readonly loadProgress: ILoadProgressTotal;
|
||||||
|
/** 数据端加载对象 */
|
||||||
|
readonly dataLoader: IMotaDataLoader;
|
||||||
|
|
||||||
|
/** 地图状态 */
|
||||||
|
readonly layer: ILayerState;
|
||||||
|
/** 勇士状态 */
|
||||||
|
readonly hero: IHeroState<THero>;
|
||||||
|
|
||||||
|
/** 怪物管理器 */
|
||||||
|
readonly enemyManager: IEnemyManager<TEnemy>;
|
||||||
|
/** 怪物上下文 */
|
||||||
|
readonly enemyContext: IEnemyContext<TEnemy, THero>;
|
||||||
|
|
||||||
|
/** Flag 系统 */
|
||||||
|
readonly flags: IFlagSystem;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 保存当前状态
|
||||||
|
*/
|
||||||
|
saveState(): IStateSaveData;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 加载状态
|
||||||
|
* @param state 状态对象
|
||||||
|
*/
|
||||||
|
loadState(state: IStateSaveData): void;
|
||||||
|
}
|
||||||
@ -1,3 +0,0 @@
|
|||||||
export * from './face';
|
|
||||||
export * from './types';
|
|
||||||
export * from './utils';
|
|
||||||
@ -1,40 +0,0 @@
|
|||||||
import { FaceDirection, type IFaceData } from '@user/data-base';
|
|
||||||
|
|
||||||
export { FaceDirection };
|
|
||||||
export type { IFaceData } from '@user/data-base';
|
|
||||||
|
|
||||||
export interface IRoleFaceBinder {
|
|
||||||
/**
|
|
||||||
* 给指定的图块分配朝向绑定
|
|
||||||
* @param identifier 图块数字
|
|
||||||
* @param main 主图块朝向,一般是朝下
|
|
||||||
*/
|
|
||||||
malloc(identifier: number, main: FaceDirection): void;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 将一个图块与另一个图块绑定朝向,需要注意要先调用 {@link malloc} 分配朝向信息
|
|
||||||
* @param identifier 当前图块数字
|
|
||||||
* @param main 主图块数字,即当前图块与目标图块属于主图块的另一个朝向
|
|
||||||
* @param face 当前图块的朝向方向
|
|
||||||
*/
|
|
||||||
bind(identifier: number, main: number, face: FaceDirection): void;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 获取一个图块指定朝向的图块数字
|
|
||||||
* @param identifier 图块数字,可以是任意朝向的图块数字
|
|
||||||
* @param face 要获取的朝向
|
|
||||||
*/
|
|
||||||
getFaceOf(identifier: number, face: FaceDirection): IFaceData | null;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 获取指定图块数字是哪个朝向
|
|
||||||
* @param identifier 图块数字
|
|
||||||
*/
|
|
||||||
getFaceDirection(identifier: number): FaceDirection | undefined;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 获取指定图块数字绑定至的主朝向
|
|
||||||
* @param identifier 图块数字,可以是任意朝向的图块数字
|
|
||||||
*/
|
|
||||||
getMainFace(identifier: number): IFaceData | null;
|
|
||||||
}
|
|
||||||
@ -1,6 +0,0 @@
|
|||||||
export {
|
|
||||||
degradeFace,
|
|
||||||
fromDirectionString,
|
|
||||||
getFaceMovement,
|
|
||||||
nextFaceDirection
|
|
||||||
} from '@user/data-base';
|
|
||||||
@ -1,6 +1,4 @@
|
|||||||
import { ICoreState, IStateSaveData } from './types';
|
import { ICoreState, IStateSaveData } from './types';
|
||||||
import { ILayerState, LayerState } from './map';
|
|
||||||
import { FaceDirection, IRoleFaceBinder, RoleFaceBinder } from './common';
|
|
||||||
import {
|
import {
|
||||||
DamageSystem,
|
DamageSystem,
|
||||||
EnemyContext,
|
EnemyContext,
|
||||||
@ -16,7 +14,12 @@ import {
|
|||||||
FlagSystem,
|
FlagSystem,
|
||||||
IMotaDataLoader,
|
IMotaDataLoader,
|
||||||
MotaDataLoader,
|
MotaDataLoader,
|
||||||
loading
|
loading,
|
||||||
|
IRoleFaceBinder,
|
||||||
|
ILayerState,
|
||||||
|
LayerState,
|
||||||
|
RoleFaceBinder,
|
||||||
|
FaceDirection
|
||||||
} from '@user/data-base';
|
} from '@user/data-base';
|
||||||
import { IEnemyAttr } from './enemy/types';
|
import { IEnemyAttr } from './enemy/types';
|
||||||
import {
|
import {
|
||||||
|
|||||||
@ -1,6 +1,5 @@
|
|||||||
import { loading } from '@user/data-base';
|
import { FaceDirection, loading } from '@user/data-base';
|
||||||
import { isNil } from 'lodash-es';
|
import { isNil } from 'lodash-es';
|
||||||
import { FaceDirection } from './common';
|
|
||||||
import { ICoreState } from './types';
|
import { ICoreState } from './types';
|
||||||
import { TILE_HEIGHT, TILE_WIDTH } from './shared';
|
import { TILE_HEIGHT, TILE_WIDTH } from './shared';
|
||||||
import { state } from './ins';
|
import { state } from './ins';
|
||||||
@ -62,11 +61,9 @@ export function create() {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
export * from './common';
|
|
||||||
export * from './enemy';
|
export * from './enemy';
|
||||||
export * from './hero';
|
export * from './hero';
|
||||||
export * from './legacy';
|
export * from './legacy';
|
||||||
export * from './map';
|
|
||||||
|
|
||||||
export * from './core';
|
export * from './core';
|
||||||
export * from './ins';
|
export * from './ins';
|
||||||
|
|||||||
@ -1,61 +1,10 @@
|
|||||||
import { ILayerState } from './map';
|
import { IHeroFollower, IStateBase } from '@user/data-base';
|
||||||
import { IRoleFaceBinder } from './common';
|
|
||||||
import {
|
|
||||||
IEnemyContext,
|
|
||||||
IEnemyManager,
|
|
||||||
IHeroFollower,
|
|
||||||
IHeroState,
|
|
||||||
IMotaDataLoader
|
|
||||||
} from '@user/data-base';
|
|
||||||
import { IEnemyAttr } from './enemy/types';
|
import { IEnemyAttr } from './enemy/types';
|
||||||
import { IHeroAttr } from './hero';
|
import { IHeroAttr } from './hero';
|
||||||
import { IFlagSystem } from '../../data-base/src/flag/types';
|
|
||||||
import { ILoadProgressTotal } from '@motajs/loader';
|
|
||||||
|
|
||||||
export interface IGameDataState {
|
|
||||||
/** 怪物管理器 */
|
|
||||||
readonly enemyManager: IEnemyManager<IEnemyAttr>;
|
|
||||||
}
|
|
||||||
|
|
||||||
export interface IStateSaveData {
|
export interface IStateSaveData {
|
||||||
/** 跟随者列表 */
|
/** 跟随者列表 */
|
||||||
readonly followers: readonly IHeroFollower[];
|
readonly followers: readonly IHeroFollower[];
|
||||||
}
|
}
|
||||||
|
|
||||||
export interface ICoreState {
|
export interface ICoreState extends IStateBase<IEnemyAttr, IHeroAttr> {}
|
||||||
/** 朝向绑定 */
|
|
||||||
readonly roleFace: IRoleFaceBinder;
|
|
||||||
/** id 到图块数字的映射 */
|
|
||||||
readonly idNumberMap: Map<string, number>;
|
|
||||||
/** 图块数字到 id 的映射 */
|
|
||||||
readonly numberIdMap: Map<number, string>;
|
|
||||||
|
|
||||||
/** 加载进度对象 */
|
|
||||||
readonly loadProgress: ILoadProgressTotal;
|
|
||||||
/** 数据端加载对象 */
|
|
||||||
readonly dataLoader: IMotaDataLoader;
|
|
||||||
|
|
||||||
/** 地图状态 */
|
|
||||||
readonly layer: ILayerState;
|
|
||||||
/** 勇士状态 */
|
|
||||||
readonly hero: IHeroState<IHeroAttr>;
|
|
||||||
|
|
||||||
/** 怪物管理器 */
|
|
||||||
readonly enemyManager: IEnemyManager<IEnemyAttr>;
|
|
||||||
/** 怪物上下文 */
|
|
||||||
readonly enemyContext: IEnemyContext<IEnemyAttr, IHeroAttr>;
|
|
||||||
|
|
||||||
/** Flag 系统 */
|
|
||||||
readonly flags: IFlagSystem;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 保存状态
|
|
||||||
*/
|
|
||||||
saveState(): IStateSaveData;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 加载状态
|
|
||||||
* @param data 状态对象
|
|
||||||
*/
|
|
||||||
loadState(data: IStateSaveData): void;
|
|
||||||
}
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user