mirror of
https://github.com/motajs/template.git
synced 2026-11-06 01:14:31 +08:00
refactor: 将 Layer 0 单独放到一个包
This commit is contained in:
1 parent
bf781c5ee8
commit
8f4c4b7df2
48 files changed
+159
-97
No files matched your search
@@ -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));
|
||||
}
|
||||
|
||||
|
||||
@@ -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: 转身功能
|
||||
|
||||
|
||||
@@ -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>;
|
||||
|
||||
|
||||
@@ -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,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 {
|
||||
|
||||
@@ -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> {
|
||||
/**
|
||||
|
||||
Reference in new issue
Block a user