From 205296aab71e710e4fc039412e7b337e7d63880f Mon Sep 17 00:00:00 2001 From: Yair Morgenstern Date: Sun, 26 Nov 2023 18:40:13 +0200 Subject: [PATCH] Nicer command display --- .../screens/devconsole/DevConsoleCommand.kt | 27 +++++++++++++++++-- 1 file changed, 25 insertions(+), 2 deletions(-) diff --git a/core/src/com/unciv/ui/screens/devconsole/DevConsoleCommand.kt b/core/src/com/unciv/ui/screens/devconsole/DevConsoleCommand.kt index 376f5f0194..88c0db94ae 100644 --- a/core/src/com/unciv/ui/screens/devconsole/DevConsoleCommand.kt +++ b/core/src/com/unciv/ui/screens/devconsole/DevConsoleCommand.kt @@ -1,6 +1,7 @@ package com.unciv.ui.screens.devconsole import com.unciv.logic.civilization.Civilization +import com.unciv.models.ruleset.tile.TerrainType fun String.toCliInput() = this.lowercase().replace(" ","-") @@ -20,7 +21,7 @@ interface ConsoleCommandNode:ConsoleCommand{ override fun handle(console: DevConsolePopup, params: List): String? { if (params.isEmpty()) return "Available commands: " + subcommands.keys.joinToString() - val handler = subcommands[params[0]] ?: return "Invalid command. Available commands: " + subcommands.keys.joinToString() + val handler = subcommands[params[0]] ?: return "Invalid command.\nAvailable commands: " + subcommands.keys.joinToString("") { "\n- $it" } return handler.handle(console, params.drop(1)) } @@ -60,7 +61,7 @@ class ConsoleUnitCommands:ConsoleCommandNode { ?: return@ConsoleAction "No tile selected" val civ = console.getCivByName(params[0]) ?: return@ConsoleAction "Unknown civ" - val baseUnit = console.gameInfo.ruleset.units.values.firstOrNull { it.name.toCliInput() == params[3] } + val baseUnit = console.gameInfo.ruleset.units.values.firstOrNull { it.name.toCliInput() == params[1] } ?: return@ConsoleAction "Unknown unit" civ.units.placeUnitNearTile(selectedTile.position, baseUnit) return@ConsoleAction null @@ -174,6 +175,28 @@ class ConsoleTileCommands: ConsoleCommandNode { ?: return@ConsoleAction "No tile selected" selectedTile.improvementFunctions.changeImprovement(null) return@ConsoleAction null + }, + + "addfeature" to ConsoleAction { console, params -> + val selectedTile = console.screen.mapHolder.selectedTile + ?: return@ConsoleAction "No tile selected" + if (params.size != 1) return@ConsoleAction "Format: tile addfeature " + val feature = console.gameInfo.ruleset.terrains.values + .firstOrNull { it.type == TerrainType.TerrainFeature && it.name.toCliInput() == params[0] } + ?: return@ConsoleAction "Unknown feature" + selectedTile.addTerrainFeature(feature.name) + return@ConsoleAction null + }, + + "removefeature" to ConsoleAction { console, params -> + val selectedTile = console.screen.mapHolder.selectedTile + ?: return@ConsoleAction "No tile selected" + if (params.size != 1) return@ConsoleAction "Format: tile addfeature " + val feature = console.gameInfo.ruleset.terrains.values + .firstOrNull { it.type == TerrainType.TerrainFeature && it.name.toCliInput() == params[0] } + ?: return@ConsoleAction "Unknown feature" + selectedTile.removeTerrainFeature(feature.name) + return@ConsoleAction null } ) }