refactor(02-02): declare graph builder and test mover interfaces per updated class rule

This commit is contained in:
unanmed 2026-09-09 17:32:28 +08:00
parent ffedb80057
commit e199d99d19
2 changed files with 41 additions and 23 deletions

View File

@ -73,12 +73,48 @@ function directionOf(x: number, y: number): FaceDirection {
//#region 有向图构建
/**
*
*/
export interface IPathfindingGraphBuilder {
/**
* id
* @param maps `null`
*/
useMapState(maps: IMapState | null): void;
/**
*
* @param layer `null`
*/
useMapLayer(layer: IMapLayer | null): void;
/**
*
* @param predicate `null`
*/
usePassPredicate(predicate: IPassPredicate | null): void;
/**
* 使
* @param group
*/
useDirGroup(group: number): void;
/**
*
*
* @returns
*/
build(): IPathGraph;
}
/**
*
*
*
*/
export class PathfindingGraphBuilder {
export class PathfindingGraphBuilder implements IPathfindingGraphBuilder {
/** 绑定的地图状态对象,用于解析图层所属楼层 id */
private maps: IMapState | null = null;
/** 绑定的地图图层,图节点来源 */
@ -91,43 +127,22 @@ export class PathfindingGraphBuilder {
/** 方向组解析对象 */
private readonly mapper: IDirectionMapper = new DirectionMapper();
/**
* id
* @param maps `null`
*/
useMapState(maps: IMapState | null): void {
this.maps = maps;
}
/**
*
* @param layer `null`
*/
useMapLayer(layer: IMapLayer | null): void {
this.layer = layer;
}
/**
*
* @param predicate `null`
*/
usePassPredicate(predicate: IPassPredicate | null): void {
this.predicate = predicate;
}
/**
* 使
* @param group
*/
useDirGroup(group: number): void {
this.group = group;
}
/**
*
*
* @returns
*/
build(): IPathGraph {
const layer = this.layer;
if (isNil(layer)) {

View File

@ -218,7 +218,10 @@ interface SystemFixture {
*
*/
function createTestTile(): TestTile {
class TestMover extends modules.ObjectMover<TestTile> {
class TestMover
extends modules.ObjectMover<TestTile>
implements IObjectMover<TestTile>
{
readonly tile: TestTile;
constructor(tile: TestTile) {