Fix templete palette overwrites not working

This commit is contained in:
Gustas
2025-12-02 13:10:39 +02:00
committed by Paul Chote
parent 2b2e2d6fe3
commit e53f2b6044

View File

@@ -210,11 +210,12 @@ namespace OpenRA.Mods.Common.Traits
IEnumerable<IRenderable> ITiledTerrainRenderer.RenderPreview(WorldRenderer wr, TerrainTile tile, WPos origin) IEnumerable<IRenderable> ITiledTerrainRenderer.RenderPreview(WorldRenderer wr, TerrainTile tile, WPos origin)
{ {
if (!terrainInfo.TryGetTileInfo(tile, out var tileInfo)) if (!terrainInfo.Templates.TryGetValue(tile.Type, out var template) || !template.Contains(tile.Index))
yield break; yield break;
var sprite = tileCache.TileSprite(tile, 0); var sprite = tileCache.TileSprite(tile, 0);
var offset = map.Offset(new CVec(0, 0), tileInfo.Height); var offset = map.Offset(new CVec(0, 0), template[tile.Index].Height);
var palette = wr.Palette(terrainInfo.Palette); var palette = wr.Palette(((DefaultTerrainTemplateInfo)template)?.Palette ?? terrainInfo.Palette);
yield return new SpriteRenderable(sprite, origin, offset, 0, palette, 1f, 1f, float3.Ones, TintModifiers.None, false); yield return new SpriteRenderable(sprite, origin, offset, 0, palette, 1f, 1f, float3.Ones, TintModifiers.None, false);
} }