mirror of
https://github.com/yairm210/Unciv.git
synced 2025-09-28 22:37:02 -04:00
Added "Clear Map" button to Map Editor
This commit is contained in:
parent
d8fd48b4ce
commit
32ea37d4ec
@ -4,28 +4,47 @@ import com.badlogic.gdx.Gdx
|
|||||||
import com.badlogic.gdx.scenes.scene2d.ui.TextButton
|
import com.badlogic.gdx.scenes.scene2d.ui.TextButton
|
||||||
import com.badlogic.gdx.scenes.scene2d.ui.TextField
|
import com.badlogic.gdx.scenes.scene2d.ui.TextField
|
||||||
import com.badlogic.gdx.utils.Json
|
import com.badlogic.gdx.utils.Json
|
||||||
|
import com.unciv.Constants
|
||||||
import com.unciv.UnCivGame
|
import com.unciv.UnCivGame
|
||||||
import com.unciv.logic.GameSaver
|
import com.unciv.logic.GameSaver
|
||||||
|
import com.unciv.logic.map.RoadStatus
|
||||||
import com.unciv.models.gamebasics.tr
|
import com.unciv.models.gamebasics.tr
|
||||||
import com.unciv.ui.saves.Gzip
|
import com.unciv.ui.saves.Gzip
|
||||||
import com.unciv.ui.utils.CameraStageBaseScreen
|
|
||||||
import com.unciv.ui.utils.onClick
|
import com.unciv.ui.utils.onClick
|
||||||
import com.unciv.ui.worldscreen.optionstable.PopupTable
|
import com.unciv.ui.worldscreen.optionstable.PopupTable
|
||||||
|
|
||||||
class MapEditorOptionsTable(mapEditorScreen: MapEditorScreen): PopupTable(mapEditorScreen){
|
class MapEditorOptionsTable(mapEditorScreen: MapEditorScreen): PopupTable(mapEditorScreen){
|
||||||
init{
|
init{
|
||||||
val mapNameEditor = TextField(mapEditorScreen.mapName, CameraStageBaseScreen.skin)
|
val mapNameEditor = TextField(mapEditorScreen.mapName, skin)
|
||||||
mapNameEditor.addListener{ mapEditorScreen.mapName=mapNameEditor.text; true }
|
mapNameEditor.addListener{ mapEditorScreen.mapName=mapNameEditor.text; true }
|
||||||
add(mapNameEditor).row()
|
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 {
|
saveMapButton.onClick {
|
||||||
GameSaver().saveMap(mapEditorScreen.mapName,mapEditorScreen.tileMap)
|
GameSaver().saveMap(mapEditorScreen.mapName,mapEditorScreen.tileMap)
|
||||||
UnCivGame.Current.setWorldScreen()
|
UnCivGame.Current.setWorldScreen()
|
||||||
}
|
}
|
||||||
add(saveMapButton).row()
|
add(saveMapButton).row()
|
||||||
|
|
||||||
val copyMapAsTextButton = TextButton("Copy to clipboard".tr(), CameraStageBaseScreen.skin)
|
val copyMapAsTextButton = TextButton("Copy to clipboard".tr(), skin)
|
||||||
copyMapAsTextButton.onClick {
|
copyMapAsTextButton.onClick {
|
||||||
val json = Json().toJson(mapEditorScreen.tileMap)
|
val json = Json().toJson(mapEditorScreen.tileMap)
|
||||||
val base64Gzip = Gzip.zip(json)
|
val base64Gzip = Gzip.zip(json)
|
||||||
@ -33,15 +52,15 @@ class MapEditorOptionsTable(mapEditorScreen: MapEditorScreen): PopupTable(mapEdi
|
|||||||
}
|
}
|
||||||
add(copyMapAsTextButton).row()
|
add(copyMapAsTextButton).row()
|
||||||
|
|
||||||
val loadMapButton = TextButton("Load".tr(), CameraStageBaseScreen.skin)
|
val loadMapButton = TextButton("Load".tr(), skin)
|
||||||
loadMapButton.onClick { MapScreenLoadTable(mapEditorScreen); remove() }
|
loadMapButton.onClick { MapScreenLoadTable(mapEditorScreen); remove() }
|
||||||
add(loadMapButton).row()
|
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() }
|
exitMapEditorButton.onClick { UnCivGame.Current.setWorldScreen(); mapEditorScreen.dispose() }
|
||||||
add(exitMapEditorButton ).row()
|
add(exitMapEditorButton ).row()
|
||||||
|
|
||||||
val closeOptionsButtton = TextButton("Close".tr(), CameraStageBaseScreen.skin)
|
val closeOptionsButtton = TextButton("Close".tr(), skin)
|
||||||
closeOptionsButtton.onClick { remove() }
|
closeOptionsButtton.onClick { remove() }
|
||||||
add(closeOptionsButtton).row()
|
add(closeOptionsButtton).row()
|
||||||
|
|
||||||
|
@ -32,6 +32,7 @@ class MapEditorScreen(): CameraStageBaseScreen(){
|
|||||||
var tileMap = TileMap(GameParameters())
|
var tileMap = TileMap(GameParameters())
|
||||||
var mapName = "My first map"
|
var mapName = "My first map"
|
||||||
var currentHex=Group()
|
var currentHex=Group()
|
||||||
|
lateinit var mapHolder: TileGroupMap<TileGroup>
|
||||||
|
|
||||||
fun clearSelection(){
|
fun clearSelection(){
|
||||||
clearTerrainFeature=false
|
clearTerrainFeature=false
|
||||||
@ -116,7 +117,7 @@ class MapEditorScreen(): CameraStageBaseScreen(){
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
val mapHolder = TileGroupMap(tileGroups, 300f)
|
mapHolder = TileGroupMap(tileGroups, 300f)
|
||||||
val scrollPane = ScrollPane(mapHolder)
|
val scrollPane = ScrollPane(mapHolder)
|
||||||
scrollPane.setSize(stage.width, stage.height)
|
scrollPane.setSize(stage.width, stage.height)
|
||||||
scrollPane.layout()
|
scrollPane.layout()
|
||||||
|
@ -4,7 +4,7 @@ import com.badlogic.gdx.scenes.scene2d.Group
|
|||||||
import com.unciv.logic.HexMath
|
import com.unciv.logic.HexMath
|
||||||
import com.unciv.ui.tilegroups.TileGroup
|
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{
|
init{
|
||||||
var topX = -Float.MAX_VALUE
|
var topX = -Float.MAX_VALUE
|
||||||
var topY = -Float.MAX_VALUE
|
var topY = -Float.MAX_VALUE
|
||||||
|
Loading…
x
Reference in New Issue
Block a user