diff --git a/Directory.Packages.props b/Directory.Packages.props index 6958aab9..8b38a747 100644 --- a/Directory.Packages.props +++ b/Directory.Packages.props @@ -45,25 +45,25 @@ 17.9.0 - [0.44] + [0.44.0-nightly-20240411-215887] - [0.44] + [0.44.0-nightly-20240411-215887] - [0.44] + [0.44.0-nightly-20240411-215887] - [0.44] + [0.44.0-nightly-20240411-215887] - [0.44] + [0.44.0-nightly-20240411-215887] - [0.44] + [0.44.0-nightly-20240411-215887] - [0.44] + [0.44.0-nightly-20240411-215887] 13.0.3 diff --git a/Mutagen.Bethesda.Synthesis/Pipeline/SynthesisPipeline.cs b/Mutagen.Bethesda.Synthesis/Pipeline/SynthesisPipeline.cs index 2313d6a2..bd780416 100644 --- a/Mutagen.Bethesda.Synthesis/Pipeline/SynthesisPipeline.cs +++ b/Mutagen.Bethesda.Synthesis/Pipeline/SynthesisPipeline.cs @@ -786,7 +786,7 @@ public void Patch( #endregion private BinaryWriteParameters GetWriteParams(RunSynthesisMutagenPatcher args, IEnumerable loadOrder) - { + { return new BinaryWriteParameters() { ModKey = ModKeyOption.NoCheck, @@ -795,7 +795,8 @@ private BinaryWriteParameters GetWriteParams(RunSynthesisMutagenPatcher args, IE Encodings = args.UseUtf8ForEmbeddedStrings ? new EncodingBundle(NonTranslated: MutagenEncoding._1252, NonLocalized: MutagenEncoding._utf8) : null, - LowerRangeDisallowedHandler = ALowerRangeDisallowedHandlerOption.AddPlaceholder(loadOrder) + LowerRangeDisallowedHandler = ALowerRangeDisallowedHandlerOption.AddPlaceholder(loadOrder), + MinimumFormID = AMinimumFormIdOption.Force(args.FormIDRangeMode.ToForceBool()) }; } diff --git a/Mutagen.Bethesda.Synthesis/States/DI/PatcherStateFactory.cs b/Mutagen.Bethesda.Synthesis/States/DI/PatcherStateFactory.cs index 457652d7..f6a71980 100644 --- a/Mutagen.Bethesda.Synthesis/States/DI/PatcherStateFactory.cs +++ b/Mutagen.Bethesda.Synthesis/States/DI/PatcherStateFactory.cs @@ -119,18 +119,26 @@ public SynthesisState ToState(Ru { if (settings.SourcePath == null) { - bool? forceFormIdLowerRange = settings.FormIDRangeMode switch + Console.WriteLine("Creating new mod:"); + Console.WriteLine($" ModKey: {exportKey}"); + Console.WriteLine($" GameRelease: {settings.GameRelease}"); + if (settings.HeaderVersionOverride != null) { - FormIDRangeMode.Auto => null, - FormIDRangeMode.Off => false, - FormIDRangeMode.On => true, - _ => throw new NotImplementedException(), - }; + Console.WriteLine($" HeaderVersion: {settings.HeaderVersionOverride}"); + } + + var forceFormIdLowerRange = settings.FormIDRangeMode.ToForceBool(); + + if (forceFormIdLowerRange != null) + { + Console.WriteLine($" Force FormID Lower Range: {forceFormIdLowerRange}"); + } patchMod = ModInstantiator.Activator( exportKey, settings.GameRelease, headerVersion: settings.HeaderVersionOverride, forceUseLowerFormIDRanges: forceFormIdLowerRange); + Console.WriteLine($" Next FormID: {patchMod.NextFormID}"); } else { diff --git a/Synthesis.Bethesda/FormIDRangeMode.cs b/Synthesis.Bethesda/FormIDRangeMode.cs index 77f95cc3..f93bd631 100644 --- a/Synthesis.Bethesda/FormIDRangeMode.cs +++ b/Synthesis.Bethesda/FormIDRangeMode.cs @@ -6,3 +6,17 @@ public enum FormIDRangeMode Off = 2, On = 3, } + +public static class FormIDRangeModeExt +{ + public static bool? ToForceBool(this FormIDRangeMode mode) + { + return mode switch + { + FormIDRangeMode.Auto => null, + FormIDRangeMode.Off => false, + FormIDRangeMode.On => true, + _ => throw new NotImplementedException(), + }; + } +} \ No newline at end of file