From fa9259b1fc58a5e22bde4dbd783cbef6d6767c12 Mon Sep 17 00:00:00 2001 From: evanpelle Date: Thu, 2 Oct 2025 17:31:48 -0700 Subject: [PATCH] don't show train tracks when zoomed out (#2131) ## Description: When zoomed out the tracks don't alias well and makes the map too busy. ## Please complete the following: - [x] I have added screenshots for all UI updates - [x] I process any text displayed to the user through translateText() and I've added it to the en.json file - [x] I have added relevant tests to the test directory - [x] I confirm I have thoroughly tested these changes and take full responsibility for any bugs introduced ## Please put your Discord username so you can be contacted if a bug or regression is found: evan --- src/client/graphics/GameRenderer.ts | 2 +- src/client/graphics/layers/RailroadLayer.ts | 11 ++++++++++- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/src/client/graphics/GameRenderer.ts b/src/client/graphics/GameRenderer.ts index c7c450eb7..dd0954980 100644 --- a/src/client/graphics/GameRenderer.ts +++ b/src/client/graphics/GameRenderer.ts @@ -236,7 +236,7 @@ export function createRenderer( const layers: Layer[] = [ new TerrainLayer(game, transformHandler), new TerritoryLayer(game, eventBus, transformHandler, userSettings), - new RailroadLayer(game), + new RailroadLayer(game, transformHandler), structureLayer, new UnitLayer(game, eventBus, transformHandler), new FxLayer(game), diff --git a/src/client/graphics/layers/RailroadLayer.ts b/src/client/graphics/layers/RailroadLayer.ts index 23806e156..147cca602 100644 --- a/src/client/graphics/layers/RailroadLayer.ts +++ b/src/client/graphics/layers/RailroadLayer.ts @@ -9,6 +9,7 @@ import { RailType, } from "../../../core/game/GameUpdates"; import { GameView } from "../../../core/game/GameView"; +import { TransformHandler } from "../TransformHandler"; import { Layer } from "./Layer"; import { getBridgeRects, getRailroadRects } from "./RailroadSprites"; @@ -27,7 +28,10 @@ export class RailroadLayer implements Layer { private nextRailIndexToCheck = 0; private railTileList: TileRef[] = []; - constructor(private game: GameView) { + constructor( + private game: GameView, + private transformHandler: TransformHandler, + ) { this.theme = game.config().theme(); } @@ -91,6 +95,11 @@ export class RailroadLayer implements Layer { renderLayer(context: CanvasRenderingContext2D) { this.updateRailColors(); + if (this.transformHandler.scale <= 2) { + // When zoomed out, don't show the railroads + // to prevent map clutter. + return; + } context.drawImage( this.canvas, -this.game.width() / 2,