refactor: 勇士状态
CodeQL / Analyze (javascript) (push) Has been cancelled

This commit is contained in:
AncTe committed 2026-04-16 22:31:39 +08:00
1 parent c22a51829d
commit 92ff489811
15 files changed
+310 -193

No files matched your search

@@ -3,8 +3,8 @@ import {
FaceDirection,
getFaceMovement,
HeroAnimateDirection,
IHeroState,
IHeroStateHooks,
IHeroMover,
IHeroMovingHooks,
nextFaceDirection
} from '@user/data-base';
import { IMapLayer, state } from '@user/data-state';
@@ -54,7 +54,7 @@ export class MapHeroRenderer implements IMapHeroRenderer {
new TextureRowSplitter();
/** 勇士钩子 */
readonly controller: IHookController<IHeroStateHooks>;
readonly controller: IHookController<IHeroMovingHooks>;
/** 勇士每个朝向的贴图对象 */
readonly textureMap: Map<FaceDirection, IMaterialFramedData> = new Map();
/** 勇士渲染实体,与 `entities[0]` 同引用 */
@@ -72,7 +72,7 @@ export class MapHeroRenderer implements IMapHeroRenderer {
constructor(
readonly renderer: IMapRenderer,
readonly layer: IMapLayer,
readonly hero: IHeroState
readonly hero: IHeroMover
) {
this.controller = hero.addHook(new MapHeroHook(this));
this.controller.load();
@@ -106,7 +106,7 @@ export class MapHeroRenderer implements IMapHeroRenderer {
private addHeroMoving(
renderer: IMapRenderer,
layer: IMapLayer,
hero: IHeroState
hero: IHeroMover
) {
if (isNil(hero.image)) {
logger.warn(88);
@@ -450,7 +450,7 @@ export class MapHeroRenderer implements IMapHeroRenderer {
}
}
class MapHeroHook implements Partial<IHeroStateHooks> {
class MapHeroHook implements Partial<IHeroMovingHooks> {
constructor(readonly hero: MapHeroRenderer) {}
onSetImage(image: ImageIds): void {
@@ -1,4 +1,4 @@
import { IHeroState } from '@user/data-base';
import { IHeroMover } from '@user/data-base';
import { IMapLayer } from '@user/data-state';
import {
IMapDoorRenderer,
@@ -14,7 +14,7 @@ import { IOnMapTextRenderer } from './types';
export class MapExtensionManager implements IMapExtensionManager {
/** 勇士状态至勇士渲染器的映射 */
readonly heroMap: Map<IHeroState, IMapHeroRenderer> = new Map();
readonly heroMap: Map<IHeroMover, IMapHeroRenderer> = new Map();
/** 地图图层到门渲染器的映射 */
readonly doorMap: Map<IMapLayer, IMapDoorRenderer> = new Map();
/** 单例的文字渲染拓展(独立图层) */
@@ -22,7 +22,7 @@ export class MapExtensionManager implements IMapExtensionManager {
constructor(readonly renderer: IMapRenderer) {}
addHero(state: IHeroState, layer: IMapLayer): IMapHeroRenderer | null {
addHero(state: IHeroMover, layer: IMapLayer): IMapHeroRenderer | null {
if (this.heroMap.has(state)) {
logger.error(45, 'hero renderer');
return null;
@@ -32,7 +32,7 @@ export class MapExtensionManager implements IMapExtensionManager {
return heroRenderer;
}
removeHero(state: IHeroState): void {
removeHero(state: IHeroMover): void {
const renderer = this.heroMap.get(state);
if (!renderer) return;
renderer.destroy();
@@ -2,7 +2,7 @@ import { ITexture, Font } from '@motajs/render';
import {
FaceDirection,
HeroAnimateDirection,
IHeroState
IHeroMover
} from '@user/data-base';
import { IMapLayer } from '@user/data-state';
@@ -10,7 +10,7 @@ import { IMapRenderResult } from '../types';
export interface IMapExtensionManager {
/** 勇士状态至勇士渲染器的映射 */
readonly heroMap: Map<IHeroState, IMapHeroRenderer>;
readonly heroMap: Map<IHeroMover, IMapHeroRenderer>;
/** 地图图层到门渲染器的映射 */
readonly doorMap: Map<IMapLayer, IMapDoorRenderer>;
/** 单例的文字渲染拓展(独立图层) */
@@ -21,13 +21,13 @@ export interface IMapExtensionManager {
* @param state 勇士状态
* @param layer 勇士所在图层
*/
addHero(state: IHeroState, layer: IMapLayer): IMapHeroRenderer | null;
addHero(state: IHeroMover, layer: IMapLayer): IMapHeroRenderer | null;
/**
* 移除勇士渲染拓展
* @param state 勇士状态
*/
removeHero(state: IHeroState): void;
removeHero(state: IHeroMover): void;
/**
* 添加开门动画拓展