mirror of
https://github.com/yairm210/Unciv.git
synced 2025-02-12 20:07:28 +07:00
Better wrapping for long construction item names
This commit is contained in:
parent
0d9cff0922
commit
711655c786
@ -23,11 +23,6 @@ import com.unciv.models.ruleset.unit.BaseUnit
|
||||
import com.unciv.models.stats.Stat
|
||||
import com.unciv.models.translations.tr
|
||||
import com.unciv.ui.audio.SoundPlayer
|
||||
import com.unciv.ui.images.ImageGetter
|
||||
import com.unciv.ui.popups.ConfirmPopup
|
||||
import com.unciv.ui.popups.Popup
|
||||
import com.unciv.ui.popups.closeAllPopups
|
||||
import com.unciv.ui.screens.basescreen.BaseScreen
|
||||
import com.unciv.ui.components.ExpanderTab
|
||||
import com.unciv.ui.components.UncivTooltip.Companion.addTooltip
|
||||
import com.unciv.ui.components.extensions.addBorder
|
||||
@ -45,6 +40,11 @@ import com.unciv.ui.components.extensions.packIfNeeded
|
||||
import com.unciv.ui.components.extensions.surroundWithCircle
|
||||
import com.unciv.ui.components.extensions.toLabel
|
||||
import com.unciv.ui.components.extensions.toTextButton
|
||||
import com.unciv.ui.images.ImageGetter
|
||||
import com.unciv.ui.popups.ConfirmPopup
|
||||
import com.unciv.ui.popups.Popup
|
||||
import com.unciv.ui.popups.closeAllPopups
|
||||
import com.unciv.ui.screens.basescreen.BaseScreen
|
||||
import com.unciv.utils.concurrency.Concurrency
|
||||
import com.unciv.utils.concurrency.launchOnGLThread
|
||||
import kotlin.math.max
|
||||
@ -380,28 +380,29 @@ class CityConstructionsTable(private val cityScreen: CityScreen) {
|
||||
pickConstructionButton.add(getProgressBar(construction.name)).padRight(5f)
|
||||
pickConstructionButton.add(icon).padRight(10f)
|
||||
|
||||
val table = Table().apply { isTransform = false }
|
||||
val tableRes = Table().apply { isTransform = false }
|
||||
val constructionTable = Table().apply { isTransform = false }
|
||||
val resourceTable = Table().apply { isTransform = false }
|
||||
|
||||
val textColor = if (constructionButtonDTO.rejectionReason == null) Color.WHITE else Color.RED
|
||||
table.add(construction.name.tr().toLabel(fontColor = textColor)).expandX().left().row()
|
||||
constructionTable.add(construction.name.toLabel(fontColor = textColor).apply { wrap=true })
|
||||
.width(cityScreen.stage.width/5).expandX().left().row()
|
||||
|
||||
tableRes.add(constructionButtonDTO.buttonText.toLabel()).expandX().left()
|
||||
resourceTable.add(constructionButtonDTO.buttonText.toLabel()).expandX().left()
|
||||
if (constructionButtonDTO.resourcesRequired != null) {
|
||||
for ((resource, amount) in constructionButtonDTO.resourcesRequired) {
|
||||
if (constructionButtonDTO.rejectionReason?.type == RejectionReasonType.ConsumesResources)
|
||||
tableRes.add(amount.toString().toLabel(fontColor = Color.RED)).expandX().left().padLeft(5f)
|
||||
else
|
||||
tableRes.add(amount.toString().toLabel(fontColor = Color.WHITE)).expandX().left().padLeft(5f)
|
||||
tableRes.add(ImageGetter.getResourcePortrait(resource, 15f)).padBottom(1f)
|
||||
val color = if (constructionButtonDTO.rejectionReason?.type == RejectionReasonType.ConsumesResources)
|
||||
Color.RED else Color.WHITE
|
||||
resourceTable.add(amount.toString().toLabel(fontColor = color)).expandX().left().padLeft(5f)
|
||||
resourceTable.add(ImageGetter.getResourcePortrait(resource, 15f)).padBottom(1f)
|
||||
}
|
||||
}
|
||||
table.add(tableRes).expandX().left()
|
||||
constructionTable.add(resourceTable).expandX().left()
|
||||
|
||||
pickConstructionButton.add(table).expandX().left()
|
||||
pickConstructionButton.add(constructionTable).expandX().left()
|
||||
|
||||
if (!cannotAddConstructionToQueue(construction, cityScreen.city, cityScreen.city.cityConstructions)) {
|
||||
val addToQueueButton = ImageGetter.getImage("OtherIcons/New").apply { color = Color.BLACK }.surroundWithCircle(40f)
|
||||
val addToQueueButton = ImageGetter.getImage("OtherIcons/New")
|
||||
.apply { color = Color.BLACK }.surroundWithCircle(40f)
|
||||
addToQueueButton.onClick(UncivSound.Silent) {
|
||||
// Since the pickConstructionButton.onClick adds the construction if it's selected,
|
||||
// this effectively adds the construction even if it's unselected
|
||||
@ -418,7 +419,8 @@ class CityConstructionsTable(private val cityScreen: CityScreen) {
|
||||
if (constructionButtonDTO.rejectionReason.type != RejectionReasonType.ConsumesResources) {
|
||||
pickConstructionButton.add(constructionButtonDTO.rejectionReason.errorMessage
|
||||
.toLabel(Color.RED).apply { wrap = true })
|
||||
.colspan(pickConstructionButton.columns).fillX().left().padTop(2f)
|
||||
.colspan(pickConstructionButton.columns)
|
||||
.width(cityScreen.stage.width/4).fillX().left().padTop(2f)
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -65,7 +65,7 @@ class SpecialistAllocationTable(val cityScreen: CityScreen) : Table(BaseScreen.s
|
||||
else Color.GRAY // unassigned
|
||||
val icon = ImageGetter.getSpecialistIcon(color)
|
||||
specialistIconTable.add(icon).size(30f)
|
||||
if (i % 6 == 0) specialistIconTable.row()
|
||||
if (i % 5 == 0) specialistIconTable.row()
|
||||
}
|
||||
return specialistIconTable
|
||||
}
|
||||
@ -107,10 +107,20 @@ class SpecialistAllocationTable(val cityScreen: CityScreen) : Table(BaseScreen.s
|
||||
private fun getSpecialistStatsTable(specialistName: String): Table {
|
||||
val specialistStatTable = Table().apply { defaults().padBottom(5f).padTop(5f) }
|
||||
val specialistStats = cityInfo.cityStats.getStatsOfSpecialist(specialistName)
|
||||
var itemsInRow = 0
|
||||
fun incrementItemsInRow(){
|
||||
itemsInRow++
|
||||
if (itemsInRow % 3 == 0){
|
||||
itemsInRow = 0
|
||||
specialistStatTable.row()
|
||||
}
|
||||
}
|
||||
|
||||
for ((key, value) in specialistStats) {
|
||||
if (value == 0f) continue
|
||||
specialistStatTable.add(value.toInt().toLabel())
|
||||
specialistStatTable.add(ImageGetter.getStatIcon(key.name)).size(20f).padRight(10f)
|
||||
incrementItemsInRow()
|
||||
}
|
||||
|
||||
val specialist = cityInfo.getRuleset().specialists[specialistName]!!
|
||||
@ -118,6 +128,7 @@ class SpecialistAllocationTable(val cityScreen: CityScreen) : Table(BaseScreen.s
|
||||
for (s in specialist.greatPersonPoints) {
|
||||
specialistStatTable.add(s.value.toLabel())
|
||||
specialistStatTable.add(ImageGetter.getUnitIcon(s.key, Color.GOLD).toGroup(20f)).padRight(10f)
|
||||
incrementItemsInRow()
|
||||
}
|
||||
|
||||
return specialistStatTable
|
||||
|
@ -1671,6 +1671,11 @@ Simple unique parameters are explained by mouseover. Complex parameters are expl
|
||||
|
||||
Applicable to: Conditional
|
||||
|
||||
??? example "<for [nationFilter]>"
|
||||
Example: "<for [City-States]>"
|
||||
|
||||
Applicable to: Conditional
|
||||
|
||||
??? example "<when at war>"
|
||||
Applicable to: Conditional
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user