From 58def1809dabfe821b6e971dfa35d4239a5c3bcf Mon Sep 17 00:00:00 2001 From: unanmed <1319491857@qq.com> Date: Mon, 5 Oct 2026 16:34:18 +0800 Subject: [PATCH] fix(08-05): expose MapTileBase.restoreDefaultEvents and use it in toStatic - MapTileBase.restoreDefaultEvents: protected -> public; declare on ITileBase with jsDoc - MapLayer.toStatic(keepEvent=false): reset reused static tile via restoreDefaultEvents() instead of loadState({}) --- packages-user/data-base/src/map/mapLayer.ts | 2 +- packages-user/data-base/src/map/tile.ts | 2 +- packages-user/data-base/src/map/types.ts | 5 +++++ 3 files changed, 7 insertions(+), 2 deletions(-) diff --git a/packages-user/data-base/src/map/mapLayer.ts b/packages-user/data-base/src/map/mapLayer.ts index 1739988..8fe5a25 100644 --- a/packages-user/data-base/src/map/mapLayer.ts +++ b/packages-user/data-base/src/map/mapLayer.ts @@ -383,7 +383,7 @@ export class MapLayer staticTile.syncTileEvent(tile); } else { // 不保留事件时,将复用的静态图块重置为默认事件 - staticTile.loadState({}); + staticTile.restoreDefaultEvents(); } this.removeDynamic(tile, tile.x, tile.y); this.forEachHook(hook => hook.onDeleteDynamic?.(tile)); diff --git a/packages-user/data-base/src/map/tile.ts b/packages-user/data-base/src/map/tile.ts index 68082ff..0ab1fe9 100644 --- a/packages-user/data-base/src/map/tile.ts +++ b/packages-user/data-base/src/map/tile.ts @@ -43,7 +43,7 @@ export abstract class MapTileBase /** * 根据当前图块原始数据恢复默认事件并建立干净基准 */ - protected restoreDefaultEvents(): void { + restoreDefaultEvents(): void { const eventView = this.tileEvent(); eventView.clear(); const data = this.raw(); diff --git a/packages-user/data-base/src/map/types.ts b/packages-user/data-base/src/map/types.ts index e9aab13..997a968 100644 --- a/packages-user/data-base/src/map/types.ts +++ b/packages-user/data-base/src/map/types.ts @@ -139,6 +139,11 @@ export interface ITileBase extends IReadonlyTileBase { * @param origin 要从哪个图块复制 */ syncTileEvent(origin: IReadonlyTileBase): void; + + /** + * 根据当前图块原始数据恢复默认事件并建立干净基准 + */ + restoreDefaultEvents(): void; } export interface IStaticTile