Roads are not shown on non-visible tiles

This commit is contained in:
yairm210 2025-09-04 21:43:56 +03:00
parent c049593c5c
commit 90dd2e0ea1

View File

@ -25,18 +25,20 @@ class TileLayerFeatures(tileGroup: TileGroup, size: Float) : TileLayer(tileGroup
override fun hit(x: Float, y: Float, touchable: Boolean): Actor? = null override fun hit(x: Float, y: Float, touchable: Boolean): Actor? = null
override fun draw(batch: Batch?, parentAlpha: Float) = super.draw(batch, parentAlpha) override fun draw(batch: Batch?, parentAlpha: Float) = super.draw(batch, parentAlpha)
private fun updateRoadImages() { private fun updateRoadImages(viewingCiv: Civilization?) {
if (tileGroup.isForMapEditorIcon) if (tileGroup.isForMapEditorIcon)
return return
val tile = tileGroup.tile val tile = tileGroup.tile
val isTileVisible = viewingCiv == null || tile.isVisible(viewingCiv)
for (neighbor in tile.neighbors) { for (neighbor in tile.neighbors) {
val roadImage = roadImages[neighbor] ?: RoadImage() val roadImage = roadImages[neighbor] ?: RoadImage()
.also { roadImages[neighbor] = it } .also { roadImages[neighbor] = it }
val roadStatus = when { val roadStatus = when {
!isTileVisible && viewingCiv != null && !neighbor.isVisible(viewingCiv) -> RoadStatus.None // don't show roads on non-visible tiles
tile.roadStatus == RoadStatus.None || neighbor.roadStatus === RoadStatus.None -> RoadStatus.None tile.roadStatus == RoadStatus.None || neighbor.roadStatus === RoadStatus.None -> RoadStatus.None
tile.roadStatus == RoadStatus.Road || neighbor.roadStatus === RoadStatus.Road -> RoadStatus.Road tile.roadStatus == RoadStatus.Road || neighbor.roadStatus === RoadStatus.Road -> RoadStatus.Road
else -> RoadStatus.Railroad else -> RoadStatus.Railroad
@ -73,7 +75,7 @@ class TileLayerFeatures(tileGroup: TileGroup, size: Float) : TileLayer(tileGroup
} }
override fun doUpdate(viewingCiv: Civilization?, localUniqueCache: LocalUniqueCache) { override fun doUpdate(viewingCiv: Civilization?, localUniqueCache: LocalUniqueCache) {
updateRoadImages() updateRoadImages(viewingCiv)
} }
fun dim() { fun dim() {