diff --git a/OpenRA.Game/Map/TerrainInfo.cs b/OpenRA.Game/Map/TerrainInfo.cs index a72f61f38c..169bf2d37d 100644 --- a/OpenRA.Game/Map/TerrainInfo.cs +++ b/OpenRA.Game/Map/TerrainInfo.cs @@ -25,6 +25,7 @@ namespace OpenRA public interface ITerrainInfo { string Id { get; } + string Name { get; } Size TileSize { get; } TerrainTypeInfo[] TerrainTypes { get; } TerrainTileInfo GetTerrainInfo(TerrainTile r); diff --git a/OpenRA.Mods.Common/Terrain/DefaultTerrain.cs b/OpenRA.Mods.Common/Terrain/DefaultTerrain.cs index 1771af0819..bb0caf3522 100644 --- a/OpenRA.Mods.Common/Terrain/DefaultTerrain.cs +++ b/OpenRA.Mods.Common/Terrain/DefaultTerrain.cs @@ -171,6 +171,7 @@ namespace OpenRA.Mods.Common.Terrain } string ITerrainInfo.Id => Id; + string ITerrainInfo.Name => Name; Size ITerrainInfo.TileSize => TileSize; TerrainTypeInfo[] ITerrainInfo.TerrainTypes => TerrainInfo; TerrainTileInfo ITerrainInfo.GetTerrainInfo(TerrainTile r) { return GetTileInfo(r); } diff --git a/OpenRA.Mods.Common/Widgets/Logic/Editor/NewMapLogic.cs b/OpenRA.Mods.Common/Widgets/Logic/Editor/NewMapLogic.cs index e89600d82b..101f0e5fde 100644 --- a/OpenRA.Mods.Common/Widgets/Logic/Editor/NewMapLogic.cs +++ b/OpenRA.Mods.Common/Widgets/Logic/Editor/NewMapLogic.cs @@ -29,21 +29,23 @@ namespace OpenRA.Mods.Common.Widgets.Logic panel.Get("CANCEL_BUTTON").OnClick = () => { Ui.CloseWindow(); onExit(); }; + var selectedTerrain = modData.DefaultTerrainInfo.Values.First(); var tilesetDropDown = panel.Get("TILESET"); - var tilesets = modData.DefaultTerrainInfo.Keys; - ScrollItemWidget SetupItem(string option, ScrollItemWidget template) + ScrollItemWidget SetupItem(ITerrainInfo option, ScrollItemWidget template) { var item = ScrollItemWidget.Setup(template, - () => tilesetDropDown.GetText() == option, - () => tilesetDropDown.GetText = () => option); - item.Get("LABEL").GetText = () => option; + () => selectedTerrain == option, + () => selectedTerrain = option); + + var itemLabel = FluentProvider.GetMessage(option.Name); + item.Get("LABEL").GetText = () => itemLabel; return item; } - var firstTileset = tilesets.First(); - tilesetDropDown.GetText = () => firstTileset; + var label = new CachedTransform(ti => FluentProvider.GetMessage(ti.Name)); + tilesetDropDown.GetText = () => label.Update(selectedTerrain); tilesetDropDown.OnClick = () => - tilesetDropDown.ShowDropDown("LABEL_DROPDOWN_TEMPLATE", 210, tilesets, SetupItem); + tilesetDropDown.ShowDropDown("LABEL_DROPDOWN_TEMPLATE", 210, modData.DefaultTerrainInfo.Values, SetupItem); var widthTextField = panel.Get("WIDTH"); var heightTextField = panel.Get("HEIGHT"); @@ -59,8 +61,7 @@ namespace OpenRA.Mods.Common.Widgets.Logic height = Math.Max(2, height); var maxTerrainHeight = world.Map.Grid.MaximumTerrainHeight; - var tileset = modData.DefaultTerrainInfo[tilesetDropDown.GetText()]; - var map = new Map(Game.ModData, tileset, new Size(width + 2, height + maxTerrainHeight + 2)); + var map = new Map(Game.ModData, selectedTerrain, new Size(width + 2, height + maxTerrainHeight + 2)); var tl = new PPos(1, 1 + maxTerrainHeight); var br = new PPos(width, height + maxTerrainHeight); diff --git a/mods/cnc/fluent/chrome.ftl b/mods/cnc/fluent/chrome.ftl index 35e75d197b..cc8217d081 100644 --- a/mods/cnc/fluent/chrome.ftl +++ b/mods/cnc/fluent/chrome.ftl @@ -42,7 +42,7 @@ button-text-input-prompt-accept = OK ## editor.yaml label-new-map-bg-title = New Map -label-bg-tileset = Tileset: +label-bg-tileset = Environment: label-bg-width = Width: label-bg-height = Height: button-new-map-bg-create = Create diff --git a/mods/common/fluent/chrome.ftl b/mods/common/fluent/chrome.ftl index ebcd7ec6ce..1a3a804e3d 100644 --- a/mods/common/fluent/chrome.ftl +++ b/mods/common/fluent/chrome.ftl @@ -38,7 +38,7 @@ label-credits-title = Credits ## editor.yaml label-new-map-bg-title = New Map -label-new-map-bg-tileset = Tileset: +label-new-map-bg-tileset = Environment: label-new-map-bg-width = Width: label-new-map-bg-height = Height: button-new-map-bg-create = Create