Stream previews, reduce casting

This commit is contained in:
Gustas
2025-04-25 20:07:28 +03:00
committed by Matthias Mailänder
parent bb0a39ba6c
commit cc9fa4b3ef

View File

@@ -147,20 +147,23 @@ namespace OpenRA.Mods.Common.Traits
public IEnumerable<IRenderable> RenderAt(WPos centerPosition) public IEnumerable<IRenderable> RenderAt(WPos centerPosition)
{ {
var items = previews.SelectMany(p => p.Render(worldRenderer, centerPosition));
if (Selected) if (Selected)
{ {
var overlay = items.Where(r => !r.IsDecoration && r is IModifyableRenderable) foreach (var p in previews)
.Select(r =>
{ {
var mr = (IModifyableRenderable)r; foreach (var r in p.Render(worldRenderer, centerPosition))
return mr.WithTint(float3.Ones, mr.TintModifiers | TintModifiers.ReplaceColor).WithAlpha(0.5f); {
}); yield return r;
if (!r.IsDecoration && r is IModifyableRenderable mr)
return items.Concat(overlay); yield return mr.WithTint(float3.Ones, mr.TintModifiers | TintModifiers.ReplaceColor)
.WithAlpha(0.5f);
} }
}
return items; }
else
foreach (var p in previews)
foreach (var r in p.Render(worldRenderer, centerPosition))
yield return r;
} }
public IEnumerable<IRenderable> RenderAnnotations() public IEnumerable<IRenderable> RenderAnnotations()