public async Task <bool> SingleExport(Window win, AssetWorkspace workspace, List <AssetContainer> selection) { AssetContainer cont = selection[0]; SaveFileDialog sfd = new SaveFileDialog(); AssetTypeValueField baseField = workspace.GetBaseField(cont); string name = baseField.Get("m_Name").GetValue().AsString(); sfd.Title = "Save text file"; sfd.Filters = new List <FileDialogFilter>() { new FileDialogFilter() { Name = "TXT file", Extensions = new List <string>() { "txt" } } }; sfd.InitialFileName = $"{name}-{Path.GetFileName(cont.FileInstance.path)}-{cont.PathId}.txt"; string file = await sfd.ShowAsync(win); if (file != null && file != string.Empty) { byte[] byteData = baseField.Get("m_Script").GetValue().AsStringBytes(); File.WriteAllBytes(file, byteData); return(true); } return(false); }
public async Task <bool> BatchImport(Window win, AssetWorkspace workspace, List <AssetContainer> selection) { OpenFolderDialog ofd = new OpenFolderDialog(); ofd.Title = "Select import directory"; string dir = await ofd.ShowAsync(win); if (dir != null && dir != string.Empty) { ImportBatch dialog = new ImportBatch(workspace, selection, dir, ".png"); List <ImportBatchInfo> batchInfos = await dialog.ShowDialog <List <ImportBatchInfo> >(win); foreach (ImportBatchInfo batchInfo in batchInfos) { AssetContainer cont = batchInfo.cont; AssetTypeValueField baseField = workspace.GetBaseField(cont); string file = batchInfo.importFile; byte[] byteData = File.ReadAllBytes(file); baseField.Get("m_Script").GetValue().Set(byteData); byte[] savedAsset = baseField.WriteToByteArray(); var replacer = new AssetsReplacerFromMemory( 0, cont.PathId, (int)cont.ClassId, cont.MonoId, savedAsset); workspace.AddReplacer(cont.FileInstance, replacer, new MemoryStream(savedAsset)); } return(true); } return(false); }
public async Task <bool> BatchExport(Window win, AssetWorkspace workspace, List <AssetContainer> selection) { OpenFolderDialog ofd = new OpenFolderDialog(); ofd.Title = "Select export directory"; string dir = await ofd.ShowAsync(win); if (dir != null && dir != string.Empty) { foreach (AssetContainer cont in selection) { AssetTypeValueField baseField = workspace.GetBaseField(cont); string name = baseField.Get("m_Name").GetValue().AsString(); byte[] byteData = baseField.Get("m_Script").GetValue().AsStringBytes(); string file = Path.Combine(dir, $"{name}-{Path.GetFileName(cont.FileInstance.path)}-{cont.PathId}.txt"); File.WriteAllBytes(file, byteData); } return(true); } return(false); }
public async Task <bool> SingleImport(Window win, AssetWorkspace workspace, List <AssetContainer> selection) { AssetContainer cont = selection[0]; OpenFileDialog ofd = new OpenFileDialog(); AssetTypeValueField baseField = workspace.GetBaseField(cont); ofd.Title = "Open text file"; ofd.Filters = new List <FileDialogFilter>() { new FileDialogFilter() { Name = "TXT file", Extensions = new List <string>() { "txt" } } }; string[] fileList = await ofd.ShowAsync(win); if (fileList.Length == 0) { return(false); } string file = fileList[0]; if (file != null && file != string.Empty) { byte[] byteData = File.ReadAllBytes(file); baseField.Get("m_Script").GetValue().Set(byteData); byte[] savedAsset = baseField.WriteToByteArray(); var replacer = new AssetsReplacerFromMemory( 0, cont.PathId, (int)cont.ClassId, cont.MonoId, savedAsset); workspace.AddReplacer(cont.FileInstance, replacer, new MemoryStream(savedAsset)); } return(false); }