Exemple #1
0
        public static LoadOrder <OblivionMod> ImportUsualLoadOrder(
            DirectoryPath dataFolder,
            GroupMask?importMask       = null,
            ModKey?modKeyExclusionHint = null,
            bool allowMissingMods      = false)
        {
            var loadOrderListing = LoadOrder.GetUsualLoadOrder(GameMode.Oblivion, dataFolder, allowMissingMods: allowMissingMods);

            if (modKeyExclusionHint != null)
            {
                loadOrderListing.Remove(modKeyExclusionHint.Value);
            }
            var loadOrder = new LoadOrder <OblivionMod>();

            loadOrder.Import(
                dataFolder,
                loadOrderListing,
                importer: (FilePath path, ModKey modKey, out OblivionMod mod) =>
            {
                mod = OblivionMod.CreateFromBinary(
                    path.Path,
                    modKey,
                    importMask: importMask);
                return(true);
            });
            return(loadOrder);
        }
Exemple #2
0
        public static OblivionMod Flatten(this LoadOrder <OblivionMod> loadOrder, ModKey?modKey = null)
        {
            if (modKey == null)
            {
                modKey = new ModKey("Flattened", master: false);
            }
            OblivionMod ret = new OblivionMod(modKey.Value);

            foreach (var mod in loadOrder)
            {
                if (mod.Mod == null)
                {
                    continue;
                }
                ret.AddRecords(mod.Mod);
            }
            return(ret);
        }
Exemple #3
0
        public static void TypicalPatch(
            DirectoryPath dataFolder,
            ModKey outModKey,
            Func <ModKey, LoadOrder <OblivionMod>, OblivionMod> processor,
            GroupMask?importMask  = null,
            bool allowMissingMods = false)
        {
            var loadOrderList = LoadOrder.GetUsualLoadOrder(GameMode.Oblivion, dataFolder, allowMissingMods: allowMissingMods);

            Pipeline.TypicalPatch(
                dataFolder: dataFolder,
                outModKey: outModKey,
                loadOrderList: loadOrderList,
                processor: processor,
                importer: (FilePath path, ModKey modKey, out OblivionMod mod) =>
            {
                mod = OblivionMod.CreateFromBinary(
                    path.Path,
                    modKey,
                    importMask: importMask);
                return(true);
            });
        }