mirror of
https://github.com/motajs/template.git
synced 2026-11-06 01:14:31 +08:00
refactor: 游戏地图接口重构
This commit is contained in:
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;
|
||||
|
||||
/**
|
||||
* 根据标识符获取图层
|
||||
|
||||
Reference in new issue
Block a user