refactor: 将 Layer 0 单独放到一个包

This commit is contained in:
AncTe committed 2026-05-17 21:32:23 +08:00
1 parent bf781c5ee8
commit 8f4c4b7df2
48 files changed
+159 -97

No files matched your search

+30 -26
View File
@@ -1,4 +1,18 @@
import { ICoreState, ISaveableExecutor } from './types';
import {
IRoleFaceBinder,
IFaceManager,
ITileStore,
ISaveableContent,
TileStore,
SaveCompression,
RoleFaceBinder,
FaceManager,
Dir4FaceHandler,
Dir8FaceHandler,
FaceGroup,
FaceDirection
} from '@user/data-common';
import {
EnemyManager,
HeroMover,
@@ -11,22 +25,16 @@ import {
IMotaDataLoader,
MotaDataLoader,
loading,
IRoleFaceBinder,
RoleFaceBinder,
FaceDirection,
ISaveableContent,
SaveCompression,
IReadonlyEnemy,
IMapStore,
MapStore,
IFaceManager,
FaceManager,
InternalFaceGroup,
Dir4FaceHandler,
Dir8FaceHandler,
ITileStore,
TileStore
MapStore
} from '@user/data-base';
import {
DamageSystem,
EnemyContext,
IEnemyContext,
MapDamage
} from '@user/data-system';
import {
CommonAuraConverter,
EnemyLegacyBridge,
@@ -55,29 +63,25 @@ import { ILoadProgressTotal, LoadProgressTotal } from '@motajs/loader';
import { isNil } from 'lodash-es';
import { logger } from '@motajs/common';
import { ISaveSystem, SaveSystem } from './save';
import {
DamageSystem,
EnemyContext,
IEnemyContext,
MapDamage
} from '@user/data-system';
export class CoreState implements ICoreState {
// 全局内容
// Layer 0 内容
readonly roleFace: IRoleFaceBinder;
readonly faceManager: IFaceManager;
readonly tileStore: ITileStore<LegacyTileData>;
// 可存档内容
// Layer 1 内容
readonly maps: IMapStore;
readonly hero: IHeroState<IHeroAttr>;
readonly enemyManager: IEnemyManager<IEnemyAttr>;
readonly flags: IFlagSystem;
// 状态内容
// Layer 2 内容
readonly enemyContext: IEnemyContext<IEnemyAttr, IHeroAttr>;
// 用户层内容
readonly loadProgress: ILoadProgressTotal;
readonly dataLoader: IMotaDataLoader;
readonly enemyContext: IEnemyContext<IEnemyAttr, IHeroAttr>;
readonly saveSystem: ISaveSystem;
/** 可存档对象映射 */
@@ -94,7 +98,7 @@ export class CoreState implements ICoreState {
const tileStore = new TileStore<LegacyTileData>();
tileStore.attachLegacyConverter(new TileLegacyBridge());
this.tileStore = tileStore;
this.maps = new MapStore(tileStore);
this.maps = new MapStore(tileStore, this);
this.loadProgress = new LoadProgressTotal();
this.dataLoader = new MotaDataLoader(this.loadProgress);
@@ -166,9 +170,9 @@ export class CoreState implements ICoreState {
this.faceManager = new FaceManager();
const dir4 = new Dir4FaceHandler();
const dir8 = new Dir8FaceHandler();
this.faceManager.register(InternalFaceGroup.Dir4, dir4);
this.faceManager.register(FaceGroup.Dir4, dir4);
this.faceManager.registerById('dir4', dir4);
this.faceManager.register(InternalFaceGroup.Dir8, dir8);
this.faceManager.register(FaceGroup.Dir8, dir8);
this.faceManager.registerById('dir8', dir8);
this.flags = new FlagSystem();
@@ -19,15 +19,14 @@ import {
IMapDamageView
} from '@user/data-system';
import {
IFaceHandler,
ISpecial,
IReadonlyHeroAttribute,
IReadonlyEnemy,
InternalFaceGroup
IReadonlyEnemy
} from '@user/data-base';
import { IZoneValue } from './special';
import { IEnemyAttr, MapDamageType } from './types';
import { IHeroAttr } from '../hero';
import { IFaceHandler, FaceGroup } from '@user/data-common';
const RECT_RANGE = new RectRange();
const MANHATTAN_RANGE = new ManhattanRange();
@@ -312,7 +311,7 @@ export class MainMapDamageConverter implements IMapDamageConverter<
const laser = enemy.getSpecial<number>(24);
if (laser) {
const face = handler.data.faceManager.get(InternalFaceGroup.Dir4)!;
const face = handler.data.faceManager.get(FaceGroup.Dir4)!;
views.push(new LaserDamageView(context, locator, laser, face));
}
+2 -1
View File
@@ -1,9 +1,10 @@
import EventEmitter from 'eventemitter3';
import { backDir, toDir } from './utils';
import { fromDirectionString, loading } from '@user/data-base';
import { loading } from '@user/data-base';
import type { HeroKeyMover } from '@user/client-modules';
import { sleep } from '@motajs/common';
import { state } from '..';
import { fromDirectionString } from '@user/data-common';
// todo: 转身功能
+5 -1
View File
@@ -1,4 +1,8 @@
import { ITileLegacyConverter, ITileRawData, TileType } from '@user/data-base';
import {
ITileLegacyConverter,
ITileRawData,
TileType
} from '@user/data-common';
export type LegacyTileData = MapDataOf<keyof NumberToId>;
+1 -1
View File
@@ -6,7 +6,7 @@ import {
ISaveSystem,
ISaveSystemConfig
} from './types';
import { ISaveableContent, SaveCompression } from '@user/data-base';
import { ISaveableContent, SaveCompression } from '@user/data-common';
import { isNil } from 'lodash-es';
interface ISaveRecord {
+1 -1
View File
@@ -1,4 +1,4 @@
import { ISaveableContent, SaveCompression } from '@user/data-base';
import { ISaveableContent, SaveCompression } from '@user/data-common';
import { Dexie, Table } from 'dexie';
export interface IGlobalTrasaction {
+3 -6
View File
@@ -1,13 +1,10 @@
import {
IEnemyContext,
IMotaDataLoader,
ISaveableContent,
IStateBase
} from '@user/data-base';
import { IMotaDataLoader, IStateBase } from '@user/data-base';
import { IEnemyAttr } from './enemy';
import { IHeroAttr } from './hero';
import { ILoadProgressTotal } from '@motajs/loader';
import { ISaveSystem } from './save';
import { IEnemyContext } from '@user/data-system';
import { ISaveableContent } from '@user/data-common';
export interface ISaveableExecutor<T, TEnemy = IEnemyAttr, THero = IHeroAttr> {
/**