Tileset for new layering is now in base game

New layering now supports natural wonders
This commit is contained in:
Yair Morgenstern
2021-04-01 23:19:07 +03:00
parent 0c06237570
commit bc1c9ad921
295 changed files with 623 additions and 613 deletions

View File

@ -97,7 +97,7 @@ open class TileGroup(var tileInfo: TileInfo, var tileSetStrings:TileSetStrings)
val unitLayerGroup = UnitLayerGroupClass().apply { isTransform = false; setSize(groupSize, groupSize);touchable = Touchable.disabled }
val unitImageLayerGroup = UnitImageLayerGroupClass().apply { isTransform = false; setSize(groupSize, groupSize);touchable = Touchable.disabled }
val cityButtonLayerGroup = Group().apply { isTransform = false; setSize(groupSize, groupSize);
val cityButtonLayerGroup = Group().apply { isTransform = false; setSize(groupSize, groupSize)
touchable = Touchable.childrenOnly; setOrigin(Align.center) }
val circleCrosshairFogLayerGroup = ActionlessGroup().apply { isTransform = false; setSize(groupSize, groupSize) }
@ -173,6 +173,10 @@ open class TileGroup(var tileInfo: TileInfo, var tileSetStrings:TileSetStrings)
if (viewingCiv == null && !showEntireMap) return listOf(tileSetStrings.hexagon)
val shouldShowImprovement = tileInfo.improvement != null && UncivGame.Current.settings.showPixelImprovements
if (tileInfo.resource != null)
println()
val shouldShowResource = UncivGame.Current.settings.showPixelImprovements
&& tileInfo.resource != null &&
(showEntireMap || viewingCiv == null || tileInfo.hasViewableResource(viewingCiv))
@ -182,24 +186,23 @@ open class TileGroup(var tileInfo: TileInfo, var tileSetStrings:TileSetStrings)
if (shouldShowImprovement) resourceAndImprovementSequence += sequenceOf(tileInfo.improvement)
resourceAndImprovementSequence = resourceAndImprovementSequence.filterNotNull()
val allTogether = (sequenceOf(tileInfo.baseTerrain) + tileInfo.terrainFeatures.asSequence() + resourceAndImprovementSequence)
.filterNotNull().joinToString("+").let { tileSetStrings.getTile(it) }
val terrainImages = (sequenceOf(tileInfo.baseTerrain) + tileInfo.terrainFeatures.asSequence() + sequenceOf(tileInfo.naturalWonder)).filterNotNull()
val allTogether = (terrainImages + resourceAndImprovementSequence).joinToString("+").let { tileSetStrings.getTile(it) }
if (ImageGetter.imageExists(allTogether)) return listOf(allTogether)
else return getTerrainImageLocations() + getImprovementAndResourceImages(resourceAndImprovementSequence)
else return getTerrainImageLocations(terrainImages) + getImprovementAndResourceImages(resourceAndImprovementSequence)
}
fun getTerrainImageLocations(): List<String> {
val terrainSequence = sequenceOf(tileInfo.baseTerrain) + tileInfo.terrainFeatures.asSequence()
fun getTerrainImageLocations(terrainSequence: Sequence<String>): List<String> {
val allTerrains = terrainSequence.joinToString("+").let { tileSetStrings.getTile(it) }
if (ImageGetter.imageExists(allTerrains)) return listOf(allTerrains)
else return terrainSequence.toList()
else return terrainSequence.map { tileSetStrings.getTile(it) }.toList()
}
fun getImprovementAndResourceImages(resourceAndImprovementSequence: Sequence<String>): List<String> {
val altogether = resourceAndImprovementSequence.joinToString("+").let { tileSetStrings.getTile(it) }
if (ImageGetter.imageExists(altogether)) return listOf(altogether)
else return resourceAndImprovementSequence.toList()
else return resourceAndImprovementSequence.map { tileSetStrings.getTile(it) }.toList()
}
fun getTileBaseImageLocations(viewingCiv: CivilizationInfo?): List<String> {
@ -786,11 +789,9 @@ open class TileGroup(var tileInfo: TileInfo, var tileSetStrings:TileSetStrings)
circleImage.color = color.cpy().apply { a = alpha }
}
fun hideCircle() {
circleImage.isVisible = false
}
fun hideCircle() { circleImage.isVisible = false }
/** This exists so we can easily find the TileGroup draw method in the android profiling, otherwise it's just a mass of Group.draw->drawChildren->Group.draw etc. */
override fun draw(batch: Batch?, parentAlpha: Float) { super.draw(batch, parentAlpha) }
override fun act(delta: Float) { super.act(delta) }
}
}

View File

@ -125,7 +125,8 @@ object UnitActions {
action = {
UncivGame.Current.settings.addCompletedTutorialTask("Found city")
unit.civInfo.addCity(tile.position)
tile.improvement = "City center"
if (tile.ruleset.tileImprovements.containsKey("City center"))
tile.improvement = "City center"
unit.destroy()
}.takeIf { unit.currentMovement > 0 && !tile.getTilesInDistance(3).any { it.isCityCenter() } })
}