コード例 #1
0
        public void WithVariableExtraProperties()
        {
            var package = MotionPackage.FromMtp(Assets.Assets.BkChaos());

            Assert.Equal(3, package.Entries.Length);

            Assert.NotEqual(default, package.Entries.FirstOrDefault(x => x.FileName == "chaos_attack"));
コード例 #2
0
        private static void BuildMtp(string fullPath)
        {
            var motionPackage = MotionPackage.FromDirectory(fullPath);
            var filePath      = Path.Combine(Path.GetDirectoryName(fullPath), $"{Path.GetFileNameWithoutExtension(fullPath)}.{MtpExtension}");

            File.WriteAllBytes(filePath, motionPackage.ToMtp());
            Console.WriteLine($"Written MTP To: {filePath}");
        }
コード例 #3
0
        public void SameAsOriginal_MixedPropertiesType_Export()
        {
            var originalFile   = Assets.Assets.SuperShadow();
            var originalParsed = MotionPackage.FromMtp(originalFile);

            var newFile = originalParsed.ToMtp();

            Assert.Equal(originalFile, newFile);
        }
コード例 #4
0
        public void SameAsOriginal_Export()
        {
            var originalFile   = Assets.Assets.BkChaos();
            var originalParsed = MotionPackage.FromMtp(originalFile);

            var newFile = originalParsed.ToMtp();

            Assert.Equal(originalFile, newFile);
        }
コード例 #5
0
        /// <summary>
        /// Retrieves a <see cref="MotionPackageHeader"/> from a <see cref="MotionPackage"/>.
        /// Note: Returns as default/little endian. Call <see cref="SwapEndian"/> before writing to file.
        /// </summary>
        public static MotionPackageHeader FromPackage(MotionPackage package)
        {
            var header = new MotionPackageHeader();

            header.Enabler       = 1;
            header.Enabler2      = 1;
            header.NumberOfFiles = (short)package.Entries.Length;
            header.EntryOffset   = 20;
            return(header);
        }
コード例 #6
0
        public void SameAsOriginal_OrderNonAlphabeticalNames_Export()
        {
            var package   = MotionPackage.FromMtp(Assets.Assets.Shadow());
            var directory = InitializeDirectory(ShadowDirectory);

            package.ToDirectory(directory);
            var newPackage = MotionPackage.FromDirectory(directory);

            Assert.Equal(package, newPackage);
        }
コード例 #7
0
        public void SameAsOriginalSingleFile_InboundMTP()
        {
            var originalFile   = Assets.Assets.BkLarva();
            var originalParsed = MotionPackage.FromMtp(originalFile);

            var newFile   = originalParsed.ToMtp();
            var newParsed = MotionPackage.FromMtp(newFile);

            Assert.Equal(originalParsed, newParsed);
        }
コード例 #8
0
        public void ExportSingle()
        {
            var package   = MotionPackage.FromMtp(Assets.Assets.BkLarva());
            var directory = InitializeDirectory(BkLarvaDirectory);

            package.ToDirectory(directory);

            var newPackage = MotionPackage.FromDirectory(directory);

            Assert.Equal(package, newPackage);
        }
コード例 #9
0
        public void ExportMulti()
        {
            var package   = MotionPackage.FromMtp(Assets.Assets.BkChaos());
            var directory = InitializeDirectory(BkChaosDirectory);

            package.ToDirectory(directory);

            var newPackage = MotionPackage.FromDirectory(directory);

            Assert.Equal(package, newPackage);
        }
コード例 #10
0
        public void ExportMulti_MissingSomeProperties()
        {
            // MTP with multiple MTNs and some MTNs with no associated properties
            var package   = MotionPackage.FromMtp(Assets.Assets.SuperShadow());
            var directory = InitializeDirectory(SuperShadowDirectory);

            package.ToDirectory(directory);

            var newPackage = MotionPackage.FromDirectory(directory);

            Assert.Equal(package, newPackage);
        }
コード例 #11
0
        private static void ExtractMtp(string fullPath)
        {
            var outputDirectory = Path.Combine(Path.GetDirectoryName(fullPath), Path.GetFileNameWithoutExtension(fullPath));

            InitializeDirectory(outputDirectory);

            var package = MotionPackage.FromMtp(File.ReadAllBytes(fullPath));

            package.ToDirectory(outputDirectory);

            Console.WriteLine($"Extracted MTP To: {outputDirectory}");
        }