From ac381a6f58aebb63f02229a599a2d14ef45d63d7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Matthias=20Mail=C3=A4nder?= Date: Sun, 5 Apr 2020 12:43:05 +0200 Subject: [PATCH] Allow multiple ResourceRenderer traits. --- OpenRA.Mods.Common/Widgets/ViewportControllerWidget.cs | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/OpenRA.Mods.Common/Widgets/ViewportControllerWidget.cs b/OpenRA.Mods.Common/Widgets/ViewportControllerWidget.cs index b80b1ee89d..ef7a4f468b 100644 --- a/OpenRA.Mods.Common/Widgets/ViewportControllerWidget.cs +++ b/OpenRA.Mods.Common/Widgets/ViewportControllerWidget.cs @@ -25,7 +25,7 @@ namespace OpenRA.Mods.Common.Widgets public class ViewportControllerWidget : Widget { readonly ModData modData; - readonly ResourceRenderer resourceRenderer; + readonly IEnumerable resourceRenderers; public readonly HotkeyReference ZoomInKey = new HotkeyReference(); public readonly HotkeyReference ZoomOutKey = new HotkeyReference(); @@ -144,7 +144,7 @@ namespace OpenRA.Mods.Common.Widgets tooltipContainer = Exts.Lazy(() => Ui.Root.Get(TooltipContainer)); - resourceRenderer = world.WorldActor.TraitOrDefault(); + resourceRenderers = world.WorldActor.TraitsImplementing().ToArray(); } public override void Initialize(WidgetArgs args) @@ -266,13 +266,14 @@ namespace OpenRA.Mods.Common.Widgets return; } - if (resourceRenderer != null) + foreach (var resourceRenderer in resourceRenderers) { var resource = resourceRenderer.GetRenderedResourceType(cell); if (resource != null) { TooltipType = WorldTooltipType.Resource; ResourceTooltip = resource; + break; } } }