Add path cache (#763)

Based on #753

Co-authored-by: Scott Anderson <662325+scottanderson@users.noreply.github.com>
This commit is contained in:
Scott Anderson
2025-05-15 22:12:02 -04:00
committed by GitHub
parent 70745faac4
commit 6517f80f68
3 changed files with 25 additions and 0 deletions
+14
View File
@@ -98,6 +98,19 @@ export class TradeShipExecution implements Execution {
}
}
const cachedNextTile = this._dstPort.cacheGet(this.tradeShip.tile());
if (cachedNextTile !== undefined) {
if (
this.mg.isWater(cachedNextTile) &&
this.mg.isShoreline(cachedNextTile)
) {
this.tradeShip.setSafeFromPirates();
}
this.tradeShip.move(cachedNextTile);
this.tilesTraveled++;
return;
}
const result = this.pathFinder.nextTile(
this.tradeShip.tile(),
this._dstPort.tile(),
@@ -112,6 +125,7 @@ export class TradeShipExecution implements Execution {
this.tradeShip.move(this.tradeShip.tile());
break;
case PathFindResultType.NextTile:
this._dstPort.cachePut(this.tradeShip.tile(), result.tile);
// Update safeFromPirates status
if (this.mg.isWater(result.tile) && this.mg.isShoreline(result.tile)) {
this.tradeShip.setSafeFromPirates();