Map editor fix translations, a few keys (#4055)

This commit is contained in:
SomeTroglodyte 2021-06-06 08:18:22 +02:00 committed by GitHub
parent d7b2436bcf
commit 52b7999c48
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 49 additions and 36 deletions

View File

@ -818,8 +818,12 @@ Requires = Benötigt
Menu = Menü Menu = Menü
Brush Size = Pinselgröße Brush Size = Pinselgröße
Map saved = Karte gespeichert Map saved = Karte gespeichert
Change ruleset = Ändere Regelsatz Change ruleset = Regelsatz ändern
Change map to fit selected ruleset? = Karte ändern, um ausgewählten Regelsatz anzupassen? Base terrain [terrain] does not exist in ruleset! = Gelände [terrain] fehlt im Regelsatz!
Terrain feature [feature] does not exist in ruleset! = Geländemerkmal [feature] fehlt im Regelsatz!
Resource [resource] does not exist in ruleset! = Ressource [resource] fehlt im Regelsatz!
Improvement [improvement] does not exist in ruleset! = Verbesserung [improvement] fehlt im Regelsatz!
Change map to fit selected ruleset? = Karte ändern, um sie dem neuen Regelsatz anzupassen?
# Civilopedia difficulty levels # Civilopedia difficulty levels
Player settings = Spieler Einstellungen Player settings = Spieler Einstellungen

View File

@ -813,6 +813,10 @@ Menu =
Brush Size = Brush Size =
Map saved = Map saved =
Change ruleset = Change ruleset =
Base terrain [terrain] does not exist in ruleset! =
Terrain feature [feature] does not exist in ruleset! =
Resource [resource] does not exist in ruleset! =
Improvement [improvement] does not exist in ruleset! =
Change map to fit selected ruleset? = Change map to fit selected ruleset? =
# Civilopedia difficulty levels # Civilopedia difficulty levels

View File

@ -563,12 +563,15 @@ open class TileInfo {
fun getRulesetIncompatibility(ruleset: Ruleset): HashSet<String> { fun getRulesetIncompatibility(ruleset: Ruleset): HashSet<String> {
val out = HashSet<String>() val out = HashSet<String>()
if (!ruleset.terrains.containsKey(baseTerrain)) out.add("Base terrain $baseTerrain does not exist in ruleset!") if (!ruleset.terrains.containsKey(baseTerrain))
out.add("Base terrain [$baseTerrain] does not exist in ruleset!")
for (terrainFeature in terrainFeatures.filter { !ruleset.terrains.containsKey(it) }) for (terrainFeature in terrainFeatures.filter { !ruleset.terrains.containsKey(it) })
out.add("Terrain feature $terrainFeature does not exist in ruleset!") out.add("Terrain feature [$terrainFeature] does not exist in ruleset!")
if (resource != null && !ruleset.tileResources.containsKey(resource)) out.add("Resource $resource does not exist in ruleset!") if (resource != null && !ruleset.tileResources.containsKey(resource))
out.add("Resource [$resource] does not exist in ruleset!")
if (improvement != null && !improvement!!.startsWith("StartingLocation") if (improvement != null && !improvement!!.startsWith("StartingLocation")
&& !ruleset.tileImprovements.containsKey(improvement)) out.add("Improvement $improvement does not exist in ruleset!") && !ruleset.tileImprovements.containsKey(improvement))
out.add("Improvement [$improvement] does not exist in ruleset!")
return out return out
} }

View File

@ -2,7 +2,6 @@ package com.unciv.ui.mapeditor
import com.badlogic.gdx.scenes.scene2d.ui.ScrollPane import com.badlogic.gdx.scenes.scene2d.ui.ScrollPane
import com.badlogic.gdx.scenes.scene2d.ui.Table import com.badlogic.gdx.scenes.scene2d.ui.Table
import com.unciv.Constants
import com.unciv.MainMenuScreen import com.unciv.MainMenuScreen
import com.unciv.UncivGame import com.unciv.UncivGame
import com.unciv.models.ruleset.RulesetCache import com.unciv.models.ruleset.RulesetCache
@ -12,12 +11,12 @@ import com.unciv.ui.utils.*
class MapEditorMenuPopup(var mapEditorScreen: MapEditorScreen): Popup(mapEditorScreen) { class MapEditorMenuPopup(var mapEditorScreen: MapEditorScreen): Popup(mapEditorScreen) {
init { init {
addButton("New map") { UncivGame.Current.setScreen(NewMapScreen(mapEditorScreen.tileMap.mapParameters)) } addButton("New map", 'n') { UncivGame.Current.setScreen(NewMapScreen(mapEditorScreen.tileMap.mapParameters)) }
addButton("Save map") { mapEditorScreen.game.setScreen(SaveAndLoadMapScreen(mapEditorScreen.tileMap, true, mapEditorScreen)); this.close() } addButton("Save map", 's') { mapEditorScreen.game.setScreen(SaveAndLoadMapScreen(mapEditorScreen.tileMap, true, mapEditorScreen)); this.close() }
addButton("Load map") { mapEditorScreen.game.setScreen(SaveAndLoadMapScreen(mapEditorScreen.tileMap, false, mapEditorScreen)); this.close() } addButton("Load map", 'l') { mapEditorScreen.game.setScreen(SaveAndLoadMapScreen(mapEditorScreen.tileMap, false, mapEditorScreen)); this.close() }
addButton("Exit map editor") { mapEditorScreen.game.setScreen(MainMenuScreen()); mapEditorScreen.dispose() } addButton("Exit map editor", 'x') { mapEditorScreen.game.setScreen(MainMenuScreen()); mapEditorScreen.dispose() }
addButton("Change ruleset") { MapEditorRulesetPopup(mapEditorScreen).open(); close() } addButton("Change ruleset", 'c') { MapEditorRulesetPopup(mapEditorScreen).open(); close() }
addButton(Constants.close) { close() } addCloseButton()
} }
class MapEditorRulesetPopup(mapEditorScreen: MapEditorScreen) : Popup(mapEditorScreen) { class MapEditorRulesetPopup(mapEditorScreen: MapEditorScreen) : Popup(mapEditorScreen) {
@ -36,9 +35,9 @@ class MapEditorMenuPopup(var mapEditorScreen: MapEditorScreen): Popup(mapEditorS
ImageGetter.setNewRuleset(ruleset) ImageGetter.setNewRuleset(ruleset)
} }
add(ScrollPane(checkboxTable)).maxHeight(mapEditorScreen.stage.height * 0.8f).row() add(ScrollPane(checkboxTable)).maxHeight(mapEditorScreen.stage.height * 0.8f).colspan(2).row()
addButton("Save") { addButtonInRow("Save", '\r') {
val incompatibilities = HashSet<String>() val incompatibilities = HashSet<String>()
for (set in mapEditorScreen.tileMap.values.map { it.getRulesetIncompatibility(ruleset) }) for (set in mapEditorScreen.tileMap.values.map { it.getRulesetIncompatibility(ruleset) })
incompatibilities.addAll(set) incompatibilities.addAll(set)
@ -47,24 +46,24 @@ class MapEditorMenuPopup(var mapEditorScreen: MapEditorScreen): Popup(mapEditorS
if (incompatibilities.isEmpty()) { if (incompatibilities.isEmpty()) {
mapEditorScreen.tileMap.mapParameters.mods = mods mapEditorScreen.tileMap.mapParameters.mods = mods
mapEditorScreen.game.setScreen(MapEditorScreen(mapEditorScreen.tileMap)) // reset all images etc. mapEditorScreen.game.setScreen(MapEditorScreen(mapEditorScreen.tileMap)) // reset all images etc.
return@addButton return@addButtonInRow
} }
val incompatTable = Table() val incompatibilityTable = Table()
for (inc in incompatibilities) for (inc in incompatibilities)
incompatTable.add(inc.toLabel()).row() incompatibilityTable.add(inc.toLabel()).row()
val incompatPopup = Popup(screen) Popup(screen).apply {
incompatPopup.add(ScrollPane(incompatTable)).maxHeight(stage.height * 0.8f).row() add(ScrollPane(incompatibilityTable)).colspan(2)
incompatPopup.add("Change map to fit selected ruleset?").row() .maxHeight(screen.stage.height * 0.8f).row()
incompatPopup.addButton("Yes") { add("Change map to fit selected ruleset?".toLabel()).colspan(2).row()
for (tile in mapEditorScreen.tileMap.values) addButtonInRow("Yes", 'y') {
tile.normalizeToRuleset(ruleset) for (tile in mapEditorScreen.tileMap.values)
mapEditorScreen.tileMap.mapParameters.mods = mods tile.normalizeToRuleset(ruleset)
mapEditorScreen.game.setScreen(MapEditorScreen(mapEditorScreen.tileMap)) mapEditorScreen.tileMap.mapParameters.mods = mods
} mapEditorScreen.game.setScreen(MapEditorScreen(mapEditorScreen.tileMap))
incompatPopup.addButton("No") { incompatPopup.close() } }
incompatPopup.open(true) addButtonInRow("No", 'n') { close() }
}.open(true)
} }
// Reset - no changes // Reset - no changes

View File

@ -1,10 +1,12 @@
package com.unciv.ui.mapeditor package com.unciv.ui.mapeditor
import com.badlogic.gdx.Input
import com.badlogic.gdx.graphics.Color import com.badlogic.gdx.graphics.Color
import com.badlogic.gdx.math.Vector2 import com.badlogic.gdx.math.Vector2
import com.badlogic.gdx.scenes.scene2d.InputEvent import com.badlogic.gdx.scenes.scene2d.InputEvent
import com.badlogic.gdx.scenes.scene2d.InputListener import com.badlogic.gdx.scenes.scene2d.InputListener
import com.badlogic.gdx.scenes.scene2d.actions.Actions import com.badlogic.gdx.scenes.scene2d.actions.Actions
import com.unciv.UncivGame
import com.unciv.logic.map.TileInfo import com.unciv.logic.map.TileInfo
import com.unciv.logic.map.TileMap import com.unciv.logic.map.TileMap
import com.unciv.models.ruleset.Ruleset import com.unciv.models.ruleset.Ruleset
@ -34,6 +36,7 @@ class MapEditorScreen(): CameraStageBaseScreen() {
private fun initialize() { private fun initialize() {
ImageGetter.setNewRuleset(ruleset) ImageGetter.setNewRuleset(ruleset)
tileMap.setTransients(ruleset,false) tileMap.setTransients(ruleset,false)
UncivGame.Current.translations.translationActiveMods = ruleset.mods
mapHolder = EditorMapHolder(this, tileMap) mapHolder = EditorMapHolder(this, tileMap)
mapHolder.addTiles(stage.width, stage.height) mapHolder.addTiles(stage.width, stage.height)
@ -59,13 +62,13 @@ class MapEditorScreen(): CameraStageBaseScreen() {
stage.height - showHideEditorOptionsButton.height - 10f) stage.height - showHideEditorOptionsButton.height - 10f)
stage.addActor(showHideEditorOptionsButton) stage.addActor(showHideEditorOptionsButton)
val openOptionsMenu = {
val optionsMenuButton = "Menu".toTextButton() if (popups.none { it is MapEditorMenuPopup })
optionsMenuButton.onClick { MapEditorMenuPopup(this).open(force = true)
if (popups.any { it is MapEditorMenuPopup })
return@onClick // already open
MapEditorMenuPopup(this).open(force = true)
} }
val optionsMenuButton = "Menu".toTextButton()
optionsMenuButton.onClick(openOptionsMenu)
keyPressDispatcher[Input.Keys.BACK] = openOptionsMenu
optionsMenuButton.label.setFontSize(24) optionsMenuButton.label.setFontSize(24)
optionsMenuButton.labelCell.pad(20f) optionsMenuButton.labelCell.pad(20f)
optionsMenuButton.pack() optionsMenuButton.pack()