Remove RulesetCache and push rule parsing to background thread.

This commit is contained in:
Paul Chote
2016-03-11 18:31:43 +00:00
parent a3b1baa654
commit 82a9d69a51
10 changed files with 139 additions and 182 deletions

View File

@@ -127,7 +127,6 @@ namespace OpenRA.Mods.Common.UtilityCommands
{
try
{
modData.RulesetCache.Load(map ?? modData.DefaultFileSystem, map);
var customRulesPass = (ILintRulesPass)modData.ObjectCreator.CreateBasic(customRulesPassType);
customRulesPass.Run(EmitError, EmitWarning, rules);
}

View File

@@ -30,7 +30,6 @@ namespace OpenRA.Mods.Common.UtilityCommands
{
// HACK: The engine code assumes that Game.modData is set.
Game.ModData = modData;
modData.RulesetCache.Load(modData.DefaultFileSystem);
var types = Game.ModData.ObjectCreator.GetTypes();
var translatableFields = types.SelectMany(t => t.GetFields())

View File

@@ -42,15 +42,13 @@ namespace OpenRA.Mods.Common.UtilityCommands
var srcModData = new ModData(srcMod);
Game.ModData = srcModData;
var srcRules = srcModData.RulesetCache.Load(srcModData.DefaultFileSystem);
var srcPaletteInfo = srcRules.Actors["player"].TraitInfo<PlayerColorPaletteInfo>();
var srcPaletteInfo = srcModData.DefaultRules.Actors["player"].TraitInfo<PlayerColorPaletteInfo>();
var srcRemapIndex = srcPaletteInfo.RemapIndex;
var destMod = args[2].Split(':')[0];
var destModData = new ModData(destMod);
Game.ModData = destModData;
var destRules = destModData.RulesetCache.Load(destModData.DefaultFileSystem);
var destPaletteInfo = destRules.Actors["player"].TraitInfo<PlayerColorPaletteInfo>();
var destPaletteInfo = destModData.DefaultRules.Actors["player"].TraitInfo<PlayerColorPaletteInfo>();
var destRemapIndex = destPaletteInfo.RemapIndex;
var shadowIndex = new int[] { };