mirror of
https://github.com/yairm210/Unciv.git
synced 2025-07-29 06:09:24 +07:00
Added "Clear Map" button to Map Editor
This commit is contained in:
@ -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()
|
||||
|
||||
|
@ -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()
|
||||
|
@ -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
|
||||
|
Reference in New Issue
Block a user