Added "Clear Map" button to Map Editor

This commit is contained in:
Yair Morgenstern
2019-05-04 22:09:07 +03:00
parent d8fd48b4ce
commit 32ea37d4ec
3 changed files with 29 additions and 9 deletions

View File

@ -4,28 +4,47 @@ import com.badlogic.gdx.Gdx
import com.badlogic.gdx.scenes.scene2d.ui.TextButton
import com.badlogic.gdx.scenes.scene2d.ui.TextField
import com.badlogic.gdx.utils.Json
import com.unciv.Constants
import com.unciv.UnCivGame
import com.unciv.logic.GameSaver
import com.unciv.logic.map.RoadStatus
import com.unciv.models.gamebasics.tr
import com.unciv.ui.saves.Gzip
import com.unciv.ui.utils.CameraStageBaseScreen
import com.unciv.ui.utils.onClick
import com.unciv.ui.worldscreen.optionstable.PopupTable
class MapEditorOptionsTable(mapEditorScreen: MapEditorScreen): PopupTable(mapEditorScreen){
init{
val mapNameEditor = TextField(mapEditorScreen.mapName, CameraStageBaseScreen.skin)
val mapNameEditor = TextField(mapEditorScreen.mapName, skin)
mapNameEditor.addListener{ mapEditorScreen.mapName=mapNameEditor.text; true }
add(mapNameEditor).row()
val clearCurrentMapButton = TextButton("Clear current map".tr(),skin)
clearCurrentMapButton.onClick {
for(tileGroup in mapEditorScreen.mapHolder.tileGroups)
{
val tile = tileGroup.tileInfo
tile.baseTerrain=Constants.ocean
tile.terrainFeature=null
tile.resource=null
tile.improvement=null
tile.improvementInProgress=null
tile.roadStatus=RoadStatus.None
tile.setTransients()
val saveMapButton = TextButton("Save".tr(), CameraStageBaseScreen.skin)
tileGroup.update(true,true,true)
}
}
add(clearCurrentMapButton).row()
val saveMapButton = TextButton("Save".tr(), skin)
saveMapButton.onClick {
GameSaver().saveMap(mapEditorScreen.mapName,mapEditorScreen.tileMap)
UnCivGame.Current.setWorldScreen()
}
add(saveMapButton).row()
val copyMapAsTextButton = TextButton("Copy to clipboard".tr(), CameraStageBaseScreen.skin)
val copyMapAsTextButton = TextButton("Copy to clipboard".tr(), skin)
copyMapAsTextButton.onClick {
val json = Json().toJson(mapEditorScreen.tileMap)
val base64Gzip = Gzip.zip(json)
@ -33,15 +52,15 @@ class MapEditorOptionsTable(mapEditorScreen: MapEditorScreen): PopupTable(mapEdi
}
add(copyMapAsTextButton).row()
val loadMapButton = TextButton("Load".tr(), CameraStageBaseScreen.skin)
val loadMapButton = TextButton("Load".tr(), skin)
loadMapButton.onClick { MapScreenLoadTable(mapEditorScreen); remove() }
add(loadMapButton).row()
val exitMapEditorButton = TextButton("Exit map editor".tr(), CameraStageBaseScreen.skin)
val exitMapEditorButton = TextButton("Exit map editor".tr(), skin)
exitMapEditorButton.onClick { UnCivGame.Current.setWorldScreen(); mapEditorScreen.dispose() }
add(exitMapEditorButton ).row()
val closeOptionsButtton = TextButton("Close".tr(), CameraStageBaseScreen.skin)
val closeOptionsButtton = TextButton("Close".tr(), skin)
closeOptionsButtton.onClick { remove() }
add(closeOptionsButtton).row()

View File

@ -32,6 +32,7 @@ class MapEditorScreen(): CameraStageBaseScreen(){
var tileMap = TileMap(GameParameters())
var mapName = "My first map"
var currentHex=Group()
lateinit var mapHolder: TileGroupMap<TileGroup>
fun clearSelection(){
clearTerrainFeature=false
@ -116,7 +117,7 @@ class MapEditorScreen(): CameraStageBaseScreen(){
}
}
val mapHolder = TileGroupMap(tileGroups, 300f)
mapHolder = TileGroupMap(tileGroups, 300f)
val scrollPane = ScrollPane(mapHolder)
scrollPane.setSize(stage.width, stage.height)
scrollPane.layout()

View File

@ -4,7 +4,7 @@ import com.badlogic.gdx.scenes.scene2d.Group
import com.unciv.logic.HexMath
import com.unciv.ui.tilegroups.TileGroup
class TileGroupMap<T: TileGroup>(tileGroups:Collection<T>, padding:Float): Group(){
class TileGroupMap<T: TileGroup>(val tileGroups:Collection<T>, padding:Float): Group(){
init{
var topX = -Float.MAX_VALUE
var topY = -Float.MAX_VALUE