コード例 #1
0
ファイル: OtherTests.cs プロジェクト: erri120/Mutagen
        public static async Task OblivionESM_GroupMask_Export(TestingSettings settings, Target target)
        {
            var mod = OblivionMod.CreateFromBinary(
                new ModPath(
                    Mutagen.Bethesda.Oblivion.Constants.Oblivion,
                    Path.Combine(settings.DataFolderLocations.Oblivion, target.Path)));

            using var tmp = TempFolder.FactoryByAddedPath("Mutagen_Oblivion_Binary_GroupMask_Export");
            var oblivionOutputPath = Path.Combine(tmp.Dir.Path, TestingConstants.OBLIVION_ESM);

            mod.WriteToBinary(
                oblivionOutputPath,
                importMask: new GroupMask()
            {
                Npcs = true
            });
            var fileLocs = RecordLocator.GetFileLocations(oblivionOutputPath, GameRelease.Oblivion);

            using var reader = new BinaryReadStream(oblivionOutputPath);
            foreach (var rec in fileLocs.ListedRecords.Keys)
            {
                reader.Position = rec;
                var t = HeaderTranslation.ReadNextRecordType(reader);
                if (!t.Equals(Oblivion.Internals.RecordTypes.NPC_))
                {
                    throw new ArgumentException("Exported a non-NPC record.");
                }
            }
        }
コード例 #2
0
 public ITempFolder CreateByAddedPath(string addedFolderPath, bool deleteAfter = true, bool throwIfUnsuccessfulDisposal = true)
 {
     return(TempFolder.FactoryByAddedPath(
                new DirectoryPath(Path.Combine(Path.GetTempPath(), addedFolderPath)),
                deleteAfter: deleteAfter,
                throwIfUnsuccessfulDisposal: throwIfUnsuccessfulDisposal,
                fileSystem: _fileSystem));
 }
コード例 #3
0
 public static TempFolder GetTempFolder() => TempFolder.FactoryByAddedPath(Path.Combine(OverallTempFolderPath, Path.GetRandomFileName()), throwIfUnsuccessfulDisposal: false);