mirror of
https://github.com/yairm210/Unciv.git
synced 2025-07-05 15:59:50 +07:00
GameSaver and HexMath are now in "logic" and are not static classes
This commit is contained in:
@ -5,13 +5,14 @@ import com.badlogic.gdx.Gdx
|
|||||||
import com.badlogic.gdx.math.Vector2
|
import com.badlogic.gdx.math.Vector2
|
||||||
import com.badlogic.gdx.utils.Json
|
import com.badlogic.gdx.utils.Json
|
||||||
import com.unciv.logic.GameInfo
|
import com.unciv.logic.GameInfo
|
||||||
|
import com.unciv.logic.GameSaver
|
||||||
import com.unciv.logic.civilization.CivilizationInfo
|
import com.unciv.logic.civilization.CivilizationInfo
|
||||||
import com.unciv.logic.map.TileMap
|
import com.unciv.logic.map.TileMap
|
||||||
import com.unciv.models.gamebasics.*
|
import com.unciv.models.gamebasics.*
|
||||||
import com.unciv.models.gamebasics.Unit
|
import com.unciv.models.gamebasics.Unit
|
||||||
import com.unciv.models.stats.INamed
|
import com.unciv.models.stats.INamed
|
||||||
import com.unciv.ui.GameSettings
|
import com.unciv.ui.GameSettings
|
||||||
import com.unciv.ui.utils.GameSaver
|
import com.unciv.ui.NewGameScreen
|
||||||
import com.unciv.ui.utils.getRandom
|
import com.unciv.ui.utils.getRandom
|
||||||
import com.unciv.ui.worldscreen.WorldScreen
|
import com.unciv.ui.worldscreen.WorldScreen
|
||||||
|
|
||||||
@ -25,7 +26,7 @@ class UnCivGame : Game() {
|
|||||||
setupGameBasics()
|
setupGameBasics()
|
||||||
|
|
||||||
Current = this
|
Current = this
|
||||||
if (GameSaver.getSave("Autosave").exists()) {
|
if (GameSaver().getSave("Autosave").exists()) {
|
||||||
try {
|
try {
|
||||||
loadGame("Autosave")
|
loadGame("Autosave")
|
||||||
} catch (ex: Exception) { // silent fail if we can't read the autosave
|
} catch (ex: Exception) { // silent fail if we can't read the autosave
|
||||||
@ -36,7 +37,7 @@ class UnCivGame : Game() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
fun loadGame(gameName:String){
|
fun loadGame(gameName:String){
|
||||||
gameInfo = GameSaver.loadGame( gameName)
|
gameInfo = GameSaver().loadGame( gameName)
|
||||||
worldScreen = WorldScreen()
|
worldScreen = WorldScreen()
|
||||||
setWorldScreen()
|
setWorldScreen()
|
||||||
}
|
}
|
||||||
|
@ -1,12 +1,11 @@
|
|||||||
package com.unciv.ui.utils
|
package com.unciv.logic
|
||||||
|
|
||||||
import com.badlogic.gdx.Gdx
|
import com.badlogic.gdx.Gdx
|
||||||
import com.badlogic.gdx.files.FileHandle
|
import com.badlogic.gdx.files.FileHandle
|
||||||
import com.badlogic.gdx.utils.Json
|
import com.badlogic.gdx.utils.Json
|
||||||
import com.unciv.logic.GameInfo
|
|
||||||
|
|
||||||
object GameSaver {
|
class GameSaver {
|
||||||
private const val saveFilesFolder = "SaveFiles"
|
private val saveFilesFolder = "SaveFiles"
|
||||||
|
|
||||||
fun getSave(GameName: String): FileHandle {
|
fun getSave(GameName: String): FileHandle {
|
||||||
return Gdx.files.local("$saveFilesFolder/$GameName")
|
return Gdx.files.local("$saveFilesFolder/$GameName")
|
@ -1,9 +1,9 @@
|
|||||||
package com.unciv.ui.utils
|
package com.unciv.logic
|
||||||
|
|
||||||
import com.badlogic.gdx.math.Vector2
|
import com.badlogic.gdx.math.Vector2
|
||||||
import java.util.*
|
import java.util.*
|
||||||
|
|
||||||
object HexMath {
|
class HexMath {
|
||||||
|
|
||||||
fun GetVectorForAngle(angle: Float): Vector2 {
|
fun GetVectorForAngle(angle: Float): Vector2 {
|
||||||
return Vector2(Math.sin(angle.toDouble()).toFloat(), Math.cos(angle.toDouble()).toFloat())
|
return Vector2(Math.sin(angle.toDouble()).toFloat(), Math.cos(angle.toDouble()).toFloat())
|
@ -1,11 +1,11 @@
|
|||||||
package com.unciv.logic.map
|
package com.unciv.logic.map
|
||||||
|
|
||||||
import com.badlogic.gdx.math.Vector2
|
import com.badlogic.gdx.math.Vector2
|
||||||
|
import com.unciv.logic.HexMath
|
||||||
import com.unciv.models.gamebasics.GameBasics
|
import com.unciv.models.gamebasics.GameBasics
|
||||||
import com.unciv.models.gamebasics.ResourceType
|
import com.unciv.models.gamebasics.ResourceType
|
||||||
import com.unciv.models.gamebasics.TerrainType
|
import com.unciv.models.gamebasics.TerrainType
|
||||||
import com.unciv.models.gamebasics.TileResource
|
import com.unciv.models.gamebasics.TileResource
|
||||||
import com.unciv.ui.utils.HexMath
|
|
||||||
import com.unciv.ui.utils.getRandom
|
import com.unciv.ui.utils.getRandom
|
||||||
|
|
||||||
class SeedRandomMapGenerator : RandomMapGenerator() {
|
class SeedRandomMapGenerator : RandomMapGenerator() {
|
||||||
@ -14,7 +14,7 @@ class SeedRandomMapGenerator : RandomMapGenerator() {
|
|||||||
|
|
||||||
val map = HashMap<Vector2, TileInfo?>()
|
val map = HashMap<Vector2, TileInfo?>()
|
||||||
|
|
||||||
for (vector in HexMath.GetVectorsInDistance(Vector2.Zero, distance))
|
for (vector in HexMath().GetVectorsInDistance(Vector2.Zero, distance))
|
||||||
map[vector] = null
|
map[vector] = null
|
||||||
|
|
||||||
class Area(val terrain: String) {
|
class Area(val terrain: String) {
|
||||||
@ -49,7 +49,7 @@ class SeedRandomMapGenerator : RandomMapGenerator() {
|
|||||||
val expandableAreas = ArrayList<Area>(areas)
|
val expandableAreas = ArrayList<Area>(areas)
|
||||||
while (expandableAreas.isNotEmpty()){
|
while (expandableAreas.isNotEmpty()){
|
||||||
val areaToExpand = expandableAreas.getRandom()
|
val areaToExpand = expandableAreas.getRandom()
|
||||||
val availableExpansionVectors = areaToExpand.locations.flatMap { HexMath.GetAdjacentVectors(it) }.distinct()
|
val availableExpansionVectors = areaToExpand.locations.flatMap { HexMath().GetAdjacentVectors(it) }.distinct()
|
||||||
.filter { map.containsKey(it) && map[it] == null }
|
.filter { map.containsKey(it) && map[it] == null }
|
||||||
if(availableExpansionVectors.isEmpty()) expandableAreas -= areaToExpand
|
if(availableExpansionVectors.isEmpty()) expandableAreas -= areaToExpand
|
||||||
else {
|
else {
|
||||||
@ -130,7 +130,7 @@ open class RandomMapGenerator {
|
|||||||
|
|
||||||
open fun generateMap(distance: Int): HashMap<String, TileInfo> {
|
open fun generateMap(distance: Int): HashMap<String, TileInfo> {
|
||||||
val map = HashMap<String, TileInfo>()
|
val map = HashMap<String, TileInfo>()
|
||||||
for (vector in HexMath.GetVectorsInDistance(Vector2.Zero, distance))
|
for (vector in HexMath().GetVectorsInDistance(Vector2.Zero, distance))
|
||||||
map[vector.toString()] = addRandomTile(vector)
|
map[vector.toString()] = addRandomTile(vector)
|
||||||
return map
|
return map
|
||||||
}
|
}
|
||||||
|
@ -2,9 +2,9 @@ package com.unciv.logic.map
|
|||||||
|
|
||||||
import com.badlogic.gdx.math.Vector2
|
import com.badlogic.gdx.math.Vector2
|
||||||
import com.unciv.logic.GameInfo
|
import com.unciv.logic.GameInfo
|
||||||
|
import com.unciv.logic.HexMath
|
||||||
import com.unciv.logic.civilization.CivilizationInfo
|
import com.unciv.logic.civilization.CivilizationInfo
|
||||||
import com.unciv.models.gamebasics.GameBasics
|
import com.unciv.models.gamebasics.GameBasics
|
||||||
import com.unciv.ui.utils.HexMath
|
|
||||||
|
|
||||||
class TileMap {
|
class TileMap {
|
||||||
|
|
||||||
@ -33,11 +33,11 @@ class TileMap {
|
|||||||
}
|
}
|
||||||
|
|
||||||
fun getTilesInDistance(origin: Vector2, distance: Int): List<TileInfo> {
|
fun getTilesInDistance(origin: Vector2, distance: Int): List<TileInfo> {
|
||||||
return HexMath.GetVectorsInDistance(origin, distance).filter {contains(it)}.map { get(it) }
|
return HexMath().GetVectorsInDistance(origin, distance).filter {contains(it)}.map { get(it) }
|
||||||
}
|
}
|
||||||
|
|
||||||
fun getTilesAtDistance(origin: Vector2, distance: Int): List<TileInfo> {
|
fun getTilesAtDistance(origin: Vector2, distance: Int): List<TileInfo> {
|
||||||
return HexMath.GetVectorsAtDistance(origin, distance).filter {contains(it)}.map { get(it) }
|
return HexMath().GetVectorsAtDistance(origin, distance).filter {contains(it)}.map { get(it) }
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,13 +1,16 @@
|
|||||||
package com.unciv.ui
|
package com.unciv.ui
|
||||||
|
|
||||||
import com.badlogic.gdx.graphics.Color
|
import com.badlogic.gdx.graphics.Color
|
||||||
|
import com.badlogic.gdx.scenes.scene2d.ui.SelectBox
|
||||||
import com.badlogic.gdx.scenes.scene2d.ui.Table
|
import com.badlogic.gdx.scenes.scene2d.ui.Table
|
||||||
import com.badlogic.gdx.scenes.scene2d.ui.TextButton
|
import com.badlogic.gdx.scenes.scene2d.ui.TextButton
|
||||||
|
import com.badlogic.gdx.utils.Array
|
||||||
import com.unciv.UnCivGame
|
import com.unciv.UnCivGame
|
||||||
|
import com.unciv.logic.GameSaver
|
||||||
|
import com.unciv.models.gamebasics.GameBasics
|
||||||
import com.unciv.ui.cityscreen.addClickListener
|
import com.unciv.ui.cityscreen.addClickListener
|
||||||
import com.unciv.ui.pickerscreens.PickerScreen
|
import com.unciv.ui.pickerscreens.PickerScreen
|
||||||
import com.unciv.ui.utils.CameraStageBaseScreen
|
import com.unciv.ui.utils.CameraStageBaseScreen
|
||||||
import com.unciv.ui.utils.GameSaver
|
|
||||||
import com.unciv.ui.utils.disable
|
import com.unciv.ui.utils.disable
|
||||||
import com.unciv.ui.utils.enable
|
import com.unciv.ui.utils.enable
|
||||||
|
|
||||||
@ -20,14 +23,14 @@ class LoadScreen : PickerScreen() {
|
|||||||
|
|
||||||
val deleteSaveButton = TextButton("Delete save", CameraStageBaseScreen.skin)
|
val deleteSaveButton = TextButton("Delete save", CameraStageBaseScreen.skin)
|
||||||
deleteSaveButton .addClickListener {
|
deleteSaveButton .addClickListener {
|
||||||
GameSaver.deleteSave(selectedSave)
|
GameSaver().deleteSave(selectedSave)
|
||||||
UnCivGame.Current.screen = LoadScreen()
|
UnCivGame.Current.screen = LoadScreen()
|
||||||
}
|
}
|
||||||
deleteSaveButton.disable()
|
deleteSaveButton.disable()
|
||||||
rightSideGroup.addActor(deleteSaveButton)
|
rightSideGroup.addActor(deleteSaveButton)
|
||||||
|
|
||||||
topTable.add(saveTable)
|
topTable.add(saveTable)
|
||||||
val saves = GameSaver.getSaves()
|
val saves = GameSaver().getSaves()
|
||||||
rightSideButton.setText("Load game")
|
rightSideButton.setText("Load game")
|
||||||
saves.forEach {
|
saves.forEach {
|
||||||
val textButton = TextButton(it,skin)
|
val textButton = TextButton(it,skin)
|
||||||
@ -51,7 +54,38 @@ class LoadScreen : PickerScreen() {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
class NewGameScreen:CameraStageBaseScreen(){
|
||||||
|
init {
|
||||||
|
val table = Table()
|
||||||
|
table.skin=skin
|
||||||
|
|
||||||
|
table.add("Civilization: ")
|
||||||
|
val civSelectBox = SelectBox<String>(skin)
|
||||||
|
val civArray = Array<String>()
|
||||||
|
GameBasics.Civilizations.keys.filterNot { it=="Barbarians" }.forEach{civArray.add(it)}
|
||||||
|
civSelectBox.setItems(civArray)
|
||||||
|
civSelectBox.selected = civSelectBox.items.first()
|
||||||
|
table.add(civSelectBox).pad(10f).row()
|
||||||
|
|
||||||
|
table.add("World size: ")
|
||||||
|
val worldSizeToRadius=LinkedHashMap<String,Int>()
|
||||||
|
worldSizeToRadius.put("Small",10)
|
||||||
|
worldSizeToRadius.put("Medium",20)
|
||||||
|
worldSizeToRadius.put("Large",30)
|
||||||
|
val worldSizeSelectBox = SelectBox<String>(skin)
|
||||||
|
val worldSizeArray = Array<String>()
|
||||||
|
worldSizeToRadius.keys.forEach{worldSizeArray.add(it)}
|
||||||
|
worldSizeSelectBox.setItems(worldSizeArray)
|
||||||
|
worldSizeSelectBox.selected = "Medium"
|
||||||
|
table.add(worldSizeSelectBox)
|
||||||
|
|
||||||
|
val createButton = TextButton("Start game!",skin)
|
||||||
|
createButton.addClickListener { }
|
||||||
|
|
||||||
|
table.setFillParent(true)
|
||||||
|
table.pack()
|
||||||
|
stage.addActor(table)
|
||||||
|
}
|
||||||
|
}
|
@ -5,9 +5,9 @@ import com.badlogic.gdx.scenes.scene2d.ui.Table
|
|||||||
import com.badlogic.gdx.scenes.scene2d.ui.TextButton
|
import com.badlogic.gdx.scenes.scene2d.ui.TextButton
|
||||||
import com.badlogic.gdx.scenes.scene2d.ui.TextField
|
import com.badlogic.gdx.scenes.scene2d.ui.TextField
|
||||||
import com.unciv.UnCivGame
|
import com.unciv.UnCivGame
|
||||||
|
import com.unciv.logic.GameSaver
|
||||||
import com.unciv.ui.cityscreen.addClickListener
|
import com.unciv.ui.cityscreen.addClickListener
|
||||||
import com.unciv.ui.pickerscreens.PickerScreen
|
import com.unciv.ui.pickerscreens.PickerScreen
|
||||||
import com.unciv.ui.utils.GameSaver
|
|
||||||
import com.unciv.ui.utils.enable
|
import com.unciv.ui.utils.enable
|
||||||
import java.text.SimpleDateFormat
|
import java.text.SimpleDateFormat
|
||||||
import java.util.*
|
import java.util.*
|
||||||
@ -19,7 +19,7 @@ class SaveScreen : PickerScreen() {
|
|||||||
val currentSaves = Table()
|
val currentSaves = Table()
|
||||||
|
|
||||||
currentSaves.add(Label("Current saves:",skin)).row()
|
currentSaves.add(Label("Current saves:",skin)).row()
|
||||||
val saves = GameSaver.getSaves()
|
val saves = GameSaver().getSaves()
|
||||||
saves.forEach {
|
saves.forEach {
|
||||||
val textButton = TextButton(it, skin)
|
val textButton = TextButton(it, skin)
|
||||||
textButton.addClickListener {
|
textButton.addClickListener {
|
||||||
@ -44,7 +44,7 @@ class SaveScreen : PickerScreen() {
|
|||||||
|
|
||||||
rightSideButton.setText("Save game")
|
rightSideButton.setText("Save game")
|
||||||
rightSideButton.addClickListener {
|
rightSideButton.addClickListener {
|
||||||
GameSaver.saveGame(UnCivGame.Current.gameInfo, textField.text)
|
GameSaver().saveGame(UnCivGame.Current.gameInfo, textField.text)
|
||||||
UnCivGame.Current.setWorldScreen()
|
UnCivGame.Current.setWorldScreen()
|
||||||
}
|
}
|
||||||
rightSideButton.enable()
|
rightSideButton.enable()
|
||||||
|
@ -6,10 +6,10 @@ import com.badlogic.gdx.scenes.scene2d.InputEvent
|
|||||||
import com.badlogic.gdx.scenes.scene2d.ui.*
|
import com.badlogic.gdx.scenes.scene2d.ui.*
|
||||||
import com.badlogic.gdx.scenes.scene2d.utils.ActorGestureListener
|
import com.badlogic.gdx.scenes.scene2d.utils.ActorGestureListener
|
||||||
import com.badlogic.gdx.utils.Align
|
import com.badlogic.gdx.utils.Align
|
||||||
|
import com.unciv.logic.HexMath
|
||||||
import com.unciv.logic.city.CityInfo
|
import com.unciv.logic.city.CityInfo
|
||||||
import com.unciv.logic.map.TileInfo
|
import com.unciv.logic.map.TileInfo
|
||||||
import com.unciv.ui.utils.CameraStageBaseScreen
|
import com.unciv.ui.utils.CameraStageBaseScreen
|
||||||
import com.unciv.ui.utils.HexMath
|
|
||||||
import com.unciv.ui.utils.ImageGetter
|
import com.unciv.ui.utils.ImageGetter
|
||||||
import com.unciv.ui.utils.centerX
|
import com.unciv.ui.utils.centerX
|
||||||
import java.util.*
|
import java.util.*
|
||||||
@ -181,7 +181,7 @@ class CityScreen(internal val city: CityInfo) : CameraStageBaseScreen() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
val positionalVector = HexMath.Hex2WorldCoords(tileInfo.position.cpy().sub(cityInfo.location))
|
val positionalVector = HexMath().Hex2WorldCoords(tileInfo.position.cpy().sub(cityInfo.location))
|
||||||
val groupSize = 50
|
val groupSize = 50
|
||||||
group.setPosition(stage.width / 2 + positionalVector.x * 0.8f * groupSize.toFloat(),
|
group.setPosition(stage.width / 2 + positionalVector.x * 0.8f * groupSize.toFloat(),
|
||||||
stage.height / 2 + positionalVector.y * 0.8f * groupSize.toFloat())
|
stage.height / 2 + positionalVector.y * 0.8f * groupSize.toFloat())
|
||||||
|
@ -4,10 +4,10 @@ import com.badlogic.gdx.graphics.Color
|
|||||||
import com.badlogic.gdx.scenes.scene2d.Group
|
import com.badlogic.gdx.scenes.scene2d.Group
|
||||||
import com.badlogic.gdx.scenes.scene2d.ui.Image
|
import com.badlogic.gdx.scenes.scene2d.ui.Image
|
||||||
import com.badlogic.gdx.utils.Align
|
import com.badlogic.gdx.utils.Align
|
||||||
|
import com.unciv.logic.HexMath
|
||||||
import com.unciv.logic.map.MapUnit
|
import com.unciv.logic.map.MapUnit
|
||||||
import com.unciv.logic.map.RoadStatus
|
import com.unciv.logic.map.RoadStatus
|
||||||
import com.unciv.logic.map.TileInfo
|
import com.unciv.logic.map.TileInfo
|
||||||
import com.unciv.ui.utils.HexMath
|
|
||||||
import com.unciv.ui.utils.ImageGetter
|
import com.unciv.ui.utils.ImageGetter
|
||||||
import com.unciv.ui.utils.center
|
import com.unciv.ui.utils.center
|
||||||
import com.unciv.ui.utils.colorFromRGB
|
import com.unciv.ui.utils.colorFromRGB
|
||||||
@ -111,7 +111,7 @@ open class TileGroup(var tileInfo: TileInfo) : Group() {
|
|||||||
for (neighbor in tileInfo.neighbors.filter { it.getOwner() != tileInfo.getOwner() }) {
|
for (neighbor in tileInfo.neighbors.filter { it.getOwner() != tileInfo.getOwner() }) {
|
||||||
|
|
||||||
val relativeHexPosition = tileInfo.position.cpy().sub(neighbor.position)
|
val relativeHexPosition = tileInfo.position.cpy().sub(neighbor.position)
|
||||||
val relativeWorldPosition = HexMath.Hex2WorldCoords(relativeHexPosition)
|
val relativeWorldPosition = HexMath().Hex2WorldCoords(relativeHexPosition)
|
||||||
|
|
||||||
// This is some crazy voodoo magic so I'll explain.
|
// This is some crazy voodoo magic so I'll explain.
|
||||||
|
|
||||||
@ -150,7 +150,7 @@ open class TileGroup(var tileInfo: TileInfo) : Group() {
|
|||||||
roadImages[neighbor.position.toString()] = image
|
roadImages[neighbor.position.toString()] = image
|
||||||
|
|
||||||
val relativeHexPosition = tileInfo.position.cpy().sub(neighbor.position)
|
val relativeHexPosition = tileInfo.position.cpy().sub(neighbor.position)
|
||||||
val relativeWorldPosition = HexMath.Hex2WorldCoords(relativeHexPosition)
|
val relativeWorldPosition = HexMath().Hex2WorldCoords(relativeHexPosition)
|
||||||
|
|
||||||
// This is some crazy voodoo magic so I'll explain.
|
// This is some crazy voodoo magic so I'll explain.
|
||||||
image.moveBy(25f, 25f) // Move road to center of tile
|
image.moveBy(25f, 25f) // Move road to center of tile
|
||||||
|
@ -6,13 +6,13 @@ import com.badlogic.gdx.scenes.scene2d.Group
|
|||||||
import com.badlogic.gdx.scenes.scene2d.InputEvent
|
import com.badlogic.gdx.scenes.scene2d.InputEvent
|
||||||
import com.badlogic.gdx.scenes.scene2d.ui.ScrollPane
|
import com.badlogic.gdx.scenes.scene2d.ui.ScrollPane
|
||||||
import com.badlogic.gdx.scenes.scene2d.utils.ActorGestureListener
|
import com.badlogic.gdx.scenes.scene2d.utils.ActorGestureListener
|
||||||
|
import com.unciv.logic.HexMath
|
||||||
import com.unciv.logic.civilization.CivilizationInfo
|
import com.unciv.logic.civilization.CivilizationInfo
|
||||||
import com.unciv.logic.map.TileInfo
|
import com.unciv.logic.map.TileInfo
|
||||||
import com.unciv.logic.map.TileMap
|
import com.unciv.logic.map.TileMap
|
||||||
import com.unciv.logic.map.UnitType
|
import com.unciv.logic.map.UnitType
|
||||||
import com.unciv.ui.cityscreen.addClickListener
|
import com.unciv.ui.cityscreen.addClickListener
|
||||||
import com.unciv.ui.tilegroups.WorldTileGroup
|
import com.unciv.ui.tilegroups.WorldTileGroup
|
||||||
import com.unciv.ui.utils.HexMath
|
|
||||||
import com.unciv.ui.utils.colorFromRGB
|
import com.unciv.ui.utils.colorFromRGB
|
||||||
|
|
||||||
class TileMapHolder(internal val worldScreen: WorldScreen, internal val tileMap: TileMap, internal val civInfo: CivilizationInfo) : ScrollPane(null) {
|
class TileMapHolder(internal val worldScreen: WorldScreen, internal val tileMap: TileMap, internal val civInfo: CivilizationInfo) : ScrollPane(null) {
|
||||||
@ -40,7 +40,7 @@ class TileMapHolder(internal val worldScreen: WorldScreen, internal val tileMap:
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
val positionalVector = HexMath.Hex2WorldCoords(tileInfo.position)
|
val positionalVector = HexMath().Hex2WorldCoords(tileInfo.position)
|
||||||
val groupSize = 50
|
val groupSize = 50
|
||||||
group.setPosition(worldScreen.stage.width / 2 + positionalVector.x * 0.8f * groupSize.toFloat(),
|
group.setPosition(worldScreen.stage.width / 2 + positionalVector.x * 0.8f * groupSize.toFloat(),
|
||||||
worldScreen.stage.height / 2 + positionalVector.y * 0.8f * groupSize.toFloat())
|
worldScreen.stage.height / 2 + positionalVector.y * 0.8f * groupSize.toFloat())
|
||||||
|
@ -3,12 +3,12 @@ package com.unciv.ui.worldscreen
|
|||||||
import com.badlogic.gdx.math.Vector2
|
import com.badlogic.gdx.math.Vector2
|
||||||
import com.badlogic.gdx.scenes.scene2d.ui.Label
|
import com.badlogic.gdx.scenes.scene2d.ui.Label
|
||||||
import com.badlogic.gdx.scenes.scene2d.ui.TextButton
|
import com.badlogic.gdx.scenes.scene2d.ui.TextButton
|
||||||
|
import com.unciv.logic.GameSaver
|
||||||
import com.unciv.logic.civilization.CivilizationInfo
|
import com.unciv.logic.civilization.CivilizationInfo
|
||||||
import com.unciv.ui.cityscreen.addClickListener
|
import com.unciv.ui.cityscreen.addClickListener
|
||||||
import com.unciv.ui.pickerscreens.PolicyPickerScreen
|
import com.unciv.ui.pickerscreens.PolicyPickerScreen
|
||||||
import com.unciv.ui.pickerscreens.TechPickerScreen
|
import com.unciv.ui.pickerscreens.TechPickerScreen
|
||||||
import com.unciv.ui.utils.CameraStageBaseScreen
|
import com.unciv.ui.utils.CameraStageBaseScreen
|
||||||
import com.unciv.ui.utils.GameSaver
|
|
||||||
import com.unciv.ui.worldscreen.unit.UnitActionsTable
|
import com.unciv.ui.worldscreen.unit.UnitActionsTable
|
||||||
|
|
||||||
class WorldScreen : CameraStageBaseScreen() {
|
class WorldScreen : CameraStageBaseScreen() {
|
||||||
@ -115,7 +115,7 @@ class WorldScreen : CameraStageBaseScreen() {
|
|||||||
|
|
||||||
game.gameInfo.nextTurn()
|
game.gameInfo.nextTurn()
|
||||||
bottomBar.unitTable.currentlyExecutingAction = null
|
bottomBar.unitTable.currentlyExecutingAction = null
|
||||||
kotlin.concurrent.thread { GameSaver.saveGame(game.gameInfo, "Autosave") }
|
kotlin.concurrent.thread { GameSaver().saveGame(game.gameInfo, "Autosave") }
|
||||||
update()
|
update()
|
||||||
displayTutorials("NextTurn")
|
displayTutorials("NextTurn")
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user