From cc9fa4b3ef0b808d1c1bb403fc917f56cb3eead8 Mon Sep 17 00:00:00 2001 From: Gustas <37534529+PunkPun@users.noreply.github.com> Date: Fri, 25 Apr 2025 20:07:28 +0300 Subject: [PATCH] Stream previews, reduce casting --- .../Traits/World/EditorActorPreview.cs | 23 +++++++++++-------- 1 file changed, 13 insertions(+), 10 deletions(-) diff --git a/OpenRA.Mods.Common/Traits/World/EditorActorPreview.cs b/OpenRA.Mods.Common/Traits/World/EditorActorPreview.cs index 44c1d6a8c4..07a5cf2f56 100644 --- a/OpenRA.Mods.Common/Traits/World/EditorActorPreview.cs +++ b/OpenRA.Mods.Common/Traits/World/EditorActorPreview.cs @@ -147,20 +147,23 @@ namespace OpenRA.Mods.Common.Traits public IEnumerable RenderAt(WPos centerPosition) { - var items = previews.SelectMany(p => p.Render(worldRenderer, centerPosition)); if (Selected) { - var overlay = items.Where(r => !r.IsDecoration && r is IModifyableRenderable) - .Select(r => + foreach (var p in previews) + { + foreach (var r in p.Render(worldRenderer, centerPosition)) { - var mr = (IModifyableRenderable)r; - return mr.WithTint(float3.Ones, mr.TintModifiers | TintModifiers.ReplaceColor).WithAlpha(0.5f); - }); - - return items.Concat(overlay); + yield return r; + if (!r.IsDecoration && r is IModifyableRenderable mr) + 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 RenderAnnotations()