Replace Tileset id with Environment name.

This commit is contained in:
Paul Chote
2025-04-27 14:51:51 +01:00
committed by Gustas Kažukauskas
parent 90013bc6d3
commit 5b7a714ac2
5 changed files with 15 additions and 12 deletions

View File

@@ -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);

View File

@@ -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); }

View File

@@ -29,21 +29,23 @@ namespace OpenRA.Mods.Common.Widgets.Logic
panel.Get<ButtonWidget>("CANCEL_BUTTON").OnClick = () => { Ui.CloseWindow(); onExit(); };
var selectedTerrain = modData.DefaultTerrainInfo.Values.First();
var tilesetDropDown = panel.Get<DropDownButtonWidget>("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<LabelWidget>("LABEL").GetText = () => option;
() => selectedTerrain == option,
() => selectedTerrain = option);
var itemLabel = FluentProvider.GetMessage(option.Name);
item.Get<LabelWidget>("LABEL").GetText = () => itemLabel;
return item;
}
var firstTileset = tilesets.First();
tilesetDropDown.GetText = () => firstTileset;
var label = new CachedTransform<ITerrainInfo, string>(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<TextFieldWidget>("WIDTH");
var heightTextField = panel.Get<TextFieldWidget>("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);

View File

@@ -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

View File

@@ -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