From d8d2b89e738869be454a1b9dd818432f2a518234 Mon Sep 17 00:00:00 2001 From: Yair Morgenstern Date: Sun, 3 Feb 2019 19:42:31 +0200 Subject: [PATCH] Enabled loading maps from the map editor --- core/src/com/unciv/ui/MapEditorScreen.kt | 34 +++++++++++++++++++++++- core/src/com/unciv/ui/NewGameScreen.kt | 3 +-- 2 files changed, 34 insertions(+), 3 deletions(-) diff --git a/core/src/com/unciv/ui/MapEditorScreen.kt b/core/src/com/unciv/ui/MapEditorScreen.kt index e3fbc0a42d..ec5a4a8785 100644 --- a/core/src/com/unciv/ui/MapEditorScreen.kt +++ b/core/src/com/unciv/ui/MapEditorScreen.kt @@ -3,6 +3,7 @@ package com.unciv.ui import com.badlogic.gdx.graphics.Color import com.badlogic.gdx.scenes.scene2d.Actor import com.badlogic.gdx.scenes.scene2d.ui.* +import com.badlogic.gdx.utils.Array import com.unciv.GameParameters import com.unciv.UnCivGame import com.unciv.logic.GameSaver @@ -20,7 +21,7 @@ import com.unciv.ui.utils.onClick import com.unciv.ui.worldscreen.TileGroupMap import com.unciv.ui.worldscreen.optionstable.PopupTable -class MapEditorScreen: CameraStageBaseScreen(){ +class MapEditorScreen(var mapToLoad:String?=null): CameraStageBaseScreen(){ var clearTerrainFeature=false var selectedTerrain : Terrain?=null var clearResource=false @@ -49,6 +50,11 @@ class MapEditorScreen: CameraStageBaseScreen(){ } init{ + if(mapToLoad!=null){ + mapName=mapToLoad!! + tileMap=GameSaver().loadMap(mapName) + tileMap.setTransients() + } val scrollPane = getMapHolder(tileMap) stage.addActor(scrollPane) @@ -155,6 +161,32 @@ class mapScreenOptionsTable(mapEditorScreen: MapEditorScreen):PopupTable(mapEdit } add(saveMapButton).row() + val loadMapButton = TextButton("Load".tr(),CameraStageBaseScreen.skin) + loadMapButton.onClick { MapScreenLoadTable(mapEditorScreen); remove() } + add(loadMapButton).row() + + val closeOptionsButtton = TextButton("Close".tr(), CameraStageBaseScreen.skin) + closeOptionsButtton.onClick { remove() } + add(closeOptionsButtton).row() + + open() + } +} + +class MapScreenLoadTable(mapEditorScreen: MapEditorScreen):PopupTable(mapEditorScreen){ + init{ + val mapFileSelectBox = SelectBox(CameraStageBaseScreen.skin) + val mapNames = Array() + for (mapName in GameSaver().getMaps()) mapNames.add(mapName) + mapFileSelectBox.items = mapNames + add(mapFileSelectBox).row() + + val loadMapButton = TextButton("Load".tr(),CameraStageBaseScreen.skin) + loadMapButton.onClick { + UnCivGame.Current.screen = MapEditorScreen(mapFileSelectBox.selected) + } + add(loadMapButton).row() + val closeOptionsButtton = TextButton("Close".tr(), CameraStageBaseScreen.skin) closeOptionsButtton.onClick { remove() } add(closeOptionsButtton).row() diff --git a/core/src/com/unciv/ui/NewGameScreen.kt b/core/src/com/unciv/ui/NewGameScreen.kt index d7f9b171d3..79d55b81c0 100644 --- a/core/src/com/unciv/ui/NewGameScreen.kt +++ b/core/src/com/unciv/ui/NewGameScreen.kt @@ -234,5 +234,4 @@ class TranslatedSelectBox(values : Collection, default:String, skin: Ski val defaultItem = array.firstOrNull { it.value==default } selected = if(defaultItem!=null) defaultItem else array.first() } -} - +} \ No newline at end of file