public TextureReplacerUserControl()
        {
            InitializeComponent();

            ViewModel        = new TextureReplacerViewModel();
            this.DataContext = ViewModel;
        }
        public void Test_GetTextureNameFromFile_ValidFile_Returns_Correct_Name()
        {
            SessionPath.ToSession = TestPaths.ToSessionTestFolder;

            FileInfo testFile = new FileInfo(Path.Combine(TestPaths.ToMockTextureFilesFolder, "AMXX_GEN_LB_StraightCut_Pants_A.uasset"));

            string expectedResult = "AMXX_GEN_LB_StraightCut_Pants_A";

            string actualResult = TextureReplacerViewModel.GetTextureNameFromFile(testFile);

            Assert.AreEqual(expectedResult, actualResult);
        }
        public void Test_GetFolderPathToTextureFromFile_ValidFile_Returns_Correct_Path()
        {
            SessionPath.ToSession = TestPaths.ToSessionTestFolder;

            FileInfo testFile = new FileInfo(Path.Combine(TestPaths.ToMockTextureFilesFolder, "AMXX_GEN_LB_StraightCut_Pants_A.uasset"));

            string expectedResult = SessionPath.ToContent + "/Customization/Characters/AMXX/LowerBody/Skelmeshes".Replace('/', Path.DirectorySeparatorChar);

            string actualResult = TextureReplacerViewModel.GetFolderPathToTextureFromFile(testFile);

            Assert.AreEqual(expectedResult, actualResult);
        }
示例#4
0
        /// <summary>
        /// Logic for determining how to install downloaded asset. (maps and textures are installed differently)
        /// </summary>
        /// <param name="assetToInstall"> asset being installed </param>
        /// <param name="pathToDownload"> absolute path to the downloaded asset file </param>
        private void InstallDownloadedAsset(AssetViewModel assetToInstall, string pathToDownload)
        {
            if (assetToInstall.AssetCategory == AssetCategory.Maps.Value)
            {
                // import map
                ComputerImportViewModel importViewModel = new ComputerImportViewModel()
                {
                    IsZipFileImport = true,
                    PathInput       = pathToDownload,
                    AssetToImport   = assetToInstall.Asset
                };
                Task <BoolWithMessage> importTask = importViewModel.ImportMapAsync();
                importTask.Wait();

                if (importTask.Result.Result)
                {
                    UserMessage = $"Successfully installed {assetToInstall.Name}!";
                }
                else
                {
                    UserMessage = $"Failed to install {assetToInstall.Name}: {importTask.Result.Message}";
                    Logger.Warn($"install failed: {importTask.Result.Message}");
                }
            }
            else
            {
                // replace texture
                TextureReplacerViewModel replacerViewModel = new TextureReplacerViewModel()
                {
                    PathToFile     = pathToDownload,
                    AssetToInstall = assetToInstall.Asset
                };
                replacerViewModel.MessageChanged += TextureReplacerViewModel_MessageChanged;
                replacerViewModel.ReplaceTextures();
                replacerViewModel.MessageChanged -= TextureReplacerViewModel_MessageChanged;
            }
        }