mirror of
https://github.com/yairm210/Unciv.git
synced 2025-07-22 22:00:24 +07:00
Merge branch 'master' of https://github.com/yairm210/Unciv
This commit is contained in:
@ -22,7 +22,6 @@ import com.unciv.models.UncivSound
|
|||||||
import com.unciv.models.ruleset.tile.ResourceType
|
import com.unciv.models.ruleset.tile.ResourceType
|
||||||
import com.unciv.models.ruleset.unit.UnitType
|
import com.unciv.models.ruleset.unit.UnitType
|
||||||
import com.unciv.models.translations.tr
|
import com.unciv.models.translations.tr
|
||||||
import com.unciv.ui.victoryscreen.VictoryScreen
|
|
||||||
import com.unciv.ui.cityscreen.CityScreen
|
import com.unciv.ui.cityscreen.CityScreen
|
||||||
import com.unciv.ui.pickerscreens.GreatPersonPickerScreen
|
import com.unciv.ui.pickerscreens.GreatPersonPickerScreen
|
||||||
import com.unciv.ui.pickerscreens.PolicyPickerScreen
|
import com.unciv.ui.pickerscreens.PolicyPickerScreen
|
||||||
@ -30,11 +29,13 @@ import com.unciv.ui.pickerscreens.TechButton
|
|||||||
import com.unciv.ui.pickerscreens.TechPickerScreen
|
import com.unciv.ui.pickerscreens.TechPickerScreen
|
||||||
import com.unciv.ui.trade.DiplomacyScreen
|
import com.unciv.ui.trade.DiplomacyScreen
|
||||||
import com.unciv.ui.utils.*
|
import com.unciv.ui.utils.*
|
||||||
|
import com.unciv.ui.victoryscreen.VictoryScreen
|
||||||
import com.unciv.ui.worldscreen.bottombar.BattleTable
|
import com.unciv.ui.worldscreen.bottombar.BattleTable
|
||||||
import com.unciv.ui.worldscreen.bottombar.TileInfoTable
|
import com.unciv.ui.worldscreen.bottombar.TileInfoTable
|
||||||
import com.unciv.ui.worldscreen.mainmenu.OnlineMultiplayer
|
import com.unciv.ui.worldscreen.mainmenu.OnlineMultiplayer
|
||||||
import com.unciv.ui.worldscreen.unit.UnitActionsTable
|
import com.unciv.ui.worldscreen.unit.UnitActionsTable
|
||||||
import com.unciv.ui.worldscreen.unit.UnitTable
|
import com.unciv.ui.worldscreen.unit.UnitTable
|
||||||
|
import java.util.*
|
||||||
import kotlin.concurrent.thread
|
import kotlin.concurrent.thread
|
||||||
|
|
||||||
class WorldScreen(val viewingCiv:CivilizationInfo) : CameraStageBaseScreen() {
|
class WorldScreen(val viewingCiv:CivilizationInfo) : CameraStageBaseScreen() {
|
||||||
@ -125,10 +126,19 @@ class WorldScreen(val viewingCiv:CivilizationInfo) : CameraStageBaseScreen() {
|
|||||||
|
|
||||||
if(gameInfo.gameParameters.isOnlineMultiplayer && !gameInfo.isUpToDate)
|
if(gameInfo.gameParameters.isOnlineMultiplayer && !gameInfo.isUpToDate)
|
||||||
isPlayersTurn = false // until we're up to date, don't let the player do anything
|
isPlayersTurn = false // until we're up to date, don't let the player do anything
|
||||||
|
|
||||||
if(gameInfo.gameParameters.isOnlineMultiplayer && !isPlayersTurn) {
|
if(gameInfo.gameParameters.isOnlineMultiplayer && !isPlayersTurn) {
|
||||||
stage.addAction(Actions.forever(Actions.sequence(Actions.run {
|
// restart the timer
|
||||||
loadLatestMultiplayerState()
|
if (multiPlayerRefresher != null) {
|
||||||
}, Actions.delay(10f)))) // delay is in seconds
|
multiPlayerRefresher?.cancel()
|
||||||
|
multiPlayerRefresher?.purge()
|
||||||
|
}
|
||||||
|
// isDaemon = true, in order to not block the app closing
|
||||||
|
multiPlayerRefresher = Timer("multiPlayerRefresh", true).apply {
|
||||||
|
scheduleAtFixedRate(object : TimerTask() {
|
||||||
|
override fun run() { Gdx.app.postRunnable{ loadLatestMultiplayerState() } }
|
||||||
|
}, 0, 10000) // 10 seconds
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
tutorialController.allTutorialsShowedCallback = {
|
tutorialController.allTutorialsShowedCallback = {
|
||||||
@ -221,7 +231,7 @@ class WorldScreen(val viewingCiv:CivilizationInfo) : CameraStageBaseScreen() {
|
|||||||
return@thread
|
return@thread
|
||||||
}
|
}
|
||||||
latestGame.isUpToDate=true
|
latestGame.isUpToDate=true
|
||||||
// Since we're making a screen this needs to run from the man thread which has a GL context
|
// Since we're making a screen this needs to run from the main thread which has a GL context
|
||||||
Gdx.app.postRunnable { game.loadGame(latestGame) }
|
Gdx.app.postRunnable { game.loadGame(latestGame) }
|
||||||
|
|
||||||
} catch (ex: Exception) {
|
} catch (ex: Exception) {
|
||||||
@ -629,5 +639,11 @@ class WorldScreen(val viewingCiv:CivilizationInfo) : CameraStageBaseScreen() {
|
|||||||
// show the dialog
|
// show the dialog
|
||||||
promptWindow.open (true) // true = always on top
|
promptWindow.open (true) // true = always on top
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
companion object {
|
||||||
|
// this object must not be created multiple times
|
||||||
|
private var multiPlayerRefresher : Timer? = null
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user