Added language picker screen

This commit is contained in:
Yair Morgenstern 2018-07-26 23:46:14 +03:00
parent bf7eff404b
commit 041f904f6c
3 changed files with 66 additions and 3 deletions

View File

@ -21,8 +21,8 @@ android {
applicationId "com.unciv.game"
minSdkVersion 14
targetSdkVersion 26
versionCode 106
versionName "2.6.8"
versionCode 107
versionName "2.6.9"
}
buildTypes {
release {

View File

@ -128,7 +128,7 @@ class CivilizationInfo {
statMap["Luxury resources"]= getCivResources().keys
.count { it.resourceType === ResourceType.Luxury } * happinessPerUniqueLuxury
for(city in cities){
for(city in cities.toList()){
for(keyvalue in city.cityStats.getCityHappiness()){
if(statMap.containsKey(keyvalue.key))
statMap[keyvalue.key] = statMap[keyvalue.key]!!+keyvalue.value

View File

@ -0,0 +1,63 @@
package com.unciv.ui
import com.badlogic.gdx.graphics.Color
import com.badlogic.gdx.scenes.scene2d.ui.Skin
import com.badlogic.gdx.scenes.scene2d.ui.Table
import com.unciv.UnCivGame
import com.unciv.logic.GameSaver
import com.unciv.models.gamebasics.GameBasics
import com.unciv.ui.pickerscreens.PickerScreen
import com.unciv.ui.utils.ImageGetter
import com.unciv.ui.utils.addClickListener
import com.unciv.ui.utils.enable
import com.unciv.ui.utils.tr
class LanguageTable(val language:String,skin: Skin):Table(skin){
private val blue = ImageGetter.getBlue()
private val darkBlue = blue.cpy().lerp(Color.BLACK,0.5f)!!
init{
pad(10f)
defaults().pad(10f)
add(ImageGetter.getImage("Flags/$language.png"))
add(language)
pack()
}
fun update(chosenLanguage:String){
background = ImageGetter.getBackground( if(chosenLanguage==language) blue else darkBlue)
}
}
class LanguagePickerScreen: PickerScreen(){
var chosenLanguage = "English"
private val languageTables = ArrayList<LanguageTable>()
fun update(){
languageTables.forEach { it.update(chosenLanguage) }
}
init {
closeButton.isVisible = false
GameBasics.Translations.getLanguages().forEach {
val languageTable = LanguageTable(it, skin)
languageTable.addClickListener {
chosenLanguage = languageTable.language
rightSideButton.enable()
update()
}
topTable.add(languageTable).row()
languageTables.add(languageTable)
}
rightSideButton.setText("Pick language".tr())
rightSideButton.addClickListener {
UnCivGame.Current.settings.language = chosenLanguage
GameSaver().setGeneralSettings(UnCivGame.Current.settings)
UnCivGame.Current.startNewGame()
dispose()
}
}
}