diff --git a/core/src/com/unciv/ui/mapeditor/MapEditorOptionsTable.kt b/core/src/com/unciv/ui/mapeditor/MapEditorOptionsTable.kt index 825471edc1..601a3cecca 100644 --- a/core/src/com/unciv/ui/mapeditor/MapEditorOptionsTable.kt +++ b/core/src/com/unciv/ui/mapeditor/MapEditorOptionsTable.kt @@ -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() diff --git a/core/src/com/unciv/ui/mapeditor/MapEditorScreen.kt b/core/src/com/unciv/ui/mapeditor/MapEditorScreen.kt index fb589cfa3d..ded78c4433 100644 --- a/core/src/com/unciv/ui/mapeditor/MapEditorScreen.kt +++ b/core/src/com/unciv/ui/mapeditor/MapEditorScreen.kt @@ -32,6 +32,7 @@ class MapEditorScreen(): CameraStageBaseScreen(){ var tileMap = TileMap(GameParameters()) var mapName = "My first map" var currentHex=Group() + lateinit var mapHolder: TileGroupMap 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() diff --git a/core/src/com/unciv/ui/worldscreen/TileGroupMap.kt b/core/src/com/unciv/ui/worldscreen/TileGroupMap.kt index 45ac5c30bf..0668006af4 100644 --- a/core/src/com/unciv/ui/worldscreen/TileGroupMap.kt +++ b/core/src/com/unciv/ui/worldscreen/TileGroupMap.kt @@ -4,7 +4,7 @@ import com.badlogic.gdx.scenes.scene2d.Group import com.unciv.logic.HexMath import com.unciv.ui.tilegroups.TileGroup -class TileGroupMap(tileGroups:Collection, padding:Float): Group(){ +class TileGroupMap(val tileGroups:Collection, padding:Float): Group(){ init{ var topX = -Float.MAX_VALUE var topY = -Float.MAX_VALUE