public Program(ILoadOrder <IModListing <ISkyrimModGetter> > loadOrder, ILinkCache <ISkyrimMod, ISkyrimModGetter> linkCache, ISkyrimMod patchMod, Lazy <Settings> settings) { LoadOrder = loadOrder; LinkCache = linkCache; PatchMod = patchMod; this.settings = settings; }
public SynthesisState( RunSynthesisMutagenPatcher runArguments, IReadOnlyList <IModListingGetter> rawLoadOrder, ILoadOrder <IModListing <TModGetter> > loadOrder, ILinkCache <TModSetter, TModGetter> linkCache, TModSetter patchMod, string extraDataPath, string?internalDataPath, string?defaultDataPath, CancellationToken cancellation, IFormKeyAllocator?formKeyAllocator) { LinkCache = linkCache; RawLoadOrder = rawLoadOrder; LoadOrder = loadOrder; PatchMod = patchMod; ExtraSettingsDataPath = extraDataPath; InternalDataPath = internalDataPath; DefaultSettingsDataPath = defaultDataPath; Cancel = cancellation; LoadOrderFilePath = runArguments.LoadOrderFilePath; DataFolderPath = runArguments.DataFolderPath; GameRelease = runArguments.GameRelease; OutputPath = runArguments.OutputPath; SourcePath = runArguments.SourcePath; _formKeyAllocator = formKeyAllocator; }
public static int GetFileOrder(this ILoadOrder <IModListing <ISkyrimModGetter> >?LoadOrder, string Filename) { if (Filename == null || LoadOrder == null) { return(-1); } return(LoadOrder.Keys.ToList().FindIndex(0, LoadOrder.Keys.Count(), x => ((string)x.FileName).ToLower() == Filename.ToLower())); }
public static ISkyrimModGetter?GetModByFileName(this ILoadOrder <IModListing <ISkyrimModGetter> >?LoadOrder, string Name) { if (LoadOrder == null) { return(null); } var Mods = LoadOrder.Keys.Where(x => ((string)x.FileName).ToLower() == Name.ToLower()).ToList(); return((Mods.Count > 0) ?LoadOrder[Mods.First()].Mod : null); }
/*private static void PatchSpells() * { * static bool Predicate(IEffectGetter x) * { * if (x.Data == null) return false; * var effect = x.BaseEffect.Resolve(_linkCache); * return effect.Archetype.ActorValue == ActorValue.MagickaRate; * } * * List<ISpellGetter> spellsToPatch = _loadOrder.PriorityOrder.Spell().WinningOverrides() * .AsParallel() * .Where(spell => spell.Effects.Any(Predicate)) * .ToList(); * foreach (var spellCopy in spellsToPatch.Select(spell => _patchMod.Spells.GetOrAddAsOverride(spell))) * { * spellCopy.Effects.Where(Predicate).ForEach(x => * { * x.Data!.Magnitude *= _settings.Value.MagickaRegen.Scale; * }); * } * }*/ public static void RunPatch(IPatcherState <ISkyrimMod, ISkyrimModGetter> state) { _linkCache = state.LinkCache; _loadOrder = state.LoadOrder; _patchMod = state.PatchMod; CreateAbility(); PatchClasses(); PatchNPCs(); PatchGameSettings(); PatchRaces(); }
public GameEnvironmentState( DirectoryPath dataFolderPath, FilePath loadOrderFilePath, FilePath?creationKitLoadOrderFilePath, ILoadOrder <IModListing <TModGetter> > loadOrder, ILinkCache <TModSetter, TModGetter> linkCache, bool dispose = true) { LoadOrderFilePath = loadOrderFilePath; DataFolderPath = dataFolderPath; CreationKitLoadOrderFilePath = creationKitLoadOrderFilePath; LoadOrder = loadOrder; LinkCache = linkCache; _dispose = dispose; }
public Program(IPatcherState <ISkyrimMod, ISkyrimModGetter> state, IFileSystem?fileSystem = null) { State = state; LinkCache = state.LinkCache; PatchMod = state.PatchMod; LoadOrder = state.LoadOrder; _fileSystem = fileSystem ?? new FileSystem(); Path = _fileSystem.Path; TexturePaths = new TexturePaths(_fileSystem); MeshPaths = new MeshPaths(_fileSystem); TextureSets = new TextureSets(PatchMod, LinkCache, texturePaths: TexturePaths, fileSystem: _fileSystem); HeadParts = new HeadParts(PatchMod, LinkCache, TextureSets, MeshPaths, _fileSystem); }