From 4b7ec5303a2bb5be7bfb8dbd2f5379a6e7240287 Mon Sep 17 00:00:00 2001 From: Yair Morgenstern Date: Fri, 8 Jun 2018 15:43:40 +0300 Subject: [PATCH] Reorganized the class tree --- .../com/unciv/logic/automation/Automation.kt | 10 +-- .../logic/automation/WorkerAutomation.kt | 2 +- core/src/com/unciv/logic/battle/Battle.kt | 4 +- .../com/unciv/logic/battle/CityCombatant.kt | 4 +- core/src/com/unciv/logic/battle/ICombatant.kt | 6 +- .../unciv/logic/battle/MapUnitCombatant.kt | 2 +- core/src/com/unciv/logic/city/CityInfo.kt | 4 +- .../logic/civilization/CivilizationInfo.kt | 4 +- .../unciv/logic/civilization/TechManager.kt | 2 +- core/src/com/unciv/logic/map/MapUnit.kt | 9 +-- .../com/unciv/logic/map/RandomMapGenerator.kt | 6 +- core/src/com/unciv/logic/map/TileInfo.kt | 6 +- .../com/unciv/models/gamebasics/GameBasics.kt | 4 ++ .../gamebasics/{ => tile}/ResourceType.kt | 2 +- .../models/gamebasics/{ => tile}/Terrain.kt | 4 +- .../gamebasics/{ => tile}/TerrainType.kt | 2 +- .../gamebasics/{ => tile}/TileImprovement.kt | 4 +- .../gamebasics/{ => tile}/TileResource.kt | 5 +- .../models/gamebasics/{ => unit}/Unit.kt | 4 +- .../gamebasics/unit}/UnitType.kt | 2 +- core/src/com/unciv/models/stats/CivStats.kt | 3 - core/src/com/unciv/models/stats/Stat.kt | 10 +++ core/src/com/unciv/models/stats/Stats.kt | 9 --- core/src/com/unciv/ui/CivilopediaScreen.kt | 2 +- core/src/com/unciv/ui/LoadScreen.kt | 6 +- core/src/com/unciv/ui/NewGameScreen.kt | 2 +- core/src/com/unciv/ui/SaveScreen.kt | 2 +- core/src/com/unciv/ui/VictoryScreen.kt | 2 +- .../com/unciv/ui/cityscreen/BuildingsTable.kt | 14 +---- .../src/com/unciv/ui/cityscreen/CityScreen.kt | 1 + .../com/unciv/ui/cityscreen/CityStatsTable.kt | 1 + .../pickerscreens/ConstructionPickerScreen.kt | 2 +- .../pickerscreens/GreatPersonPickerScreen.kt | 4 +- .../pickerscreens/ImprovementPickerScreen.kt | 4 +- .../unciv/ui/pickerscreens/PickerScreen.kt | 2 +- .../ui/pickerscreens/PolicyPickerScreen.kt | 5 +- .../ui/pickerscreens/TechPickerScreen.kt | 2 +- .../com/unciv/ui/tilegroups/WorldTileGroup.kt | 10 +-- .../unciv/ui/utils/CameraStageBaseScreen.kt | 13 +++- core/src/com/unciv/ui/worldscreen/Minimap.kt | 4 +- .../ui/worldscreen/NotificationsScroll.kt | 2 +- .../com/unciv/ui/worldscreen/TileMapHolder.kt | 6 +- .../com/unciv/ui/worldscreen/WorldScreen.kt | 3 +- .../unciv/ui/worldscreen/WorldScreenTopBar.kt | 4 +- .../{ => bottombar}/BattleTable.kt | 11 ++-- .../{ => bottombar}/TileInfoTable.kt | 3 +- .../{ => bottombar}/WorldScreenBottomBar.kt | 3 +- .../worldscreen/optionstable/OptionsTable.kt | 25 ++++++++ .../WorldScreenDisplayOptionsTable.kt} | 63 +------------------ .../optionstable/WorldScreenOptionsTable.kt | 44 +++++++++++++ .../ui/worldscreen/unit/IdleUnitButton.kt | 2 +- .../unciv/ui/worldscreen/unit/UnitActions.kt | 4 +- .../ui/worldscreen/unit/UnitActionsTable.kt | 6 +- .../unciv/ui/worldscreen/unit/UnitTable.kt | 4 +- 54 files changed, 184 insertions(+), 180 deletions(-) rename core/src/com/unciv/models/gamebasics/{ => tile}/ResourceType.kt (61%) rename core/src/com/unciv/models/gamebasics/{ => tile}/Terrain.kt (90%) rename core/src/com/unciv/models/gamebasics/{ => tile}/TerrainType.kt (60%) rename core/src/com/unciv/models/gamebasics/{ => tile}/TileImprovement.kt (93%) rename core/src/com/unciv/models/gamebasics/{ => tile}/TileResource.kt (86%) rename core/src/com/unciv/models/gamebasics/{ => unit}/Unit.kt (97%) rename core/src/com/unciv/{logic/map => models/gamebasics/unit}/UnitType.kt (69%) delete mode 100644 core/src/com/unciv/models/stats/CivStats.kt create mode 100644 core/src/com/unciv/models/stats/Stat.kt rename core/src/com/unciv/ui/worldscreen/{ => bottombar}/BattleTable.kt (94%) rename core/src/com/unciv/ui/worldscreen/{ => bottombar}/TileInfoTable.kt (93%) rename core/src/com/unciv/ui/worldscreen/{ => bottombar}/WorldScreenBottomBar.kt (93%) create mode 100644 core/src/com/unciv/ui/worldscreen/optionstable/OptionsTable.kt rename core/src/com/unciv/ui/worldscreen/{WorldScreenOptionsTable.kt => optionstable/WorldScreenDisplayOptionsTable.kt} (51%) create mode 100644 core/src/com/unciv/ui/worldscreen/optionstable/WorldScreenOptionsTable.kt diff --git a/core/src/com/unciv/logic/automation/Automation.kt b/core/src/com/unciv/logic/automation/Automation.kt index ff5ca60bc6..85e9ea8e59 100644 --- a/core/src/com/unciv/logic/automation/Automation.kt +++ b/core/src/com/unciv/logic/automation/Automation.kt @@ -5,9 +5,9 @@ import com.unciv.logic.city.CityConstructions import com.unciv.logic.city.CityInfo import com.unciv.logic.civilization.CivilizationInfo import com.unciv.logic.map.TileInfo -import com.unciv.logic.map.UnitType +import com.unciv.models.gamebasics.unit.UnitType import com.unciv.models.gamebasics.GameBasics -import com.unciv.models.gamebasics.Unit +import com.unciv.models.gamebasics.unit.Unit import com.unciv.ui.utils.getRandom class Automation { @@ -67,10 +67,10 @@ class Automation { private fun trainCombatUnit(city: CityInfo) { val combatUnits = city.cityConstructions.getConstructableUnits().filter { it.unitType != UnitType.Civilian } - val chosenUnit:Unit + val chosenUnit: Unit if(city.civInfo.cities.any { it.getCenterTile().militaryUnit==null} - && combatUnits.any { it.unitType==UnitType.Archery }) // this is for city defence so get an archery unit if we can - chosenUnit = combatUnits.filter { it.unitType==UnitType.Archery }.maxBy { it.cost }!! + && combatUnits.any { it.unitType== UnitType.Archery }) // this is for city defence so get an archery unit if we can + chosenUnit = combatUnits.filter { it.unitType== UnitType.Archery }.maxBy { it.cost }!! else{ // randomize type of unit and takee the most expensive of its kind val chosenUnitType = combatUnits.map { it.unitType }.distinct().getRandom() diff --git a/core/src/com/unciv/logic/automation/WorkerAutomation.kt b/core/src/com/unciv/logic/automation/WorkerAutomation.kt index 7d8bc542f2..a3ad2f2904 100644 --- a/core/src/com/unciv/logic/automation/WorkerAutomation.kt +++ b/core/src/com/unciv/logic/automation/WorkerAutomation.kt @@ -4,7 +4,7 @@ import com.unciv.logic.civilization.CivilizationInfo import com.unciv.logic.map.MapUnit import com.unciv.logic.map.TileInfo import com.unciv.models.gamebasics.GameBasics -import com.unciv.models.gamebasics.TileImprovement +import com.unciv.models.gamebasics.tile.TileImprovement class WorkerAutomation { diff --git a/core/src/com/unciv/logic/battle/Battle.kt b/core/src/com/unciv/logic/battle/Battle.kt index 88b819f82b..bfc9e2032f 100644 --- a/core/src/com/unciv/logic/battle/Battle.kt +++ b/core/src/com/unciv/logic/battle/Battle.kt @@ -5,7 +5,7 @@ import com.unciv.UnCivGame import com.unciv.logic.GameInfo import com.unciv.logic.city.CityInfo import com.unciv.logic.map.TileInfo -import com.unciv.logic.map.UnitType +import com.unciv.models.gamebasics.unit.UnitType import java.util.* import kotlin.collections.HashMap import kotlin.math.max @@ -102,7 +102,7 @@ class Battle(val gameInfo:GameInfo=UnCivGame.Current.gameInfo) { fun calculateDamageToAttacker(attacker: ICombatant, defender: ICombatant): Int { if(attacker.isRanged()) return 0 - if(defender.getUnitType()==UnitType.Civilian) return 0 + if(defender.getUnitType()== UnitType.Civilian) return 0 val ratio = getDefendingStrength(attacker,defender) / getAttackingStrength(attacker,defender) return (ratio * 30 * getHealthDependantDamageRatio(defender)).toInt() } diff --git a/core/src/com/unciv/logic/battle/CityCombatant.kt b/core/src/com/unciv/logic/battle/CityCombatant.kt index de0cfd496d..52e0074ca3 100644 --- a/core/src/com/unciv/logic/battle/CityCombatant.kt +++ b/core/src/com/unciv/logic/battle/CityCombatant.kt @@ -3,7 +3,7 @@ package com.unciv.logic.battle import com.unciv.logic.city.CityInfo import com.unciv.logic.civilization.CivilizationInfo import com.unciv.logic.map.TileInfo -import com.unciv.logic.map.UnitType +import com.unciv.models.gamebasics.unit.UnitType import com.unciv.models.gamebasics.GameBasics class CityCombatant(val city: CityInfo) : ICombatant { @@ -18,7 +18,7 @@ class CityCombatant(val city: CityInfo) : ICombatant { if(city.health<1) city.health=1 // min health is 1 } - override fun getUnitType():UnitType=UnitType.City + override fun getUnitType(): UnitType = UnitType.City override fun getAttackingStrength(defender: ICombatant): Int = getCityStrength() override fun getDefendingStrength(attacker: ICombatant): Int{ if(isDefeated()) return 1 diff --git a/core/src/com/unciv/logic/battle/ICombatant.kt b/core/src/com/unciv/logic/battle/ICombatant.kt index 66bc038507..e4d362a445 100644 --- a/core/src/com/unciv/logic/battle/ICombatant.kt +++ b/core/src/com/unciv/logic/battle/ICombatant.kt @@ -2,7 +2,7 @@ package com.unciv.logic.battle import com.unciv.logic.civilization.CivilizationInfo import com.unciv.logic.map.TileInfo -import com.unciv.logic.map.UnitType +import com.unciv.models.gamebasics.unit.UnitType interface ICombatant{ fun getName(): String @@ -16,9 +16,9 @@ interface ICombatant{ fun getTile(): TileInfo fun isMelee(): Boolean { - return this.getUnitType() in listOf(UnitType.Melee,UnitType.Mounted) + return this.getUnitType() in listOf(UnitType.Melee, UnitType.Mounted) } fun isRanged(): Boolean { - return this.getUnitType() in listOf(UnitType.Archery,UnitType.Siege) + return this.getUnitType() in listOf(UnitType.Archery, UnitType.Siege) } } \ No newline at end of file diff --git a/core/src/com/unciv/logic/battle/MapUnitCombatant.kt b/core/src/com/unciv/logic/battle/MapUnitCombatant.kt index 76da92dede..06ce483b28 100644 --- a/core/src/com/unciv/logic/battle/MapUnitCombatant.kt +++ b/core/src/com/unciv/logic/battle/MapUnitCombatant.kt @@ -3,7 +3,7 @@ package com.unciv.logic.battle import com.unciv.logic.civilization.CivilizationInfo import com.unciv.logic.map.MapUnit import com.unciv.logic.map.TileInfo -import com.unciv.logic.map.UnitType +import com.unciv.models.gamebasics.unit.UnitType class MapUnitCombatant(val unit: MapUnit) : ICombatant { override fun getHealth(): Int = unit.health diff --git a/core/src/com/unciv/logic/city/CityInfo.kt b/core/src/com/unciv/logic/city/CityInfo.kt index 9769ce4eb0..7416c52ebc 100644 --- a/core/src/com/unciv/logic/city/CityInfo.kt +++ b/core/src/com/unciv/logic/city/CityInfo.kt @@ -7,8 +7,8 @@ import com.unciv.logic.map.RoadStatus import com.unciv.logic.map.TileInfo import com.unciv.logic.map.TileMap import com.unciv.models.gamebasics.GameBasics -import com.unciv.models.gamebasics.ResourceType -import com.unciv.models.gamebasics.TileResource +import com.unciv.models.gamebasics.tile.ResourceType +import com.unciv.models.gamebasics.tile.TileResource import com.unciv.models.linq.Counter import com.unciv.models.stats.Stats import kotlin.math.min diff --git a/core/src/com/unciv/logic/civilization/CivilizationInfo.kt b/core/src/com/unciv/logic/civilization/CivilizationInfo.kt index 550e46b52c..5284ae2b00 100644 --- a/core/src/com/unciv/logic/civilization/CivilizationInfo.kt +++ b/core/src/com/unciv/logic/civilization/CivilizationInfo.kt @@ -9,8 +9,8 @@ import com.unciv.logic.map.RoadStatus import com.unciv.logic.map.TileInfo import com.unciv.models.gamebasics.Civilization import com.unciv.models.gamebasics.GameBasics -import com.unciv.models.gamebasics.ResourceType -import com.unciv.models.gamebasics.TileResource +import com.unciv.models.gamebasics.tile.ResourceType +import com.unciv.models.gamebasics.tile.TileResource import com.unciv.models.linq.Counter import com.unciv.models.stats.Stats import com.unciv.ui.utils.getRandom diff --git a/core/src/com/unciv/logic/civilization/TechManager.kt b/core/src/com/unciv/logic/civilization/TechManager.kt index 7c9e9463b8..2c484d1c43 100644 --- a/core/src/com/unciv/logic/civilization/TechManager.kt +++ b/core/src/com/unciv/logic/civilization/TechManager.kt @@ -4,7 +4,7 @@ package com.unciv.logic.civilization import com.badlogic.gdx.graphics.Color import com.unciv.models.gamebasics.GameBasics import com.unciv.models.gamebasics.Technology -import com.unciv.models.gamebasics.Unit +import com.unciv.models.gamebasics.unit.Unit import java.util.* class TechManager { diff --git a/core/src/com/unciv/logic/map/MapUnit.kt b/core/src/com/unciv/logic/map/MapUnit.kt index 9c481e936b..c19943f03b 100644 --- a/core/src/com/unciv/logic/map/MapUnit.kt +++ b/core/src/com/unciv/logic/map/MapUnit.kt @@ -4,7 +4,8 @@ import com.badlogic.gdx.math.Vector2 import com.unciv.logic.automation.WorkerAutomation import com.unciv.logic.civilization.CivilizationInfo import com.unciv.models.gamebasics.GameBasics -import com.unciv.models.gamebasics.Unit +import com.unciv.models.gamebasics.unit.Unit +import com.unciv.models.gamebasics.unit.UnitType import java.text.DecimalFormat class MapUnit { @@ -140,13 +141,13 @@ class MapUnit { } fun removeFromTile(){ - if (getBaseUnit().unitType==UnitType.Civilian) getTile().civilianUnit=null + if (getBaseUnit().unitType== UnitType.Civilian) getTile().civilianUnit=null else getTile().militaryUnit=null } fun putInTile(tile:TileInfo){ if(!canMoveTo(tile)) throw Exception("I can't go there!") - if(getBaseUnit().unitType==UnitType.Civilian) + if(getBaseUnit().unitType== UnitType.Civilian) tile.civilianUnit=this else tile.militaryUnit=this } @@ -156,7 +157,7 @@ class MapUnit { */ fun canMoveTo(tile: TileInfo): Boolean { if(tile.isCityCenter() && tile.getOwner()!!.civName!=owner) return false - if (getBaseUnit().unitType==UnitType.Civilian) + if (getBaseUnit().unitType== UnitType.Civilian) return tile.civilianUnit==null && (tile.militaryUnit==null || tile.militaryUnit!!.owner==owner) else return tile.militaryUnit==null && (tile.civilianUnit==null || tile.civilianUnit!!.owner==owner) } diff --git a/core/src/com/unciv/logic/map/RandomMapGenerator.kt b/core/src/com/unciv/logic/map/RandomMapGenerator.kt index 93ec1337d4..702550e1f1 100644 --- a/core/src/com/unciv/logic/map/RandomMapGenerator.kt +++ b/core/src/com/unciv/logic/map/RandomMapGenerator.kt @@ -3,9 +3,9 @@ package com.unciv.logic.map import com.badlogic.gdx.math.Vector2 import com.unciv.logic.HexMath import com.unciv.models.gamebasics.GameBasics -import com.unciv.models.gamebasics.ResourceType -import com.unciv.models.gamebasics.TerrainType -import com.unciv.models.gamebasics.TileResource +import com.unciv.models.gamebasics.tile.ResourceType +import com.unciv.models.gamebasics.tile.TerrainType +import com.unciv.models.gamebasics.tile.TileResource import com.unciv.ui.utils.getRandom class SeedRandomMapGenerator : RandomMapGenerator() { diff --git a/core/src/com/unciv/logic/map/TileInfo.kt b/core/src/com/unciv/logic/map/TileInfo.kt index 7a5f021428..1dcc5a3abd 100644 --- a/core/src/com/unciv/logic/map/TileInfo.kt +++ b/core/src/com/unciv/logic/map/TileInfo.kt @@ -5,9 +5,9 @@ import com.unciv.UnCivGame import com.unciv.logic.city.CityInfo import com.unciv.logic.civilization.CivilizationInfo import com.unciv.models.gamebasics.GameBasics -import com.unciv.models.gamebasics.Terrain -import com.unciv.models.gamebasics.TileImprovement -import com.unciv.models.gamebasics.TileResource +import com.unciv.models.gamebasics.tile.Terrain +import com.unciv.models.gamebasics.tile.TileImprovement +import com.unciv.models.gamebasics.tile.TileResource import com.unciv.models.stats.Stats open class TileInfo { diff --git a/core/src/com/unciv/models/gamebasics/GameBasics.kt b/core/src/com/unciv/models/gamebasics/GameBasics.kt index ec2fa5064d..4ab9ad72dc 100644 --- a/core/src/com/unciv/models/gamebasics/GameBasics.kt +++ b/core/src/com/unciv/models/gamebasics/GameBasics.kt @@ -2,6 +2,10 @@ package com.unciv.models.gamebasics import com.badlogic.gdx.Gdx import com.badlogic.gdx.utils.Json +import com.unciv.models.gamebasics.tile.Terrain +import com.unciv.models.gamebasics.tile.TileImprovement +import com.unciv.models.gamebasics.tile.TileResource +import com.unciv.models.gamebasics.unit.Unit import com.unciv.models.stats.INamed import kotlin.collections.set diff --git a/core/src/com/unciv/models/gamebasics/ResourceType.kt b/core/src/com/unciv/models/gamebasics/tile/ResourceType.kt similarity index 61% rename from core/src/com/unciv/models/gamebasics/ResourceType.kt rename to core/src/com/unciv/models/gamebasics/tile/ResourceType.kt index fc34b046ba..40be14290d 100644 --- a/core/src/com/unciv/models/gamebasics/ResourceType.kt +++ b/core/src/com/unciv/models/gamebasics/tile/ResourceType.kt @@ -1,4 +1,4 @@ -package com.unciv.models.gamebasics +package com.unciv.models.gamebasics.tile enum class ResourceType { Luxury, diff --git a/core/src/com/unciv/models/gamebasics/Terrain.kt b/core/src/com/unciv/models/gamebasics/tile/Terrain.kt similarity index 90% rename from core/src/com/unciv/models/gamebasics/Terrain.kt rename to core/src/com/unciv/models/gamebasics/tile/Terrain.kt index fca393f9c1..f66ff2676f 100644 --- a/core/src/com/unciv/models/gamebasics/Terrain.kt +++ b/core/src/com/unciv/models/gamebasics/tile/Terrain.kt @@ -1,5 +1,7 @@ -package com.unciv.models.gamebasics +package com.unciv.models.gamebasics.tile +import com.unciv.models.gamebasics.GameBasics +import com.unciv.models.gamebasics.ICivilopedia import com.unciv.models.stats.NamedStats class Terrain : NamedStats(), ICivilopedia { diff --git a/core/src/com/unciv/models/gamebasics/TerrainType.kt b/core/src/com/unciv/models/gamebasics/tile/TerrainType.kt similarity index 60% rename from core/src/com/unciv/models/gamebasics/TerrainType.kt rename to core/src/com/unciv/models/gamebasics/tile/TerrainType.kt index 037f7fbdfb..830d7b7746 100644 --- a/core/src/com/unciv/models/gamebasics/TerrainType.kt +++ b/core/src/com/unciv/models/gamebasics/tile/TerrainType.kt @@ -1,4 +1,4 @@ -package com.unciv.models.gamebasics +package com.unciv.models.gamebasics.tile enum class TerrainType { BaseTerrain, diff --git a/core/src/com/unciv/models/gamebasics/TileImprovement.kt b/core/src/com/unciv/models/gamebasics/tile/TileImprovement.kt similarity index 93% rename from core/src/com/unciv/models/gamebasics/TileImprovement.kt rename to core/src/com/unciv/models/gamebasics/tile/TileImprovement.kt index 165a6b58ee..6e4c9341fa 100644 --- a/core/src/com/unciv/models/gamebasics/TileImprovement.kt +++ b/core/src/com/unciv/models/gamebasics/tile/TileImprovement.kt @@ -1,6 +1,8 @@ -package com.unciv.models.gamebasics +package com.unciv.models.gamebasics.tile import com.unciv.logic.civilization.CivilizationInfo +import com.unciv.models.gamebasics.GameBasics +import com.unciv.models.gamebasics.ICivilopedia import com.unciv.models.stats.NamedStats import com.unciv.models.stats.Stats import java.util.* diff --git a/core/src/com/unciv/models/gamebasics/TileResource.kt b/core/src/com/unciv/models/gamebasics/tile/TileResource.kt similarity index 86% rename from core/src/com/unciv/models/gamebasics/TileResource.kt rename to core/src/com/unciv/models/gamebasics/tile/TileResource.kt index 5f81a41679..aace8c6a36 100644 --- a/core/src/com/unciv/models/gamebasics/TileResource.kt +++ b/core/src/com/unciv/models/gamebasics/tile/TileResource.kt @@ -1,5 +1,8 @@ -package com.unciv.models.gamebasics +package com.unciv.models.gamebasics.tile +import com.unciv.models.gamebasics.Building +import com.unciv.models.gamebasics.GameBasics +import com.unciv.models.gamebasics.ICivilopedia import com.unciv.models.stats.NamedStats import com.unciv.models.stats.Stats diff --git a/core/src/com/unciv/models/gamebasics/Unit.kt b/core/src/com/unciv/models/gamebasics/unit/Unit.kt similarity index 97% rename from core/src/com/unciv/models/gamebasics/Unit.kt rename to core/src/com/unciv/models/gamebasics/unit/Unit.kt index b0dbdb331d..6b60f65444 100644 --- a/core/src/com/unciv/models/gamebasics/Unit.kt +++ b/core/src/com/unciv/models/gamebasics/unit/Unit.kt @@ -1,10 +1,10 @@ -package com.unciv.models.gamebasics +package com.unciv.models.gamebasics.unit import com.unciv.logic.city.CityConstructions import com.unciv.logic.city.IConstruction import com.unciv.logic.civilization.CivilizationInfo import com.unciv.logic.map.MapUnit -import com.unciv.logic.map.UnitType +import com.unciv.models.gamebasics.ICivilopedia import com.unciv.models.stats.INamed class Unit : INamed, IConstruction, ICivilopedia { diff --git a/core/src/com/unciv/logic/map/UnitType.kt b/core/src/com/unciv/models/gamebasics/unit/UnitType.kt similarity index 69% rename from core/src/com/unciv/logic/map/UnitType.kt rename to core/src/com/unciv/models/gamebasics/unit/UnitType.kt index f3890a3e2d..9631207963 100644 --- a/core/src/com/unciv/logic/map/UnitType.kt +++ b/core/src/com/unciv/models/gamebasics/unit/UnitType.kt @@ -1,4 +1,4 @@ -package com.unciv.logic.map +package com.unciv.models.gamebasics.unit enum class UnitType{ City, diff --git a/core/src/com/unciv/models/stats/CivStats.kt b/core/src/com/unciv/models/stats/CivStats.kt deleted file mode 100644 index ca50b38043..0000000000 --- a/core/src/com/unciv/models/stats/CivStats.kt +++ /dev/null @@ -1,3 +0,0 @@ -package com.unciv.models.stats - - diff --git a/core/src/com/unciv/models/stats/Stat.kt b/core/src/com/unciv/models/stats/Stat.kt new file mode 100644 index 0000000000..bfafb7a8b4 --- /dev/null +++ b/core/src/com/unciv/models/stats/Stat.kt @@ -0,0 +1,10 @@ +package com.unciv.models.stats + +enum class Stat{ + Production, + Food, + Gold, + Science, + Culture, + Happiness +} \ No newline at end of file diff --git a/core/src/com/unciv/models/stats/Stats.kt b/core/src/com/unciv/models/stats/Stats.kt index 5a7943b3ac..efcef03e6a 100644 --- a/core/src/com/unciv/models/stats/Stats.kt +++ b/core/src/com/unciv/models/stats/Stats.kt @@ -1,14 +1,5 @@ package com.unciv.models.stats -enum class Stat{ - Production, - Food, - Gold, - Science, - Culture, - Happiness -} - open class Stats() { var production: Float=0f diff --git a/core/src/com/unciv/ui/CivilopediaScreen.kt b/core/src/com/unciv/ui/CivilopediaScreen.kt index bc599c1a0f..dd8b68e2e1 100644 --- a/core/src/com/unciv/ui/CivilopediaScreen.kt +++ b/core/src/com/unciv/ui/CivilopediaScreen.kt @@ -6,8 +6,8 @@ import com.badlogic.gdx.scenes.scene2d.ui.List import com.badlogic.gdx.utils.Array import com.unciv.models.gamebasics.GameBasics import com.unciv.models.gamebasics.ICivilopedia -import com.unciv.ui.cityscreen.addClickListener import com.unciv.ui.utils.CameraStageBaseScreen +import com.unciv.ui.utils.addClickListener import java.util.* class CivilopediaScreen : CameraStageBaseScreen() { diff --git a/core/src/com/unciv/ui/LoadScreen.kt b/core/src/com/unciv/ui/LoadScreen.kt index f5d3078394..aa10845b53 100644 --- a/core/src/com/unciv/ui/LoadScreen.kt +++ b/core/src/com/unciv/ui/LoadScreen.kt @@ -9,12 +9,8 @@ import com.badlogic.gdx.utils.Json import com.unciv.UnCivGame import com.unciv.logic.GameInfo import com.unciv.logic.GameSaver -import com.unciv.ui.cityscreen.addClickListener import com.unciv.ui.pickerscreens.PickerScreen -import com.unciv.ui.utils.CameraStageBaseScreen -import com.unciv.ui.utils.disable -import com.unciv.ui.utils.enable -import com.unciv.ui.utils.setFontColor +import com.unciv.ui.utils.* import java.text.SimpleDateFormat import java.util.* diff --git a/core/src/com/unciv/ui/NewGameScreen.kt b/core/src/com/unciv/ui/NewGameScreen.kt index f73da540a0..12f321b18f 100644 --- a/core/src/com/unciv/ui/NewGameScreen.kt +++ b/core/src/com/unciv/ui/NewGameScreen.kt @@ -5,8 +5,8 @@ import com.badlogic.gdx.scenes.scene2d.ui.Table import com.badlogic.gdx.utils.Array import com.unciv.GameStarter import com.unciv.models.gamebasics.GameBasics -import com.unciv.ui.cityscreen.addClickListener import com.unciv.ui.pickerscreens.PickerScreen +import com.unciv.ui.utils.addClickListener import com.unciv.ui.utils.enable import com.unciv.ui.worldscreen.WorldScreen diff --git a/core/src/com/unciv/ui/SaveScreen.kt b/core/src/com/unciv/ui/SaveScreen.kt index a2d9e7e47f..5b944e84a5 100644 --- a/core/src/com/unciv/ui/SaveScreen.kt +++ b/core/src/com/unciv/ui/SaveScreen.kt @@ -8,8 +8,8 @@ import com.badlogic.gdx.scenes.scene2d.ui.TextField import com.badlogic.gdx.utils.Json import com.unciv.UnCivGame import com.unciv.logic.GameSaver -import com.unciv.ui.cityscreen.addClickListener import com.unciv.ui.pickerscreens.PickerScreen +import com.unciv.ui.utils.addClickListener import com.unciv.ui.utils.enable import com.unciv.ui.utils.getRandom diff --git a/core/src/com/unciv/ui/VictoryScreen.kt b/core/src/com/unciv/ui/VictoryScreen.kt index dac4ec29b2..b2f29e0bbc 100644 --- a/core/src/com/unciv/ui/VictoryScreen.kt +++ b/core/src/com/unciv/ui/VictoryScreen.kt @@ -5,8 +5,8 @@ import com.badlogic.gdx.scenes.scene2d.ui.Table import com.badlogic.gdx.scenes.scene2d.ui.TextButton import com.unciv.UnCivGame import com.unciv.models.gamebasics.GameBasics -import com.unciv.ui.cityscreen.addClickListener import com.unciv.ui.pickerscreens.PickerScreen +import com.unciv.ui.utils.addClickListener class VictoryScreen : PickerScreen() { diff --git a/core/src/com/unciv/ui/cityscreen/BuildingsTable.kt b/core/src/com/unciv/ui/cityscreen/BuildingsTable.kt index ea98c01480..7656e961f5 100644 --- a/core/src/com/unciv/ui/cityscreen/BuildingsTable.kt +++ b/core/src/com/unciv/ui/cityscreen/BuildingsTable.kt @@ -1,17 +1,15 @@ package com.unciv.ui.cityscreen import com.badlogic.gdx.graphics.Color -import com.badlogic.gdx.scenes.scene2d.Actor -import com.badlogic.gdx.scenes.scene2d.InputEvent import com.badlogic.gdx.scenes.scene2d.ui.Image import com.badlogic.gdx.scenes.scene2d.ui.Label import com.badlogic.gdx.scenes.scene2d.ui.Table -import com.badlogic.gdx.scenes.scene2d.utils.ClickListener import com.unciv.models.gamebasics.Building import com.unciv.models.stats.Stat import com.unciv.models.stats.Stats import com.unciv.ui.utils.CameraStageBaseScreen import com.unciv.ui.utils.ImageGetter.getImage +import com.unciv.ui.utils.addClickListener class BuildingsTable(private val cityScreen: CityScreen) : Table() { @@ -100,12 +98,4 @@ class BuildingsTable(private val cityScreen: CityScreen) : Table() { } -} - -fun Actor.addClickListener(function: () -> Unit) { - this.addListener(object : ClickListener() { - override fun clicked(event: InputEvent?, x: Float, y: Float) { - function() - } - } ) -} +} \ No newline at end of file diff --git a/core/src/com/unciv/ui/cityscreen/CityScreen.kt b/core/src/com/unciv/ui/cityscreen/CityScreen.kt index 0951690e7b..4805898a79 100644 --- a/core/src/com/unciv/ui/cityscreen/CityScreen.kt +++ b/core/src/com/unciv/ui/cityscreen/CityScreen.kt @@ -12,6 +12,7 @@ import com.unciv.logic.map.TileInfo import com.unciv.models.stats.Stats import com.unciv.ui.utils.CameraStageBaseScreen import com.unciv.ui.utils.ImageGetter +import com.unciv.ui.utils.addClickListener import com.unciv.ui.utils.centerX import java.util.* diff --git a/core/src/com/unciv/ui/cityscreen/CityStatsTable.kt b/core/src/com/unciv/ui/cityscreen/CityStatsTable.kt index 98dbfa85be..941830033d 100644 --- a/core/src/com/unciv/ui/cityscreen/CityStatsTable.kt +++ b/core/src/com/unciv/ui/cityscreen/CityStatsTable.kt @@ -10,6 +10,7 @@ import com.unciv.models.gamebasics.Building import com.unciv.ui.pickerscreens.ConstructionPickerScreen import com.unciv.ui.utils.CameraStageBaseScreen import com.unciv.ui.utils.ImageGetter +import com.unciv.ui.utils.addClickListener import com.unciv.ui.utils.disable import java.util.* diff --git a/core/src/com/unciv/ui/pickerscreens/ConstructionPickerScreen.kt b/core/src/com/unciv/ui/pickerscreens/ConstructionPickerScreen.kt index 60f18a7c5e..ac8acf50a0 100644 --- a/core/src/com/unciv/ui/pickerscreens/ConstructionPickerScreen.kt +++ b/core/src/com/unciv/ui/pickerscreens/ConstructionPickerScreen.kt @@ -6,7 +6,7 @@ import com.badlogic.gdx.scenes.scene2d.ui.VerticalGroup import com.unciv.logic.city.CityInfo import com.unciv.models.gamebasics.GameBasics import com.unciv.ui.cityscreen.CityScreen -import com.unciv.ui.cityscreen.addClickListener +import com.unciv.ui.utils.addClickListener class ConstructionPickerScreen(val city: CityInfo) : PickerScreen() { private var selectedProduction: String? = null diff --git a/core/src/com/unciv/ui/pickerscreens/GreatPersonPickerScreen.kt b/core/src/com/unciv/ui/pickerscreens/GreatPersonPickerScreen.kt index cb1699f892..81b7400e11 100644 --- a/core/src/com/unciv/ui/pickerscreens/GreatPersonPickerScreen.kt +++ b/core/src/com/unciv/ui/pickerscreens/GreatPersonPickerScreen.kt @@ -5,9 +5,9 @@ import com.badlogic.gdx.scenes.scene2d.ui.Button import com.badlogic.gdx.scenes.scene2d.ui.Label import com.unciv.UnCivGame import com.unciv.models.gamebasics.GameBasics -import com.unciv.models.gamebasics.Unit -import com.unciv.ui.cityscreen.addClickListener +import com.unciv.models.gamebasics.unit.Unit import com.unciv.ui.utils.ImageGetter +import com.unciv.ui.utils.addClickListener import com.unciv.ui.utils.setFontColor class GreatPersonPickerScreen : PickerScreen() { diff --git a/core/src/com/unciv/ui/pickerscreens/ImprovementPickerScreen.kt b/core/src/com/unciv/ui/pickerscreens/ImprovementPickerScreen.kt index fcb08f8764..e593578130 100644 --- a/core/src/com/unciv/ui/pickerscreens/ImprovementPickerScreen.kt +++ b/core/src/com/unciv/ui/pickerscreens/ImprovementPickerScreen.kt @@ -6,9 +6,9 @@ import com.badlogic.gdx.scenes.scene2d.ui.Label import com.badlogic.gdx.scenes.scene2d.ui.VerticalGroup import com.unciv.logic.map.TileInfo import com.unciv.models.gamebasics.GameBasics -import com.unciv.models.gamebasics.TileImprovement -import com.unciv.ui.cityscreen.addClickListener +import com.unciv.models.gamebasics.tile.TileImprovement import com.unciv.ui.utils.ImageGetter +import com.unciv.ui.utils.addClickListener import com.unciv.ui.utils.setFontColor class ImprovementPickerScreen(tileInfo: TileInfo) : PickerScreen() { diff --git a/core/src/com/unciv/ui/pickerscreens/PickerScreen.kt b/core/src/com/unciv/ui/pickerscreens/PickerScreen.kt index 3521fcb607..0d56d56653 100644 --- a/core/src/com/unciv/ui/pickerscreens/PickerScreen.kt +++ b/core/src/com/unciv/ui/pickerscreens/PickerScreen.kt @@ -4,8 +4,8 @@ import com.badlogic.gdx.graphics.Color import com.badlogic.gdx.scenes.scene2d.Touchable import com.badlogic.gdx.scenes.scene2d.ui.* import com.badlogic.gdx.utils.Align -import com.unciv.ui.cityscreen.addClickListener import com.unciv.ui.utils.CameraStageBaseScreen +import com.unciv.ui.utils.addClickListener import com.unciv.ui.utils.disable open class PickerScreen : CameraStageBaseScreen() { diff --git a/core/src/com/unciv/ui/pickerscreens/PolicyPickerScreen.kt b/core/src/com/unciv/ui/pickerscreens/PolicyPickerScreen.kt index f701a5ffa7..f597ffdb7b 100644 --- a/core/src/com/unciv/ui/pickerscreens/PolicyPickerScreen.kt +++ b/core/src/com/unciv/ui/pickerscreens/PolicyPickerScreen.kt @@ -1,15 +1,12 @@ package com.unciv.ui.pickerscreens -import com.badlogic.gdx.Gdx import com.badlogic.gdx.graphics.Color -import com.badlogic.gdx.graphics.g2d.freetype.FreeTypeFontGenerator import com.badlogic.gdx.scenes.scene2d.ui.Button import com.badlogic.gdx.scenes.scene2d.ui.Table import com.badlogic.gdx.scenes.scene2d.ui.TextButton import com.unciv.logic.civilization.CivilizationInfo import com.unciv.models.gamebasics.GameBasics import com.unciv.models.gamebasics.Policy -import com.unciv.ui.cityscreen.addClickListener import com.unciv.ui.utils.* @@ -41,7 +38,7 @@ class PolicyPickerScreen(internal val civInfo: CivilizationInfo) : PickerScreen( rightSideButton.addClickListener { civInfo.policies.adopt(pickedPolicy!!) - // If we've mmoved to another screen in the meantime (great person pick, victory screen) ignore this + // If we've moved to another screen in the meantime (great person pick, victory screen) ignore this if(game.screen is PolicyPickerScreen) game.screen = PolicyPickerScreen(civInfo) } diff --git a/core/src/com/unciv/ui/pickerscreens/TechPickerScreen.kt b/core/src/com/unciv/ui/pickerscreens/TechPickerScreen.kt index 0994dae382..62b1bfc831 100644 --- a/core/src/com/unciv/ui/pickerscreens/TechPickerScreen.kt +++ b/core/src/com/unciv/ui/pickerscreens/TechPickerScreen.kt @@ -6,8 +6,8 @@ import com.unciv.logic.civilization.CivilizationInfo import com.unciv.logic.civilization.TechManager import com.unciv.models.gamebasics.GameBasics import com.unciv.models.gamebasics.Technology -import com.unciv.ui.cityscreen.addClickListener import com.unciv.ui.utils.CameraStageBaseScreen +import com.unciv.ui.utils.addClickListener import com.unciv.ui.utils.disable import java.util.* diff --git a/core/src/com/unciv/ui/tilegroups/WorldTileGroup.kt b/core/src/com/unciv/ui/tilegroups/WorldTileGroup.kt index a191e92211..3fe1f546c8 100644 --- a/core/src/com/unciv/ui/tilegroups/WorldTileGroup.kt +++ b/core/src/com/unciv/ui/tilegroups/WorldTileGroup.kt @@ -9,13 +9,9 @@ import com.unciv.UnCivGame import com.unciv.logic.city.CityInfo import com.unciv.logic.map.MapUnit import com.unciv.logic.map.TileInfo -import com.unciv.logic.map.UnitType +import com.unciv.models.gamebasics.unit.UnitType import com.unciv.ui.cityscreen.CityScreen -import com.unciv.ui.cityscreen.addClickListener -import com.unciv.ui.utils.CameraStageBaseScreen -import com.unciv.ui.utils.ImageGetter -import com.unciv.ui.utils.center -import com.unciv.ui.utils.setFontColor +import com.unciv.ui.utils.* class WorldTileGroup(tileInfo: TileInfo) : TileGroup(tileInfo) { @@ -25,7 +21,7 @@ class WorldTileGroup(tileInfo: TileInfo) : TileGroup(tileInfo) { val whiteHalo = if(unit.isFortified()) ImageGetter.getImage("OtherIcons/Shield.png") else ImageGetter.getImage("OtherIcons/Circle.png") whiteHalo.setSize(30f,30f) - val unitImage = if(unit.getBaseUnit().unitType==UnitType.Civilian) civilianUnitImage!! + val unitImage = if(unit.getBaseUnit().unitType== UnitType.Civilian) civilianUnitImage!! else militaryUnitImage!! whiteHalo.center(unitImage) unitImage.addActor(whiteHalo) diff --git a/core/src/com/unciv/ui/utils/CameraStageBaseScreen.kt b/core/src/com/unciv/ui/utils/CameraStageBaseScreen.kt index 3fb44b076a..0889fe54ff 100644 --- a/core/src/com/unciv/ui/utils/CameraStageBaseScreen.kt +++ b/core/src/com/unciv/ui/utils/CameraStageBaseScreen.kt @@ -10,14 +10,15 @@ import com.badlogic.gdx.graphics.g2d.BitmapFont import com.badlogic.gdx.graphics.g2d.SpriteBatch import com.badlogic.gdx.graphics.g2d.freetype.FreeTypeFontGenerator import com.badlogic.gdx.scenes.scene2d.Actor +import com.badlogic.gdx.scenes.scene2d.InputEvent import com.badlogic.gdx.scenes.scene2d.Stage import com.badlogic.gdx.scenes.scene2d.Touchable import com.badlogic.gdx.scenes.scene2d.ui.* +import com.badlogic.gdx.scenes.scene2d.utils.ClickListener import com.badlogic.gdx.utils.Align import com.badlogic.gdx.utils.viewport.ExtendViewport import com.unciv.UnCivGame import com.unciv.models.gamebasics.GameBasics -import com.unciv.ui.cityscreen.addClickListener open class CameraStageBaseScreen : Screen { @@ -139,4 +140,12 @@ fun Label.setFont(size:Int) { style = Label.LabelStyle(style) style.font = getFont(size) style = style // because we need it to call the SetStyle function. Yuk, I know. -} \ No newline at end of file +} + +fun Actor.addClickListener(function: () -> Unit) { + this.addListener(object : ClickListener() { + override fun clicked(event: InputEvent?, x: Float, y: Float) { + function() + } + } ) +} diff --git a/core/src/com/unciv/ui/worldscreen/Minimap.kt b/core/src/com/unciv/ui/worldscreen/Minimap.kt index d14bc0ef2d..0b23d9d75d 100644 --- a/core/src/com/unciv/ui/worldscreen/Minimap.kt +++ b/core/src/com/unciv/ui/worldscreen/Minimap.kt @@ -8,8 +8,8 @@ import com.badlogic.gdx.scenes.scene2d.ui.Image import com.badlogic.gdx.scenes.scene2d.ui.ScrollPane import com.unciv.logic.HexMath import com.unciv.logic.map.TileInfo -import com.unciv.ui.cityscreen.addClickListener import com.unciv.ui.utils.ImageGetter +import com.unciv.ui.utils.addClickListener import com.unciv.ui.utils.colorFromRGB class Minimap(val tileMapHolder: TileMapHolder) : ScrollPane(null){ @@ -37,7 +37,7 @@ class Minimap(val tileMapHolder: TileMapHolder) : ScrollPane(null){ hex.setPosition(positionalVector.x * 0.5f * groupSize, positionalVector.y * 0.5f * groupSize) hex.addClickListener { - tileMapHolder.setCenterPosition(tileInfo.position); + tileMapHolder.setCenterPosition(tileInfo.position) setScrollToTileMapHolder() } allTiles.addActor(hex) diff --git a/core/src/com/unciv/ui/worldscreen/NotificationsScroll.kt b/core/src/com/unciv/ui/worldscreen/NotificationsScroll.kt index 59f0b0f724..121b7da091 100644 --- a/core/src/com/unciv/ui/worldscreen/NotificationsScroll.kt +++ b/core/src/com/unciv/ui/worldscreen/NotificationsScroll.kt @@ -5,9 +5,9 @@ import com.badlogic.gdx.scenes.scene2d.ui.Label import com.badlogic.gdx.scenes.scene2d.ui.ScrollPane import com.badlogic.gdx.scenes.scene2d.ui.Table import com.unciv.logic.civilization.Notification -import com.unciv.ui.cityscreen.addClickListener import com.unciv.ui.utils.CameraStageBaseScreen import com.unciv.ui.utils.ImageGetter +import com.unciv.ui.utils.addClickListener import com.unciv.ui.utils.setFontColor import kotlin.math.min diff --git a/core/src/com/unciv/ui/worldscreen/TileMapHolder.kt b/core/src/com/unciv/ui/worldscreen/TileMapHolder.kt index ae83b436e5..fbfc88f9b3 100644 --- a/core/src/com/unciv/ui/worldscreen/TileMapHolder.kt +++ b/core/src/com/unciv/ui/worldscreen/TileMapHolder.kt @@ -10,9 +10,9 @@ import com.unciv.logic.HexMath import com.unciv.logic.civilization.CivilizationInfo import com.unciv.logic.map.TileInfo import com.unciv.logic.map.TileMap -import com.unciv.logic.map.UnitType -import com.unciv.ui.cityscreen.addClickListener +import com.unciv.models.gamebasics.unit.UnitType import com.unciv.ui.tilegroups.WorldTileGroup +import com.unciv.ui.utils.addClickListener import com.unciv.ui.utils.colorFromRGB class TileMapHolder(internal val worldScreen: WorldScreen, internal val tileMap: TileMap, internal val civInfo: CivilizationInfo) : ScrollPane(null) { @@ -111,7 +111,7 @@ class TileMapHolder(internal val worldScreen: WorldScreen, internal val tileMap: it.getUnits().isNotEmpty() && it.getUnits().first().owner != unit.owner && civViewableTiles.contains(it)}) { - if(unit.getBaseUnit().unitType==UnitType.Civilian) tileGroups[tile]!!.hideCircle() + if(unit.getBaseUnit().unitType== UnitType.Civilian) tileGroups[tile]!!.hideCircle() else tileGroups[tile]!!.showCircle(colorFromRGB(237, 41, 57)) } } diff --git a/core/src/com/unciv/ui/worldscreen/WorldScreen.kt b/core/src/com/unciv/ui/worldscreen/WorldScreen.kt index c57ddf55dc..6ba633b277 100644 --- a/core/src/com/unciv/ui/worldscreen/WorldScreen.kt +++ b/core/src/com/unciv/ui/worldscreen/WorldScreen.kt @@ -6,13 +6,14 @@ import com.badlogic.gdx.scenes.scene2d.ui.Label import com.badlogic.gdx.scenes.scene2d.ui.TextButton import com.unciv.logic.GameSaver import com.unciv.logic.civilization.CivilizationInfo -import com.unciv.ui.cityscreen.addClickListener import com.unciv.ui.pickerscreens.GreatPersonPickerScreen import com.unciv.ui.pickerscreens.PolicyPickerScreen import com.unciv.ui.pickerscreens.TechPickerScreen import com.unciv.ui.utils.CameraStageBaseScreen +import com.unciv.ui.utils.addClickListener import com.unciv.ui.utils.disable import com.unciv.ui.utils.enable +import com.unciv.ui.worldscreen.bottombar.WorldScreenBottomBar import com.unciv.ui.worldscreen.unit.UnitActionsTable class WorldScreen : CameraStageBaseScreen() { diff --git a/core/src/com/unciv/ui/worldscreen/WorldScreenTopBar.kt b/core/src/com/unciv/ui/worldscreen/WorldScreenTopBar.kt index 9d8e0c3c89..47cfec75b2 100644 --- a/core/src/com/unciv/ui/worldscreen/WorldScreenTopBar.kt +++ b/core/src/com/unciv/ui/worldscreen/WorldScreenTopBar.kt @@ -6,10 +6,10 @@ import com.badlogic.gdx.scenes.scene2d.ui.Label import com.badlogic.gdx.scenes.scene2d.ui.Table import com.unciv.logic.civilization.CivilizationInfo import com.unciv.models.gamebasics.GameBasics -import com.unciv.models.gamebasics.ResourceType +import com.unciv.models.gamebasics.tile.ResourceType import com.unciv.models.stats.Stats -import com.unciv.ui.cityscreen.addClickListener import com.unciv.ui.utils.* +import com.unciv.ui.worldscreen.optionstable.WorldScreenOptionsTable import kotlin.math.abs import kotlin.math.ceil diff --git a/core/src/com/unciv/ui/worldscreen/BattleTable.kt b/core/src/com/unciv/ui/worldscreen/bottombar/BattleTable.kt similarity index 94% rename from core/src/com/unciv/ui/worldscreen/BattleTable.kt rename to core/src/com/unciv/ui/worldscreen/bottombar/BattleTable.kt index 2c1ab44654..d9f07a39b5 100644 --- a/core/src/com/unciv/ui/worldscreen/BattleTable.kt +++ b/core/src/com/unciv/ui/worldscreen/bottombar/BattleTable.kt @@ -1,4 +1,4 @@ -package com.unciv.ui.worldscreen +package com.unciv.ui.worldscreen.bottombar import com.badlogic.gdx.scenes.scene2d.ui.Label import com.badlogic.gdx.scenes.scene2d.ui.Table @@ -7,12 +7,9 @@ import com.unciv.logic.automation.UnitAutomation import com.unciv.logic.battle.Battle import com.unciv.logic.battle.ICombatant import com.unciv.logic.battle.MapUnitCombatant -import com.unciv.logic.map.UnitType -import com.unciv.ui.cityscreen.addClickListener -import com.unciv.ui.utils.CameraStageBaseScreen -import com.unciv.ui.utils.ImageGetter -import com.unciv.ui.utils.disable -import com.unciv.ui.utils.setFontColor +import com.unciv.models.gamebasics.unit.UnitType +import com.unciv.ui.utils.* +import com.unciv.ui.worldscreen.WorldScreen import kotlin.math.max class BattleTable(val worldScreen: WorldScreen): Table() { diff --git a/core/src/com/unciv/ui/worldscreen/TileInfoTable.kt b/core/src/com/unciv/ui/worldscreen/bottombar/TileInfoTable.kt similarity index 93% rename from core/src/com/unciv/ui/worldscreen/TileInfoTable.kt rename to core/src/com/unciv/ui/worldscreen/bottombar/TileInfoTable.kt index ae5201ea59..13a2c35751 100644 --- a/core/src/com/unciv/ui/worldscreen/TileInfoTable.kt +++ b/core/src/com/unciv/ui/worldscreen/bottombar/TileInfoTable.kt @@ -1,4 +1,4 @@ -package com.unciv.ui.worldscreen +package com.unciv.ui.worldscreen.bottombar import com.badlogic.gdx.scenes.scene2d.ui.Label import com.badlogic.gdx.scenes.scene2d.ui.Table @@ -6,6 +6,7 @@ import com.badlogic.gdx.utils.Align import com.unciv.logic.map.TileInfo import com.unciv.ui.utils.CameraStageBaseScreen import com.unciv.ui.utils.ImageGetter +import com.unciv.ui.worldscreen.WorldScreen class TileInfoTable(private val worldScreen: WorldScreen) : Table() { init{ diff --git a/core/src/com/unciv/ui/worldscreen/WorldScreenBottomBar.kt b/core/src/com/unciv/ui/worldscreen/bottombar/WorldScreenBottomBar.kt similarity index 93% rename from core/src/com/unciv/ui/worldscreen/WorldScreenBottomBar.kt rename to core/src/com/unciv/ui/worldscreen/bottombar/WorldScreenBottomBar.kt index 36845160c0..3d59881711 100644 --- a/core/src/com/unciv/ui/worldscreen/WorldScreenBottomBar.kt +++ b/core/src/com/unciv/ui/worldscreen/bottombar/WorldScreenBottomBar.kt @@ -1,9 +1,10 @@ -package com.unciv.ui.worldscreen +package com.unciv.ui.worldscreen.bottombar import com.badlogic.gdx.graphics.Color import com.badlogic.gdx.scenes.scene2d.ui.Table import com.unciv.logic.map.TileInfo import com.unciv.ui.utils.ImageGetter +import com.unciv.ui.worldscreen.WorldScreen import com.unciv.ui.worldscreen.unit.UnitTable class WorldScreenBottomBar(val worldScreen: WorldScreen) : Table(){ diff --git a/core/src/com/unciv/ui/worldscreen/optionstable/OptionsTable.kt b/core/src/com/unciv/ui/worldscreen/optionstable/OptionsTable.kt new file mode 100644 index 0000000000..6eace425e1 --- /dev/null +++ b/core/src/com/unciv/ui/worldscreen/optionstable/OptionsTable.kt @@ -0,0 +1,25 @@ +package com.unciv.ui.worldscreen.optionstable + +import com.badlogic.gdx.graphics.Color +import com.badlogic.gdx.scenes.scene2d.ui.Table +import com.badlogic.gdx.scenes.scene2d.ui.TextButton +import com.unciv.ui.utils.CameraStageBaseScreen +import com.unciv.ui.utils.ImageGetter +import com.unciv.ui.utils.addClickListener + +open class OptionsTable: Table(){ + init { + val tileTableBackground = ImageGetter.getDrawable("skin/whiteDot.png") + .tint(Color(0x004085bf)) + background = tileTableBackground + + this.pad(20f) + this.defaults().pad(5f) + } + + fun addButton(text:String, action:()->Unit){ + val button = TextButton(text, CameraStageBaseScreen.skin).apply { color= ImageGetter.getBlue() } + button.addClickListener(action) + add(button).row() + } +} \ No newline at end of file diff --git a/core/src/com/unciv/ui/worldscreen/WorldScreenOptionsTable.kt b/core/src/com/unciv/ui/worldscreen/optionstable/WorldScreenDisplayOptionsTable.kt similarity index 51% rename from core/src/com/unciv/ui/worldscreen/WorldScreenOptionsTable.kt rename to core/src/com/unciv/ui/worldscreen/optionstable/WorldScreenDisplayOptionsTable.kt index a593663426..08e03a521d 100644 --- a/core/src/com/unciv/ui/worldscreen/WorldScreenOptionsTable.kt +++ b/core/src/com/unciv/ui/worldscreen/optionstable/WorldScreenDisplayOptionsTable.kt @@ -1,75 +1,14 @@ -package com.unciv.ui.worldscreen +package com.unciv.ui.worldscreen.optionstable -import com.badlogic.gdx.graphics.Color import com.badlogic.gdx.scenes.scene2d.Actor import com.badlogic.gdx.scenes.scene2d.ui.SelectBox -import com.badlogic.gdx.scenes.scene2d.ui.Table -import com.badlogic.gdx.scenes.scene2d.ui.TextButton import com.badlogic.gdx.scenes.scene2d.utils.ChangeListener import com.unciv.UnCivGame import com.unciv.logic.GameSaver import com.unciv.models.gamebasics.GameBasics -import com.unciv.ui.LoadScreen -import com.unciv.ui.NewGameScreen -import com.unciv.ui.SaveScreen -import com.unciv.ui.VictoryScreen -import com.unciv.ui.cityscreen.addClickListener -import com.unciv.ui.pickerscreens.PolicyPickerScreen import com.unciv.ui.utils.CameraStageBaseScreen -import com.unciv.ui.utils.ImageGetter import com.unciv.ui.utils.center -class WorldScreenOptionsTable internal constructor() : OptionsTable() { - - init { - addButton("Load game"){ - UnCivGame.Current.screen = LoadScreen() - remove() - } - - addButton("Save game") { - UnCivGame.Current.screen = SaveScreen() - remove() - } - - addButton("Start new game"){ UnCivGame.Current.screen = NewGameScreen() } - - addButton("Victory status") { UnCivGame.Current.screen = VictoryScreen() } - - addButton("Social Policies"){ - UnCivGame.Current.screen = PolicyPickerScreen(UnCivGame.Current.gameInfo.getPlayerCivilization()) - } - - - addButton("Display options"){ - UnCivGame.Current.worldScreen.stage.addActor(WorldScreenDisplayOptionsTable()) - remove() - } - - addButton("Close"){ remove() } - - pack() // Needed to show the background. - center(UnCivGame.Current.worldScreen.stage) - } -} - -open class OptionsTable:Table(){ - init { - val tileTableBackground = ImageGetter.getDrawable("skin/whiteDot.png") - .tint(Color(0x004085bf)) - background = tileTableBackground - - this.pad(20f) - this.defaults().pad(5f) - } - - fun addButton(text:String, action:()->Unit){ - val button = TextButton(text, CameraStageBaseScreen.skin).apply { color=ImageGetter.getBlue() } - button.addClickListener(action) - add(button).row() - } -} - class WorldScreenDisplayOptionsTable() : OptionsTable(){ init { update() diff --git a/core/src/com/unciv/ui/worldscreen/optionstable/WorldScreenOptionsTable.kt b/core/src/com/unciv/ui/worldscreen/optionstable/WorldScreenOptionsTable.kt new file mode 100644 index 0000000000..7eb3e3ed03 --- /dev/null +++ b/core/src/com/unciv/ui/worldscreen/optionstable/WorldScreenOptionsTable.kt @@ -0,0 +1,44 @@ +package com.unciv.ui.worldscreen.optionstable + +import com.unciv.UnCivGame +import com.unciv.ui.LoadScreen +import com.unciv.ui.NewGameScreen +import com.unciv.ui.SaveScreen +import com.unciv.ui.VictoryScreen +import com.unciv.ui.pickerscreens.PolicyPickerScreen +import com.unciv.ui.utils.center + +class WorldScreenOptionsTable internal constructor() : OptionsTable() { + + init { + addButton("Load game"){ + UnCivGame.Current.screen = LoadScreen() + remove() + } + + addButton("Save game") { + UnCivGame.Current.screen = SaveScreen() + remove() + } + + addButton("Start new game"){ UnCivGame.Current.screen = NewGameScreen() } + + addButton("Victory status") { UnCivGame.Current.screen = VictoryScreen() } + + addButton("Social Policies"){ + UnCivGame.Current.screen = PolicyPickerScreen(UnCivGame.Current.gameInfo.getPlayerCivilization()) + } + + + addButton("Display options"){ + UnCivGame.Current.worldScreen.stage.addActor(WorldScreenDisplayOptionsTable()) + remove() + } + + addButton("Close"){ remove() } + + pack() // Needed to show the background. + center(UnCivGame.Current.worldScreen.stage) + } +} + diff --git a/core/src/com/unciv/ui/worldscreen/unit/IdleUnitButton.kt b/core/src/com/unciv/ui/worldscreen/unit/IdleUnitButton.kt index 5b8e78cd73..d51f3d8fdb 100644 --- a/core/src/com/unciv/ui/worldscreen/unit/IdleUnitButton.kt +++ b/core/src/com/unciv/ui/worldscreen/unit/IdleUnitButton.kt @@ -2,8 +2,8 @@ package com.unciv.ui.worldscreen.unit import com.badlogic.gdx.scenes.scene2d.ui.TextButton import com.unciv.logic.map.TileInfo -import com.unciv.ui.cityscreen.addClickListener import com.unciv.ui.utils.CameraStageBaseScreen +import com.unciv.ui.utils.addClickListener import com.unciv.ui.utils.disable import com.unciv.ui.utils.enable import com.unciv.ui.worldscreen.TileMapHolder diff --git a/core/src/com/unciv/ui/worldscreen/unit/UnitActions.kt b/core/src/com/unciv/ui/worldscreen/unit/UnitActions.kt index e4dc2cf092..49b88980b8 100644 --- a/core/src/com/unciv/ui/worldscreen/unit/UnitActions.kt +++ b/core/src/com/unciv/ui/worldscreen/unit/UnitActions.kt @@ -2,7 +2,7 @@ package com.unciv.ui.worldscreen.unit import com.unciv.logic.automation.WorkerAutomation import com.unciv.logic.map.MapUnit -import com.unciv.logic.map.UnitType +import com.unciv.models.gamebasics.unit.UnitType import com.unciv.models.gamebasics.Building import com.unciv.models.gamebasics.GameBasics import com.unciv.ui.pickerscreens.ImprovementPickerScreen @@ -42,7 +42,7 @@ class UnitActions { },true) } - if(unit.getBaseUnit().unitType!=UnitType.Civilian && !unit.hasUnique("No defensive terrain bonus")){ + if(unit.getBaseUnit().unitType!= UnitType.Civilian && !unit.hasUnique("No defensive terrain bonus")){ if(!unit.isFortified()) actionList += UnitAction("Fortify",{unit.action="Fortify 0"}, unit.currentMovement != 0f) } diff --git a/core/src/com/unciv/ui/worldscreen/unit/UnitActionsTable.kt b/core/src/com/unciv/ui/worldscreen/unit/UnitActionsTable.kt index c18b99336b..286729dfb0 100644 --- a/core/src/com/unciv/ui/worldscreen/unit/UnitActionsTable.kt +++ b/core/src/com/unciv/ui/worldscreen/unit/UnitActionsTable.kt @@ -7,11 +7,7 @@ import com.badlogic.gdx.scenes.scene2d.ui.Label import com.badlogic.gdx.scenes.scene2d.ui.Table import com.unciv.UnCivGame import com.unciv.logic.map.MapUnit -import com.unciv.ui.cityscreen.addClickListener -import com.unciv.ui.utils.CameraStageBaseScreen -import com.unciv.ui.utils.ImageGetter -import com.unciv.ui.utils.disable -import com.unciv.ui.utils.setFontColor +import com.unciv.ui.utils.* import com.unciv.ui.worldscreen.WorldScreen class UnitActionsTable(val worldScreen: WorldScreen) : Table(){ diff --git a/core/src/com/unciv/ui/worldscreen/unit/UnitTable.kt b/core/src/com/unciv/ui/worldscreen/unit/UnitTable.kt index 8d1dd1fb2b..e7a2acbc68 100644 --- a/core/src/com/unciv/ui/worldscreen/unit/UnitTable.kt +++ b/core/src/com/unciv/ui/worldscreen/unit/UnitTable.kt @@ -4,9 +4,9 @@ import com.badlogic.gdx.scenes.scene2d.ui.Label import com.badlogic.gdx.scenes.scene2d.ui.Table import com.unciv.logic.map.MapUnit import com.unciv.logic.map.TileInfo -import com.unciv.logic.map.UnitType -import com.unciv.ui.cityscreen.addClickListener +import com.unciv.models.gamebasics.unit.UnitType import com.unciv.ui.utils.CameraStageBaseScreen +import com.unciv.ui.utils.addClickListener import com.unciv.ui.worldscreen.WorldScreen class UnitTable(val worldScreen: WorldScreen) : Table(){