Use IReadOnlyFileSystem in artwork loaders.
This commit is contained in:
@@ -36,8 +36,8 @@ namespace OpenRA.Mods.Common.UtilityCommands
|
||||
{
|
||||
var ts = new TileSet(modData, t);
|
||||
Console.WriteLine("Tileset: " + ts.Name);
|
||||
var sc = new SpriteCache(modData.SpriteLoaders, new SheetBuilder(SheetType.Indexed));
|
||||
var nodes = MiniYaml.Merge(modData.Manifest.Sequences.Select(s => MiniYaml.FromStream(modData.ModFiles.Open(s))));
|
||||
var sc = new SpriteCache(modData.DefaultFileSystem, modData.SpriteLoaders, new SheetBuilder(SheetType.Indexed));
|
||||
var nodes = MiniYaml.Merge(modData.Manifest.Sequences.Select(s => MiniYaml.FromStream(modData.DefaultFileSystem.Open(s))));
|
||||
foreach (var n in nodes)
|
||||
modData.SpriteSequenceLoader.ParseSequences(modData, ts, sc, n);
|
||||
}
|
||||
|
||||
@@ -56,17 +56,17 @@ namespace OpenRA.Mods.Common.UtilityCommands
|
||||
var maps = new List<Map>();
|
||||
if (args.Length < 2)
|
||||
{
|
||||
Console.WriteLine("Testing mod: {0}".F(Game.ModData.Manifest.Mod.Title));
|
||||
Console.WriteLine("Testing mod: {0}".F(modData.Manifest.Mod.Title));
|
||||
|
||||
// Run all rule checks on the default mod rules.
|
||||
CheckRules(Game.ModData.DefaultRules);
|
||||
CheckRules(modData, modData.DefaultRules);
|
||||
|
||||
// Run all generic (not mod-level) checks here.
|
||||
foreach (var customPassType in Game.ModData.ObjectCreator.GetTypesImplementing<ILintPass>())
|
||||
foreach (var customPassType in modData.ObjectCreator.GetTypesImplementing<ILintPass>())
|
||||
{
|
||||
try
|
||||
{
|
||||
var customPass = (ILintPass)Game.ModData.ObjectCreator.CreateBasic(customPassType);
|
||||
var customPass = (ILintPass)modData.ObjectCreator.CreateBasic(customPassType);
|
||||
customPass.Run(EmitError, EmitWarning);
|
||||
}
|
||||
catch (Exception e)
|
||||
@@ -75,8 +75,8 @@ namespace OpenRA.Mods.Common.UtilityCommands
|
||||
}
|
||||
}
|
||||
|
||||
Game.ModData.MapCache.LoadMaps();
|
||||
maps.AddRange(Game.ModData.MapCache
|
||||
modData.MapCache.LoadMaps();
|
||||
maps.AddRange(modData.MapCache
|
||||
.Where(m => m.Status == MapStatus.Available)
|
||||
.Select(m => new Map(m.Path)));
|
||||
}
|
||||
@@ -90,14 +90,14 @@ namespace OpenRA.Mods.Common.UtilityCommands
|
||||
|
||||
// Run all rule checks on the map if it defines custom rules.
|
||||
if (testMap.RuleDefinitions.Any() || testMap.VoiceDefinitions.Any() || testMap.WeaponDefinitions.Any())
|
||||
CheckRules(testMap.Rules, testMap);
|
||||
CheckRules(modData, testMap.Rules, testMap);
|
||||
|
||||
// Run all map-level checks here.
|
||||
foreach (var customMapPassType in Game.ModData.ObjectCreator.GetTypesImplementing<ILintMapPass>())
|
||||
foreach (var customMapPassType in modData.ObjectCreator.GetTypesImplementing<ILintMapPass>())
|
||||
{
|
||||
try
|
||||
{
|
||||
var customMapPass = (ILintMapPass)Game.ModData.ObjectCreator.CreateBasic(customMapPassType);
|
||||
var customMapPass = (ILintMapPass)modData.ObjectCreator.CreateBasic(customMapPassType);
|
||||
customMapPass.Run(EmitError, EmitWarning, testMap);
|
||||
}
|
||||
catch (Exception e)
|
||||
@@ -120,14 +120,14 @@ namespace OpenRA.Mods.Common.UtilityCommands
|
||||
}
|
||||
}
|
||||
|
||||
void CheckRules(Ruleset rules, Map map = null)
|
||||
void CheckRules(ModData modData, Ruleset rules, Map map = null)
|
||||
{
|
||||
foreach (var customRulesPassType in Game.ModData.ObjectCreator.GetTypesImplementing<ILintRulesPass>())
|
||||
foreach (var customRulesPassType in modData.ObjectCreator.GetTypesImplementing<ILintRulesPass>())
|
||||
{
|
||||
try
|
||||
{
|
||||
Game.ModData.RulesetCache.Load(map);
|
||||
var customRulesPass = (ILintRulesPass)Game.ModData.ObjectCreator.CreateBasic(customRulesPassType);
|
||||
modData.RulesetCache.Load(modData.DefaultFileSystem, map);
|
||||
var customRulesPass = (ILintRulesPass)modData.ObjectCreator.CreateBasic(customRulesPassType);
|
||||
customRulesPass.Run(EmitError, EmitWarning, rules);
|
||||
}
|
||||
catch (Exception e)
|
||||
|
||||
@@ -46,7 +46,7 @@ namespace OpenRA.Mods.Common.UtilityCommands
|
||||
|
||||
var palette = new ImmutablePalette(args[2], shadowIndex);
|
||||
|
||||
var frames = SpriteLoader.GetFrames(src, modData.SpriteLoaders);
|
||||
var frames = SpriteLoader.GetFrames(modData.DefaultFileSystem, src, modData.SpriteLoaders);
|
||||
|
||||
var usePadding = !args.Contains("--nopadding");
|
||||
var count = 0;
|
||||
|
||||
@@ -29,13 +29,13 @@ namespace OpenRA.Mods.Common.UtilityCommands
|
||||
{
|
||||
// HACK: The engine code assumes that Game.modData is set.
|
||||
Game.ModData = modData;
|
||||
Game.ModData.RulesetCache.Load();
|
||||
modData.RulesetCache.Load(modData.DefaultFileSystem);
|
||||
|
||||
var types = Game.ModData.ObjectCreator.GetTypes();
|
||||
var translatableFields = types.SelectMany(t => t.GetFields())
|
||||
.Where(f => f.HasAttribute<TranslateAttribute>()).Distinct();
|
||||
|
||||
foreach (var filename in Game.ModData.Manifest.ChromeLayout)
|
||||
foreach (var filename in modData.Manifest.ChromeLayout)
|
||||
{
|
||||
Console.WriteLine("# {0}:", filename);
|
||||
var yaml = MiniYaml.FromFile(filename);
|
||||
|
||||
@@ -31,7 +31,7 @@ namespace OpenRA.Mods.Common.UtilityCommands
|
||||
{
|
||||
// HACK: The engine code assumes that Game.modData is set.
|
||||
Game.ModData = modData;
|
||||
modData.ModFiles.LoadFromManifest(Game.ModData.Manifest);
|
||||
modData.ModFiles.LoadFromManifest(modData.Manifest);
|
||||
|
||||
var imageField = typeof(TerrainTemplateInfo).GetField("Image");
|
||||
var pickAnyField = typeof(TerrainTemplateInfo).GetField("PickAny");
|
||||
@@ -43,10 +43,10 @@ namespace OpenRA.Mods.Common.UtilityCommands
|
||||
var single = new int2(1, 1);
|
||||
var exts = new[] { "" }.Concat(args[1].Split(','));
|
||||
|
||||
foreach (var t in Game.ModData.Manifest.TileSets)
|
||||
foreach (var t in modData.Manifest.TileSets)
|
||||
{
|
||||
var ts = new TileSet(Game.ModData, t);
|
||||
var frameCache = new FrameCache(Game.ModData.SpriteLoaders);
|
||||
var ts = new TileSet(modData, t);
|
||||
var frameCache = new FrameCache(modData.DefaultFileSystem, modData.SpriteLoaders);
|
||||
|
||||
Console.WriteLine("Tileset: " + ts.Name);
|
||||
foreach (var template in ts.Templates.Values)
|
||||
|
||||
@@ -45,10 +45,10 @@ namespace OpenRA.Mods.Common.UtilityCommands
|
||||
// HACK: The engine code assumes that Game.modData is set.
|
||||
Game.ModData = modData;
|
||||
|
||||
Rules = Game.ModData.RulesetCache.Load();
|
||||
Rules = modData.RulesetCache.Load(modData.DefaultFileSystem);
|
||||
|
||||
var filename = args[1];
|
||||
using (var stream = Game.ModData.ModFiles.Open(filename))
|
||||
using (var stream = modData.ModFiles.Open(filename))
|
||||
{
|
||||
var file = new IniFile(stream);
|
||||
var basic = file.GetSection("Basic");
|
||||
@@ -66,7 +66,7 @@ namespace OpenRA.Mods.Common.UtilityCommands
|
||||
|
||||
Map.Description = ExtractBriefing(file);
|
||||
|
||||
Map.RequiresMod = Game.ModData.Manifest.Mod.Id;
|
||||
Map.RequiresMod = modData.Manifest.Mod.Id;
|
||||
|
||||
SetBounds(Map, mapSection);
|
||||
|
||||
|
||||
@@ -38,17 +38,17 @@ namespace OpenRA.Mods.Common.UtilityCommands
|
||||
remap[i] = i;
|
||||
|
||||
var srcMod = args[1].Split(':')[0];
|
||||
var srcModData = new ModData(srcMod);
|
||||
Game.ModData = srcModData;
|
||||
|
||||
Game.ModData = new ModData(srcMod);
|
||||
Game.ModData.ModFiles.LoadFromManifest(Game.ModData.Manifest);
|
||||
var srcRules = Game.ModData.RulesetCache.Load();
|
||||
var srcRules = srcModData.RulesetCache.Load(srcModData.DefaultFileSystem);
|
||||
var srcPaletteInfo = srcRules.Actors["player"].TraitInfo<PlayerColorPaletteInfo>();
|
||||
var srcRemapIndex = srcPaletteInfo.RemapIndex;
|
||||
|
||||
var destMod = args[2].Split(':')[0];
|
||||
Game.ModData = new ModData(destMod);
|
||||
Game.ModData.ModFiles.LoadFromManifest(Game.ModData.Manifest);
|
||||
var destRules = Game.ModData.RulesetCache.Load();
|
||||
var destModData = new ModData(destMod);
|
||||
Game.ModData = destModData;
|
||||
var destRules = destModData.RulesetCache.Load(destModData.DefaultFileSystem);
|
||||
var destPaletteInfo = destRules.Actors["player"].TraitInfo<PlayerColorPaletteInfo>();
|
||||
var destRemapIndex = destPaletteInfo.RemapIndex;
|
||||
var shadowIndex = new int[] { };
|
||||
|
||||
Reference in New Issue
Block a user