protected override void InitializeCore() { RegisterExportHandler <Archive>((path) => Data.Save(path)); RegisterReplaceHandler <Archive>((path) => new Archive(path)); RegisterAddHandler <Stream>((path) => Nodes.Add(DataViewNodeFactory.Create(path))); RegisterModelUpdateHandler(() => { var builder = new ArchiveBuilder(); foreach (DataViewNode node in Nodes) { builder.AddFile(node.Text, ModuleExportUtilities.CreateStream(node.Data)); } return(builder.Build()); }); }
protected override void InitializeCore() { RegisterExportHandler <Archive>((path) => Data.Save(path)); RegisterReplaceHandler <Archive>((path) => new Archive(path)); RegisterAddHandler <Stream>((path) => AddChildNode(DataViewNodeFactory.Create(path))); RegisterModelUpdateHandler(() => { var builder = new ArchiveBuilder(); foreach (DataViewNode node in Nodes) { builder.AddFile(node.Text, ModuleExportUtilities.CreateStream(node.Data)); } return(builder.Build()); }); RegisterCustomHandler("Export", "All", () => { var dialog = new VistaFolderBrowserDialog(); { if (dialog.ShowDialog() != true) { return; } foreach (DataViewNode node in Nodes) { // Hack for field texture archives: prefer DDS output format Type type = null; if (node.DataType == typeof(FieldTexturePS3) || node.DataType == typeof(GNFTexture)) { type = typeof(DDSStream); } node.Export(Path.Combine(dialog.SelectedPath, node.Text), type); } } }); }