refactor: 游戏地图接口重构

This commit is contained in:
AncTe committed 2026-08-21 01:39:47 +08:00
1 parent 1717400945
commit 7eeab32134
28 files changed
+1408 -1236

No files matched your search

@@ -1,6 +1,6 @@
import { BaseProps, TagDefine } from '@motajs/render-vue';
import { ERenderItemEvent, SizedCanvasImageSource } from '@motajs/render';
import { ILayerState } from '@user/data-base';
import { IGameMap } from '@user/data-base';
import { IMapExtensionManager, IMapRenderer } from '../map';
export interface IconProps extends BaseProps {
@@ -24,7 +24,7 @@ export interface WinskinProps extends BaseProps {
}
export interface MapRenderProps extends BaseProps {
layerState: ILayerState;
layerState: IGameMap;
renderer: IMapRenderer;
extension: IMapExtensionManager;
}
@@ -1,5 +1,5 @@
import { MotaOffscreenCanvas2D, RenderItem } from '@motajs/render';
import { ILayerState } from '@user/data-base';
import { IGameMap } from '@user/data-base';
import { IMapRenderer } from './types';
import { ElementNamespace, ComponentInternalInstance } from 'vue';
import { CELL_HEIGHT, CELL_WIDTH, MAP_HEIGHT, MAP_WIDTH } from '../../shared';
@@ -11,7 +11,7 @@ export class MapRenderItem extends RenderItem {
* @param renderer 地图渲染器对象
*/
constructor(
readonly layerState: ILayerState,
readonly layerState: IGameMap,
readonly renderer: IMapRenderer,
readonly exManager: IMapExtensionManager
) {
@@ -30,7 +30,7 @@ import {
MapTileBehavior,
MapTileSizeTestMode
} from './types';
import { ILayerState, ILayerStateHooks, IMapLayer } from '@user/data-base';
import { IGameMap, IGameMapHooks, IMapLayer } from '@user/data-base';
import { IHookController, logger } from '@motajs/common';
import { compileProgramWith } from '@motajs/client-base';
import { isNil, maxBy } from 'lodash-es';
@@ -78,9 +78,9 @@ export class MapRenderer
assetWidth: number = 4096;
assetHeight: number = 4096;
layerState: ILayerState;
layerState: IGameMap;
/** 地图状态钩子控制器 */
private layerStateHook: IHookController<ILayerStateHooks>;
private layerStateHook: IHookController<IGameMapHooks>;
/** 排序后的图层 */
private sortedLayers: IMapLayer[] = [];
@@ -210,7 +210,7 @@ export class MapRenderer
*/
constructor(
readonly manager: IMaterialManager,
layerState: ILayerState
layerState: IGameMap
) {
this.movingIndexPool.push(
...Array.from({ length: this.movingCount }, (_, i) => i).reverse()
@@ -427,7 +427,7 @@ export class MapRenderer
this.vertex.updateLayerArray();
}
setLayerState(layerState: ILayerState): void {
setLayerState(layerState: IGameMap): void {
if (layerState === this.layerState) return;
this.layerStateHook.unload();
this.layerState = layerState;
@@ -1735,7 +1735,7 @@ export class MapRenderer
//#endregion
}
class RendererLayerStateHook implements Partial<ILayerStateHooks> {
class RendererLayerStateHook implements Partial<IGameMapHooks> {
constructor(readonly renderer: MapRenderer) {}
onChangeBackground(tile: number): void {
@@ -10,7 +10,7 @@ import {
IMaterialManager,
ITrackedAssetData
} from '@user/client-base';
import { ILayerState, IMapLayer } from '@user/data-base';
import { IGameMap, IMapLayer } from '@user/data-base';
import { TimingFn } from 'mutate-animate';
export const enum MapBackgroundRepeat {
@@ -339,7 +339,7 @@ export interface IMapRenderer {
/** 顶点数组生成器 */
readonly vertex: IMapVertexGenerator;
/** 使用的地图状态对象 */
readonly layerState: ILayerState;
readonly layerState: IGameMap;
/** 地图宽度 */
readonly mapWidth: number;
@@ -432,7 +432,7 @@ export interface IMapRenderer {
* 设置渲染器使用的地图状态
* @param layerState 地图状态
*/
setLayerState(layerState: ILayerState): void;
setLayerState(layerState: IGameMap): void;
/**
* 根据标识符获取图层