//for assets files in bundles //public ModMakerDialog(BundleWorkspace workspace) : this() //{ // //} private void BuildTreeAssets() { builtTree = false; affectedBundles = CreateTreeItem("Affected bundles"); affectedFiles = CreateTreeItem("Affected assets files"); treeView.Items = new List <TreeViewItem>() { affectedBundles, affectedFiles }; string rootPath = boxBaseFolder.Text; filesItems = new ObservableCollection <ModMakerTreeFileInfo>(); fileToTvi = new Dictionary <string, ModMakerTreeFileInfo>(); foreach (var newAsset in assetWs.NewAssets) { string file = newAsset.Key.fileName; if (!fileToTvi.ContainsKey(file)) { ModMakerTreeFileInfo newFileItem = new ModMakerTreeFileInfo(file, rootPath); filesItems.Add(newFileItem); fileToTvi.Add(file, newFileItem); } ModMakerTreeFileInfo fileItem = fileToTvi[file]; var obsItems = fileItem.Replacers; obsItems.Add(new ModMakerTreeReplacerInfo(newAsset.Key, newAsset.Value)); } affectedFiles.Items = filesItems; builtTree = true; }
private async void BtnImport_Click(object?sender, Avalonia.Interactivity.RoutedEventArgs e) { OpenFileDialog ofd = new OpenFileDialog(); ofd.Filters = new List <FileDialogFilter>() { new FileDialogFilter() { Name = "UABE Mod Installer Package", Extensions = new List <string>() { "emip" } } }; string[] fileList = await ofd.ShowAsync(this); if (fileList.Length == 0) { return; } string emipPath = fileList[0]; if (emipPath != null && emipPath != string.Empty) { OpenFolderDialog ofdBase = new OpenFolderDialog(); ofdBase.Title = "Select base folder"; string rootPath = await ofdBase.ShowAsync(this); if (rootPath != null && rootPath != string.Empty) { InstallerPackageFile impEmip = new InstallerPackageFile(); if (importedEmipStream != null && importedEmipStream.CanRead) { importedEmipStream.Close(); } importedEmipStream = File.OpenRead(emipPath); AssetsFileReader r = new AssetsFileReader(importedEmipStream); impEmip.Read(r); boxModName.Text = impEmip.modName; boxCredits.Text = impEmip.modCreators; boxDesc.Text = impEmip.modDescription; foreach (InstallerPackageAssetsDesc affectedFile in impEmip.affectedFiles) { if (!affectedFile.isBundle) { string file = Path.GetFullPath(affectedFile.path, rootPath); if (!fileToTvi.ContainsKey(file)) { ModMakerTreeFileInfo newFileItem = new ModMakerTreeFileInfo(file, rootPath); filesItems.Add(newFileItem); fileToTvi.Add(file, newFileItem); } ModMakerTreeFileInfo fileItem = fileToTvi[file]; foreach (AssetsReplacer replacer in affectedFile.replacers) { AssetID assetId = new AssetID(file, replacer.GetPathID()); var obsItems = fileItem.Replacers; obsItems.Add(new ModMakerTreeReplacerInfo(assetId, replacer)); } } } } } }