mirror of
https://github.com/yairm210/Unciv.git
synced 2025-09-28 06:16:37 -04:00
Tile icons in the map editor now look like the real tiles would
This commit is contained in:
parent
32ea37d4ec
commit
5ea62f24d0
@ -9,6 +9,7 @@ import com.badlogic.gdx.scenes.scene2d.ui.TextButton
|
|||||||
import com.unciv.GameParameters
|
import com.unciv.GameParameters
|
||||||
import com.unciv.UnCivGame
|
import com.unciv.UnCivGame
|
||||||
import com.unciv.logic.GameSaver
|
import com.unciv.logic.GameSaver
|
||||||
|
import com.unciv.logic.map.TileInfo
|
||||||
import com.unciv.logic.map.TileMap
|
import com.unciv.logic.map.TileMap
|
||||||
import com.unciv.models.gamebasics.GameBasics
|
import com.unciv.models.gamebasics.GameBasics
|
||||||
import com.unciv.models.gamebasics.tile.Terrain
|
import com.unciv.models.gamebasics.tile.Terrain
|
||||||
@ -31,7 +32,7 @@ class MapEditorScreen(): CameraStageBaseScreen(){
|
|||||||
var selectedResource:TileResource?=null
|
var selectedResource:TileResource?=null
|
||||||
var tileMap = TileMap(GameParameters())
|
var tileMap = TileMap(GameParameters())
|
||||||
var mapName = "My first map"
|
var mapName = "My first map"
|
||||||
var currentHex=Group()
|
private var currentHex:Actor=Group()
|
||||||
lateinit var mapHolder: TileGroupMap<TileGroup>
|
lateinit var mapHolder: TileGroupMap<TileGroup>
|
||||||
|
|
||||||
fun clearSelection(){
|
fun clearSelection(){
|
||||||
@ -128,44 +129,49 @@ class MapEditorScreen(): CameraStageBaseScreen(){
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
fun setCurrentHex(color: Color, image: Actor?=null){
|
fun setCurrentHex(tileInfo: TileInfo?){
|
||||||
currentHex.remove()
|
currentHex.remove()
|
||||||
currentHex=getHex(color,image)
|
if(tileInfo!=null)currentHex=TileGroup(tileInfo)
|
||||||
|
.apply {
|
||||||
|
showEntireMap=true
|
||||||
|
forMapEditorIcon=true
|
||||||
|
update(true,true,true)
|
||||||
|
}
|
||||||
|
else currentHex = ImageGetter.getCircle()
|
||||||
currentHex.setPosition(stage.width-currentHex.width-10, 10f)
|
currentHex.setPosition(stage.width-currentHex.width-10, 10f)
|
||||||
stage.addActor(currentHex)
|
stage.addActor(currentHex)
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun getTileEditorOptions(): Table {
|
private fun getTileEditorOptions(): Table {
|
||||||
|
|
||||||
val baseTerrainHolder = Table()
|
val baseTerrainHolder = Table().apply { defaults().padRight(10f) }
|
||||||
val terrainFeatureHolder = Table()
|
val terrainFeatureHolder = Table().apply { defaults().padRight(10f) }
|
||||||
terrainFeatureHolder.add(getHex(Color.WHITE).apply {
|
terrainFeatureHolder.add(getHex(Color.WHITE).apply {
|
||||||
onClick {
|
onClick {
|
||||||
clearSelection()
|
clearSelection()
|
||||||
clearTerrainFeature = true
|
clearTerrainFeature = true
|
||||||
setCurrentHex(Color.WHITE)
|
setCurrentHex(null)
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
for (terrain in GameBasics.Terrains.values) {
|
for (terrain in GameBasics.Terrains.values) {
|
||||||
var iconPath: String? = null
|
val tileInfo = TileInfo()
|
||||||
var color = Color.WHITE
|
if (terrain.type == TerrainType.TerrainFeature) {
|
||||||
|
tileInfo.baseTerrain = terrain.occursOn!!.first()
|
||||||
if (terrain.type == TerrainType.TerrainFeature)
|
tileInfo.terrainFeature=terrain.name
|
||||||
iconPath = tileSetLocation + terrain.name+"Overlay"
|
|
||||||
else {
|
|
||||||
color = terrain.getColor()
|
|
||||||
val imagePath = tileSetLocation + terrain.name+"Overlay"
|
|
||||||
if (ImageGetter.imageExists(imagePath)) {
|
|
||||||
iconPath = imagePath
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
else tileInfo.baseTerrain=terrain.name
|
||||||
|
|
||||||
|
tileInfo.setTransients()
|
||||||
|
val group = TileGroup(tileInfo)
|
||||||
|
group.showEntireMap=true
|
||||||
|
group.forMapEditorIcon=true
|
||||||
|
group.update(true,true,true)
|
||||||
|
|
||||||
val group = getHex(color, if(iconPath==null) null else ImageGetter.getImage(iconPath))
|
|
||||||
group.onClick {
|
group.onClick {
|
||||||
clearSelection()
|
clearSelection()
|
||||||
selectedTerrain = terrain
|
selectedTerrain = terrain
|
||||||
setCurrentHex(color, if(iconPath==null) null else ImageGetter.getImage(iconPath))
|
setCurrentHex(tileInfo)
|
||||||
}
|
}
|
||||||
|
|
||||||
if (terrain.type == TerrainType.TerrainFeature)
|
if (terrain.type == TerrainType.TerrainFeature)
|
||||||
@ -184,7 +190,19 @@ class MapEditorScreen(): CameraStageBaseScreen(){
|
|||||||
resourceHex.onClick {
|
resourceHex.onClick {
|
||||||
clearSelection()
|
clearSelection()
|
||||||
selectedResource = resource
|
selectedResource = resource
|
||||||
setCurrentHex(Color.WHITE, ImageGetter.getResourceImage(resource.name, 40f))
|
val tileInfo = TileInfo()
|
||||||
|
|
||||||
|
val terrain = resource.terrainsCanBeFoundOn.first()
|
||||||
|
val terrainObject = GameBasics.Terrains[terrain]!!
|
||||||
|
if(terrainObject.type==TerrainType.TerrainFeature){
|
||||||
|
tileInfo.baseTerrain=terrainObject.occursOn!!.first()
|
||||||
|
tileInfo.terrainFeature=terrain
|
||||||
|
}
|
||||||
|
else tileInfo.baseTerrain=terrain
|
||||||
|
|
||||||
|
tileInfo.resource = resource.name
|
||||||
|
tileInfo.setTransients()
|
||||||
|
setCurrentHex(tileInfo)
|
||||||
}
|
}
|
||||||
resourcesHolder.add(resourceHex)
|
resourcesHolder.add(resourceHex)
|
||||||
}
|
}
|
||||||
|
@ -63,6 +63,7 @@ open class TileGroup(var tileInfo: TileInfo) : Group() {
|
|||||||
var yieldGroup = YieldGroup()
|
var yieldGroup = YieldGroup()
|
||||||
|
|
||||||
var showEntireMap = UnCivGame.Current.viewEntireMapForDebug
|
var showEntireMap = UnCivGame.Current.viewEntireMapForDebug
|
||||||
|
var forMapEditorIcon = false
|
||||||
|
|
||||||
class RoadImage {
|
class RoadImage {
|
||||||
var roadStatus: RoadStatus = RoadStatus.None
|
var roadStatus: RoadStatus = RoadStatus.None
|
||||||
@ -304,6 +305,7 @@ open class TileGroup(var tileInfo: TileInfo) : Group() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private fun updateRoadImages() {
|
private fun updateRoadImages() {
|
||||||
|
if(forMapEditorIcon) return
|
||||||
for (neighbor in tileInfo.neighbors) {
|
for (neighbor in tileInfo.neighbors) {
|
||||||
if (!roadImages.containsKey(neighbor)) roadImages[neighbor] = RoadImage()
|
if (!roadImages.containsKey(neighbor)) roadImages[neighbor] = RoadImage()
|
||||||
val roadImage = roadImages[neighbor]!!
|
val roadImage = roadImages[neighbor]!!
|
||||||
|
Loading…
x
Reference in New Issue
Block a user