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); }
/// <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; } }