Avoid modData.MapCache during lint checks

This commit is contained in:
Matthias Mailänder
2017-08-30 15:42:24 +02:00
committed by abcdefg30
parent 2102fad2b5
commit d7323e07cc

View File

@@ -77,10 +77,29 @@ namespace OpenRA.Mods.Common.UtilityCommands
} }
} }
modData.MapCache.LoadMaps(); foreach (var kv in modData.Manifest.MapFolders)
maps.AddRange(modData.MapCache {
.Where(m => m.Status == MapStatus.Available) var name = kv.Key;
.Select(m => new Map(modData, m.Package))); var classification = string.IsNullOrEmpty(kv.Value)
? MapClassification.Unknown : Enum<MapClassification>.Parse(kv.Value);
if (classification == MapClassification.Unknown)
continue;
var optional = name.StartsWith("~", StringComparison.Ordinal);
if (optional)
name = name.Substring(1);
using (var package = (IReadWritePackage)modData.ModFiles.OpenPackage(name))
{
foreach (var map in package.Contents)
{
var mapPackage = package.OpenPackage(map, modData.ModFiles);
if (mapPackage != null)
maps.Add(new Map(modData, mapPackage));
}
}
}
} }
else else
maps.Add(new Map(modData, new Folder(".").OpenPackage(args[1], modData.ModFiles))); maps.Add(new Map(modData, new Folder(".").OpenPackage(args[1], modData.ModFiles)));