From b59cc8ab4f5fb39ec751a94031aa0f85e7cde540 Mon Sep 17 00:00:00 2001 From: Yair Morgenstern Date: Wed, 22 Apr 2020 16:25:42 +0300 Subject: [PATCH] Fixed resource display bug in tile table in multiplayer --- build.gradle | 2 +- core/src/com/unciv/MenuScreen.kt | 47 +++++++++++++++---- core/src/com/unciv/logic/map/TileInfo.kt | 2 +- .../com/unciv/ui/mapeditor/EditorMapHolder.kt | 4 +- .../com/unciv/ui/mapeditor/MapEditorScreen.kt | 2 +- .../ui/worldscreen/bottombar/TileInfoTable.kt | 2 +- 6 files changed, 45 insertions(+), 14 deletions(-) diff --git a/build.gradle b/build.gradle index d3d6f37753..65ad052052 100644 --- a/build.gradle +++ b/build.gradle @@ -33,7 +33,7 @@ allprojects { version = '1.0.1' ext { appName = "Unciv" - appCodeNumber = 415 + appCodeNumber = 416 appVersion = "3.8.0" gdxVersion = '1.9.10' diff --git a/core/src/com/unciv/MenuScreen.kt b/core/src/com/unciv/MenuScreen.kt index 9753fc6ec4..0c48d477af 100644 --- a/core/src/com/unciv/MenuScreen.kt +++ b/core/src/com/unciv/MenuScreen.kt @@ -1,7 +1,9 @@ package com.unciv +import com.badlogic.gdx.Gdx import com.badlogic.gdx.graphics.Color import com.badlogic.gdx.scenes.scene2d.Touchable +import com.badlogic.gdx.scenes.scene2d.actions.Actions import com.badlogic.gdx.scenes.scene2d.ui.Image import com.badlogic.gdx.scenes.scene2d.ui.ScrollPane import com.badlogic.gdx.scenes.scene2d.ui.Table @@ -9,18 +11,29 @@ import com.badlogic.gdx.scenes.scene2d.utils.TiledDrawable import com.badlogic.gdx.utils.Align import com.unciv.logic.GameSaver import com.unciv.logic.GameStarter +import com.unciv.logic.map.MapGenerator import com.unciv.logic.map.MapParameters +import com.unciv.logic.map.MapSize +import com.unciv.logic.map.MapType import com.unciv.models.metadata.GameParameters +import com.unciv.models.ruleset.RulesetCache import com.unciv.models.translations.tr import com.unciv.ui.MultiplayerScreen +import com.unciv.ui.map.TileGroupMap +import com.unciv.ui.mapeditor.EditorMapHolder import com.unciv.ui.mapeditor.LoadMapScreen +import com.unciv.ui.mapeditor.MapEditorScreen import com.unciv.ui.mapeditor.NewMapScreen import com.unciv.ui.newgamescreen.NewGameScreen import com.unciv.ui.saves.LoadGameScreen import com.unciv.ui.utils.* +import com.unciv.ui.worldscreen.WorldMapHolder +import kotlin.concurrent.thread +import kotlin.concurrent.timer class MenuScreen: CameraStageBaseScreen() { val autosave = "Autosave" + val backgroundTable = Table().apply { background=ImageGetter.getBackground(Color.WHITE) } private fun getTableBlock(text: String, icon: String, function: () -> Unit): Table { val table = Table().pad(30f) @@ -34,14 +47,32 @@ class MenuScreen: CameraStageBaseScreen() { } init { - val backgroundWhite = ImageGetter.getWhiteDot() - backgroundWhite.setFillParent(true) - stage.addActor(backgroundWhite) - val drawable = ImageGetter.getDrawable("OtherIcons/RepeatingBackground") - val tiledDrawable = TiledDrawable(drawable) - val backgroundImage = Image(tiledDrawable).apply { color = Color.WHITE.cpy().apply { a=0.5f } } - backgroundImage.setFillParent(true) - stage.addActor(backgroundImage) + stage.addActor(backgroundTable) + backgroundTable.center(stage) + + thread(name="ShowMapBackground") { + val newMap = MapGenerator(RulesetCache.getBaseRuleset()) + .generateMap(MapParameters().apply { size = MapSize.Small; type=MapType.default }) + Gdx.app.postRunnable { // for GL context + val mapHolder = EditorMapHolder(MapEditorScreen(), newMap) + backgroundTable.addAction(Actions.sequence( + Actions.fadeOut(0f), + Actions.run { + mapHolder.apply { + addTiles(30f) + touchable = Touchable.disabled + setScale(1f) + center(this@MenuScreen.stage) + layout() + } + backgroundTable.add(mapHolder).size(stage.width, stage.height) + }, + Actions.fadeIn(0.3f) + )) + + + } + } val table = Table().apply { defaults().pad(10f) } val autosaveGame = GameSaver.getSave(autosave, false) diff --git a/core/src/com/unciv/logic/map/TileInfo.kt b/core/src/com/unciv/logic/map/TileInfo.kt index f20e3b1f24..54cdfbd12c 100644 --- a/core/src/com/unciv/logic/map/TileInfo.kt +++ b/core/src/com/unciv/logic/map/TileInfo.kt @@ -338,7 +338,7 @@ open class TileInfo { } lineList += baseTerrain.tr() if (terrainFeature != null) lineList += terrainFeature!!.tr() - if (hasViewableResource(tileMap.gameInfo.getCurrentPlayerCivilization())) lineList += resource!!.tr() + if (viewingCiv==null || hasViewableResource(viewingCiv)) lineList += resource!!.tr() if (naturalWonder != null) lineList += naturalWonder!!.tr() if (roadStatus !== RoadStatus.None && !isCityCenter()) lineList += roadStatus.toString().tr() if (improvement != null) lineList += improvement!!.tr() diff --git a/core/src/com/unciv/ui/mapeditor/EditorMapHolder.kt b/core/src/com/unciv/ui/mapeditor/EditorMapHolder.kt index ddf502093c..d3ac95de37 100644 --- a/core/src/com/unciv/ui/mapeditor/EditorMapHolder.kt +++ b/core/src/com/unciv/ui/mapeditor/EditorMapHolder.kt @@ -14,13 +14,13 @@ class EditorMapHolder(internal val mapEditorScreen: MapEditorScreen, internal va val tileGroups = HashMap() lateinit var tileGroupMap: TileGroupMap - internal fun addTiles() { + internal fun addTiles(padding:Float) { val tileSetStrings = TileSetStrings() for (tileGroup in tileMap.values.map { TileGroup(it, tileSetStrings) }) tileGroups[tileGroup.tileInfo] = tileGroup - tileGroupMap = TileGroupMap(tileGroups.values, mapEditorScreen.stage.width) + tileGroupMap = TileGroupMap(tileGroups.values, padding) actor = tileGroupMap for (tileGroup in tileGroups.values) { diff --git a/core/src/com/unciv/ui/mapeditor/MapEditorScreen.kt b/core/src/com/unciv/ui/mapeditor/MapEditorScreen.kt index 44ff0c73c8..90651574ad 100644 --- a/core/src/com/unciv/ui/mapeditor/MapEditorScreen.kt +++ b/core/src/com/unciv/ui/mapeditor/MapEditorScreen.kt @@ -48,7 +48,7 @@ class MapEditorScreen(): CameraStageBaseScreen() { tileMap.setTransients(ruleset) mapHolder = EditorMapHolder(this, tileMap) - mapHolder.addTiles() + mapHolder.addTiles(stage.width) stage.addActor(mapHolder) stage.scrollFocus = mapHolder diff --git a/core/src/com/unciv/ui/worldscreen/bottombar/TileInfoTable.kt b/core/src/com/unciv/ui/worldscreen/bottombar/TileInfoTable.kt index f28fa5da81..f0dd3bfff2 100644 --- a/core/src/com/unciv/ui/worldscreen/bottombar/TileInfoTable.kt +++ b/core/src/com/unciv/ui/worldscreen/bottombar/TileInfoTable.kt @@ -18,7 +18,7 @@ class TileInfoTable(private val viewingCiv :CivilizationInfo) : Table(CameraStag internal fun updateTileTable(tile: TileInfo?) { clearChildren() - if ((tile != null) && (UncivGame.Current.viewEntireMapForDebug || viewingCiv.exploredTiles.contains(tile.position))) { + if (tile != null && (UncivGame.Current.viewEntireMapForDebug || viewingCiv.exploredTiles.contains(tile.position)) ) { add(getStatsTable(tile)) add(tile.toString(viewingCiv).toLabel()).colspan(2).pad(10f) }