mirror of
https://github.com/motajs/template.git
synced 2026-11-10 13:04:30 +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;
|
||||
|
||||
/**
|
||||
* 添加开门动画拓展
|
||||
|
||||
Reference in new issue
Block a user