From f7ee56309554bb5da7af49ad98bdb86146c0f19b Mon Sep 17 00:00:00 2001 From: erri120 Date: Mon, 11 Nov 2019 21:03:27 +0100 Subject: [PATCH] Removed Vortex/MO2 compiler reference in ACompiler in favor of casting --- Wabbajack.Lib/ACompiler.cs | 2 -- .../CompilationSteps/DeconstructBSAs.cs | 20 ++++++++++-------- .../CompilationSteps/IgnoreDisabledMods.cs | 8 ++++--- .../CompilationSteps/IgnoreVortex.cs | 2 +- .../CompilationSteps/IncludeOtherProfiles.cs | 5 ++++- .../IncludeStubbedConfigfiles.cs | 21 +++++++++++-------- .../CompilationSteps/IncludeTaggedMods.cs | 5 +++-- .../CompilationSteps/IncludeThisProfile.cs | 4 +++- .../CompilationSteps/PatchStockESMs.cs | 5 ++++- Wabbajack.Lib/Compiler.cs | 2 -- Wabbajack.Lib/VortexCompiler.cs | 3 --- 11 files changed, 43 insertions(+), 34 deletions(-) diff --git a/Wabbajack.Lib/ACompiler.cs b/Wabbajack.Lib/ACompiler.cs index 1d9deda2..9c9c8561 100644 --- a/Wabbajack.Lib/ACompiler.cs +++ b/Wabbajack.Lib/ACompiler.cs @@ -12,8 +12,6 @@ namespace Wabbajack.Lib public abstract class ACompiler { public ModManager ModManager; - public Compiler _mo2Compiler; - public VortexCompiler _vortexCompiler; public string GamePath; diff --git a/Wabbajack.Lib/CompilationSteps/DeconstructBSAs.cs b/Wabbajack.Lib/CompilationSteps/DeconstructBSAs.cs index 440b8813..8ff21b10 100644 --- a/Wabbajack.Lib/CompilationSteps/DeconstructBSAs.cs +++ b/Wabbajack.Lib/CompilationSteps/DeconstructBSAs.cs @@ -13,10 +13,12 @@ namespace Wabbajack.Lib.CompilationSteps private readonly IEnumerable _include_directly; private readonly List _microstack; private readonly List _microstackWithInclude; + private readonly Compiler _mo2Compiler; public DeconstructBSAs(ACompiler compiler) : base(compiler) { - _include_directly = _compiler._mo2Compiler.ModInis.Where(kv => + _mo2Compiler = (Compiler) compiler; + _include_directly = _mo2Compiler.ModInis.Where(kv => { var general = kv.Value.General; if (general.notes != null && general.notes.Contains(Consts.WABBAJACK_INCLUDE)) return true; @@ -28,16 +30,16 @@ namespace Wabbajack.Lib.CompilationSteps _microstack = new List { - new DirectMatch(_compiler._mo2Compiler), - new IncludePatches(_compiler._mo2Compiler), - new DropAll(_compiler._mo2Compiler) + new DirectMatch(_mo2Compiler), + new IncludePatches(_mo2Compiler), + new DropAll(_mo2Compiler) }; _microstackWithInclude = new List { - new DirectMatch(_compiler._mo2Compiler), - new IncludePatches(_compiler._mo2Compiler), - new IncludeAll(_compiler._mo2Compiler) + new DirectMatch(_mo2Compiler), + new IncludePatches(_mo2Compiler), + new IncludeAll(_mo2Compiler) }; } @@ -61,7 +63,7 @@ namespace Wabbajack.Lib.CompilationSteps var id = Guid.NewGuid().ToString(); - var matches = source_files.PMap(e => _compiler._mo2Compiler.RunStack(stack, new RawSourceFile(e) + var matches = source_files.PMap(e => _mo2Compiler.RunStack(stack, new RawSourceFile(e) { Path = Path.Combine(Consts.BSACreationDir, id, e.Paths.Last()) })); @@ -71,7 +73,7 @@ namespace Wabbajack.Lib.CompilationSteps { if (match is IgnoredDirectly) Utils.Error($"File required for BSA {source.Path} creation doesn't exist: {match.To}"); - _compiler._mo2Compiler.ExtraFiles.Add(match); + _mo2Compiler.ExtraFiles.Add(match); } CreateBSA directive; diff --git a/Wabbajack.Lib/CompilationSteps/IgnoreDisabledMods.cs b/Wabbajack.Lib/CompilationSteps/IgnoreDisabledMods.cs index cde06c36..4c01a8ed 100644 --- a/Wabbajack.Lib/CompilationSteps/IgnoreDisabledMods.cs +++ b/Wabbajack.Lib/CompilationSteps/IgnoreDisabledMods.cs @@ -9,13 +9,15 @@ namespace Wabbajack.Lib.CompilationSteps public class IgnoreDisabledMods : ACompilationStep { private readonly IEnumerable _allEnabledMods; + private readonly Compiler _mo2Compiler; public IgnoreDisabledMods(ACompiler compiler) : base(compiler) { - var alwaysEnabled = _compiler._mo2Compiler.ModInis.Where(f => IsAlwaysEnabled(f.Value)).Select(f => f.Key).ToHashSet(); + _mo2Compiler = (Compiler) compiler; + var alwaysEnabled = _mo2Compiler.ModInis.Where(f => IsAlwaysEnabled(f.Value)).Select(f => f.Key).ToHashSet(); - _allEnabledMods = _compiler._mo2Compiler.SelectedProfiles - .SelectMany(p => File.ReadAllLines(Path.Combine(_compiler._mo2Compiler.MO2Folder, "profiles", p, "modlist.txt"))) + _allEnabledMods = _mo2Compiler.SelectedProfiles + .SelectMany(p => File.ReadAllLines(Path.Combine(_mo2Compiler.MO2Folder, "profiles", p, "modlist.txt"))) .Where(line => line.StartsWith("+") || line.EndsWith("_separator")) .Select(line => line.Substring(1)) .Concat(alwaysEnabled) diff --git a/Wabbajack.Lib/CompilationSteps/IgnoreVortex.cs b/Wabbajack.Lib/CompilationSteps/IgnoreVortex.cs index 7ed9f38d..b7e01122 100644 --- a/Wabbajack.Lib/CompilationSteps/IgnoreVortex.cs +++ b/Wabbajack.Lib/CompilationSteps/IgnoreVortex.cs @@ -11,7 +11,7 @@ namespace Wabbajack.Lib.CompilationSteps public IgnoreVortex(ACompiler compiler) : base(compiler) { - _vortex = compiler._vortexCompiler; + _vortex = (VortexCompiler) compiler; } public override Directive Run(RawSourceFile source) diff --git a/Wabbajack.Lib/CompilationSteps/IncludeOtherProfiles.cs b/Wabbajack.Lib/CompilationSteps/IncludeOtherProfiles.cs index f9dec58c..096f87b9 100644 --- a/Wabbajack.Lib/CompilationSteps/IncludeOtherProfiles.cs +++ b/Wabbajack.Lib/CompilationSteps/IncludeOtherProfiles.cs @@ -8,10 +8,13 @@ namespace Wabbajack.Lib.CompilationSteps public class IgnoreOtherProfiles : ACompilationStep { private readonly IEnumerable _profiles; + private readonly Compiler _mo2Compiler; public IgnoreOtherProfiles(ACompiler compiler) : base(compiler) { - _profiles = compiler._mo2Compiler.SelectedProfiles + _mo2Compiler = (Compiler) compiler; + + _profiles = _mo2Compiler.SelectedProfiles .Select(p => Path.Combine("profiles", p) + "\\") .ToList(); } diff --git a/Wabbajack.Lib/CompilationSteps/IncludeStubbedConfigfiles.cs b/Wabbajack.Lib/CompilationSteps/IncludeStubbedConfigfiles.cs index 19019e18..75ccee46 100644 --- a/Wabbajack.Lib/CompilationSteps/IncludeStubbedConfigfiles.cs +++ b/Wabbajack.Lib/CompilationSteps/IncludeStubbedConfigfiles.cs @@ -7,8 +7,11 @@ namespace Wabbajack.Lib.CompilationSteps { public class IncludeStubbedConfigFiles : ACompilationStep { + private readonly Compiler _mo2Compiler; + public IncludeStubbedConfigFiles(ACompiler compiler) : base(compiler) { + _mo2Compiler = (Compiler) compiler; } public override Directive Run(RawSourceFile source) @@ -26,18 +29,18 @@ namespace Wabbajack.Lib.CompilationSteps var data = File.ReadAllText(source.AbsolutePath); var originalData = data; - data = data.Replace(_compiler._mo2Compiler.GamePath, Consts.GAME_PATH_MAGIC_BACK); - data = data.Replace(_compiler._mo2Compiler.GamePath.Replace("\\", "\\\\"), Consts.GAME_PATH_MAGIC_DOUBLE_BACK); - data = data.Replace(_compiler._mo2Compiler.GamePath.Replace("\\", "/"), Consts.GAME_PATH_MAGIC_FORWARD); + data = data.Replace(_mo2Compiler.GamePath, Consts.GAME_PATH_MAGIC_BACK); + data = data.Replace(_mo2Compiler.GamePath.Replace("\\", "\\\\"), Consts.GAME_PATH_MAGIC_DOUBLE_BACK); + data = data.Replace(_mo2Compiler.GamePath.Replace("\\", "/"), Consts.GAME_PATH_MAGIC_FORWARD); - data = data.Replace(_compiler._mo2Compiler.MO2Folder, Consts.MO2_PATH_MAGIC_BACK); - data = data.Replace(_compiler._mo2Compiler.MO2Folder.Replace("\\", "\\\\"), Consts.MO2_PATH_MAGIC_DOUBLE_BACK); - data = data.Replace(_compiler._mo2Compiler.MO2Folder.Replace("\\", "/"), Consts.MO2_PATH_MAGIC_FORWARD); + data = data.Replace(_mo2Compiler.MO2Folder, Consts.MO2_PATH_MAGIC_BACK); + data = data.Replace(_mo2Compiler.MO2Folder.Replace("\\", "\\\\"), Consts.MO2_PATH_MAGIC_DOUBLE_BACK); + data = data.Replace(_mo2Compiler.MO2Folder.Replace("\\", "/"), Consts.MO2_PATH_MAGIC_FORWARD); - data = data.Replace(_compiler._mo2Compiler.MO2DownloadsFolder, Consts.DOWNLOAD_PATH_MAGIC_BACK); - data = data.Replace(_compiler._mo2Compiler.MO2DownloadsFolder.Replace("\\", "\\\\"), + data = data.Replace(_mo2Compiler.MO2DownloadsFolder, Consts.DOWNLOAD_PATH_MAGIC_BACK); + data = data.Replace(_mo2Compiler.MO2DownloadsFolder.Replace("\\", "\\\\"), Consts.DOWNLOAD_PATH_MAGIC_DOUBLE_BACK); - data = data.Replace(_compiler._mo2Compiler.MO2DownloadsFolder.Replace("\\", "/"), Consts.DOWNLOAD_PATH_MAGIC_FORWARD); + data = data.Replace(_mo2Compiler.MO2DownloadsFolder.Replace("\\", "/"), Consts.DOWNLOAD_PATH_MAGIC_FORWARD); if (data == originalData) return null; diff --git a/Wabbajack.Lib/CompilationSteps/IncludeTaggedMods.cs b/Wabbajack.Lib/CompilationSteps/IncludeTaggedMods.cs index dbbf3242..76611545 100644 --- a/Wabbajack.Lib/CompilationSteps/IncludeTaggedMods.cs +++ b/Wabbajack.Lib/CompilationSteps/IncludeTaggedMods.cs @@ -9,12 +9,13 @@ namespace Wabbajack.Lib.CompilationSteps { private readonly IEnumerable _includeDirectly; private readonly string _tag; - + private readonly Compiler _mo2Compiler; public IncludeTaggedMods(ACompiler compiler, string tag) : base(compiler) { + _mo2Compiler = (Compiler) compiler; _tag = tag; - _includeDirectly = _compiler._mo2Compiler.ModInis.Where(kv => + _includeDirectly = _mo2Compiler.ModInis.Where(kv => { var general = kv.Value.General; if (general.notes != null && general.notes.Contains(_tag)) diff --git a/Wabbajack.Lib/CompilationSteps/IncludeThisProfile.cs b/Wabbajack.Lib/CompilationSteps/IncludeThisProfile.cs index 580f64a8..858ca04b 100644 --- a/Wabbajack.Lib/CompilationSteps/IncludeThisProfile.cs +++ b/Wabbajack.Lib/CompilationSteps/IncludeThisProfile.cs @@ -9,10 +9,12 @@ namespace Wabbajack.Lib.CompilationSteps public class IncludeThisProfile : ACompilationStep { private readonly IEnumerable _correctProfiles; + private readonly Compiler _mo2Compiler; public IncludeThisProfile(ACompiler compiler) : base(compiler) { - _correctProfiles = _compiler._mo2Compiler.SelectedProfiles.Select(p => Path.Combine("profiles", p) + "\\").ToList(); + _mo2Compiler = (Compiler) compiler; + _correctProfiles = _mo2Compiler.SelectedProfiles.Select(p => Path.Combine("profiles", p) + "\\").ToList(); } public override Directive Run(RawSourceFile source) diff --git a/Wabbajack.Lib/CompilationSteps/PatchStockESMs.cs b/Wabbajack.Lib/CompilationSteps/PatchStockESMs.cs index 9846c75f..804bc56e 100644 --- a/Wabbajack.Lib/CompilationSteps/PatchStockESMs.cs +++ b/Wabbajack.Lib/CompilationSteps/PatchStockESMs.cs @@ -8,14 +8,17 @@ namespace Wabbajack.Lib.CompilationSteps { public class PatchStockESMs : ACompilationStep { + private readonly Compiler _mo2Compiler; + public PatchStockESMs(ACompiler compiler) : base(compiler) { + _mo2Compiler = (Compiler) compiler; } public override Directive Run(RawSourceFile source) { var filename = Path.GetFileName(source.Path); - var gameFile = Path.Combine(_compiler._mo2Compiler.GamePath, "Data", filename); + var gameFile = Path.Combine(_mo2Compiler.GamePath, "Data", filename); if (!Consts.GameESMs.Contains(filename) || !source.Path.StartsWith("mods\\") || !File.Exists(gameFile)) return null; diff --git a/Wabbajack.Lib/Compiler.cs b/Wabbajack.Lib/Compiler.cs index 3cf047e0..3f395c63 100644 --- a/Wabbajack.Lib/Compiler.cs +++ b/Wabbajack.Lib/Compiler.cs @@ -42,8 +42,6 @@ namespace Wabbajack.Lib public Compiler(string mo2_folder) { - _vortexCompiler = null; - _mo2Compiler = this; ModManager = ModManager.MO2; MO2Folder = mo2_folder; diff --git a/Wabbajack.Lib/VortexCompiler.cs b/Wabbajack.Lib/VortexCompiler.cs index ba7b4cd6..a413d604 100644 --- a/Wabbajack.Lib/VortexCompiler.cs +++ b/Wabbajack.Lib/VortexCompiler.cs @@ -29,9 +29,6 @@ namespace Wabbajack.Lib public VortexCompiler(string gameName, string gamePath) { - - _vortexCompiler = this; - _mo2Compiler = null; ModManager = ModManager.Vortex; // TODO: only for testing