Ejemplo n.º 1
0
 public Program(ILoadOrder <IModListing <ISkyrimModGetter> > loadOrder, ILinkCache <ISkyrimMod, ISkyrimModGetter> linkCache, ISkyrimMod patchMod, Lazy <Settings> settings)
 {
     LoadOrder     = loadOrder;
     LinkCache     = linkCache;
     PatchMod      = patchMod;
     this.settings = settings;
 }
Ejemplo n.º 2
0
 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);
        }
Ejemplo n.º 5
0
        /*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();
        }
Ejemplo n.º 6
0
 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;
 }
Ejemplo n.º 7
0
        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);
        }