From b60b1e369a279b237cc8b4de6de6682f6577a58b Mon Sep 17 00:00:00 2001 From: Paul Chote Date: Sat, 28 Sep 2024 17:35:26 +0100 Subject: [PATCH] Extract ObjectCreator.GetLoader for single objects. --- OpenRA.Game/ObjectCreator.cs | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/OpenRA.Game/ObjectCreator.cs b/OpenRA.Game/ObjectCreator.cs index e972332b7e..5170ff26ca 100644 --- a/OpenRA.Game/ObjectCreator.cs +++ b/OpenRA.Game/ObjectCreator.cs @@ -165,17 +165,20 @@ namespace OpenRA .SelectMany(ma => ma.GetTypes()); } + public TLoader GetLoader(string format, string name) + { + var loader = FindType(format + "Loader"); + if (loader == null || !loader.GetInterfaces().Contains(typeof(TLoader))) + throw new InvalidOperationException($"Unable to find a {name} loader for type '{format}'."); + + return (TLoader)CreateBasic(loader); + } + public TLoader[] GetLoaders(IEnumerable formats, string name) { var loaders = new List(); foreach (var format in formats) - { - var loader = FindType(format + "Loader"); - if (loader == null || !loader.GetInterfaces().Contains(typeof(TLoader))) - throw new InvalidOperationException($"Unable to find a {name} loader for type '{format}'."); - - loaders.Add((TLoader)CreateBasic(loader)); - } + loaders.Add(GetLoader(format, name)); return loaders.ToArray(); }