private void FaceFXRefresh(int n) { IEnumerable <string> expandedNodes = null; string topNodeName = null; if (FaceFX != null && n == FaceFX.export.Index) { List <TreeNode> allNodes = treeView2.Nodes.Cast <TreeNode>().ToList(); //flatten tree of nodes into list. for (int j = 0; j < allNodes.Count(); j++) { allNodes.AddRange(allNodes[j].Nodes.Cast <TreeNode>()); } expandedNodes = allNodes.Where(x => x.IsExpanded).Select(x => x.Name); topNodeName = treeView2.TopNode.Name; } IExportEntry exportEntry = pcc.Exports[n]; FaceFX = new ME3FaceFXAnimSet(pcc, exportEntry); hb1.ByteProvider = new DynamicByteProvider(exportEntry.Data); treeView1.Nodes.Clear(); treeView1.Nodes.Add(FaceFX.HeaderToTree()); nameAllNodes(treeView1.Nodes); treeView2.Nodes.Clear(); treeView2.Nodes.Add(FaceFX.DataToTree()); nameAllNodes(treeView2.Nodes); TreeNode[] nodes; if (expandedNodes != null) { foreach (string item in expandedNodes) { nodes = treeView2.Nodes.Find(item, true); if (nodes.Length > 0) { foreach (var node in nodes) { node.Expand(); } } } } nodes = treeView2.Nodes.Find(topNodeName, true); if (nodes.Length > 0) { treeView2.TopNode = nodes[0]; } }
private void FaceFXRefresh(int n) { IEnumerable<string> expandedNodes = null; string topNodeName = null; if (FaceFX != null && n == FaceFX.export.Index) { List<TreeNode> allNodes = treeView2.Nodes.Cast<TreeNode>().ToList(); //flatten tree of nodes into list. for (int j = 0; j < allNodes.Count(); j++) { allNodes.AddRange(allNodes[j].Nodes.Cast<TreeNode>()); } expandedNodes = allNodes.Where(x => x.IsExpanded).Select(x => x.Name); topNodeName = treeView2.TopNode.Name; } IExportEntry exportEntry = pcc.Exports[n]; FaceFX = new ME3FaceFXAnimSet(pcc, exportEntry); hb1.ByteProvider = new DynamicByteProvider(exportEntry.Data); treeView1.Nodes.Clear(); treeView1.Nodes.Add(FaceFX.HeaderToTree()); nameAllNodes(treeView1.Nodes); treeView2.Nodes.Clear(); treeView2.Nodes.Add(FaceFX.DataToTree()); nameAllNodes(treeView2.Nodes); TreeNode[] nodes; if (expandedNodes != null) { foreach (string item in expandedNodes) { nodes = treeView2.Nodes.Find(item, true); if (nodes.Length > 0) { foreach (var node in nodes) { node.Expand(); } } } } nodes = treeView2.Nodes.Find(topNodeName, true); if (nodes.Length > 0) { treeView2.TopNode = nodes[0]; } }
public override void handleUpdate(List <PackageUpdate> updates) { IEnumerable <PackageUpdate> relevantUpdates = updates.Where(x => x.change != PackageChange.Import && x.change != PackageChange.ImportAdd && x.change != PackageChange.Names); List <int> updatedExports = relevantUpdates.Select(x => x.index).ToList(); if (FaceFX != null && updatedExports.Contains(FaceFX.export.Index)) { int index = FaceFX.export.Index; //loaded FaceFXAnimset is no longer a FaceFXAnimset if (FaceFX.export.ClassName != "FaceFXAnimSet") { FaceFX = null; treeView1.Nodes.Clear(); treeView2.Nodes.Clear(); hb1.ByteProvider = new DynamicByteProvider(new List <byte>()); ListRefresh(); } else { FaceFXRefresh(index); } updatedExports.Remove(index); } if (updatedExports.Intersect(Objects).Count() > 0) { ListRefresh(); } else { foreach (var i in updatedExports) { if (pcc.getExport(i).ClassName == "FaceFXAnimSet") { ListRefresh(); break; } } } }
public override void handleUpdate(List<PackageUpdate> updates) { IEnumerable<PackageUpdate> relevantUpdates = updates.Where(x => x.change != PackageChange.Import && x.change != PackageChange.ImportAdd && x.change != PackageChange.Names); List<int> updatedExports = relevantUpdates.Select(x => x.index).ToList(); if (FaceFX != null && updatedExports.Contains(FaceFX.export.Index)) { int index = FaceFX.export.Index; //loaded FaceFXAnimset is no longer a FaceFXAnimset if (FaceFX.export.ClassName != "FaceFXAnimSet") { FaceFX = null; treeView1.Nodes.Clear(); treeView2.Nodes.Clear(); hb1.ByteProvider = new DynamicByteProvider(new List<byte>()); ListRefresh(); } else { FaceFXRefresh(index); } updatedExports.Remove(index); } if (updatedExports.Intersect(Objects).Count() > 0) { ListRefresh(); } else { foreach (var i in updatedExports) { if (pcc.getExport(i).ClassName == "FaceFXAnimSet") { ListRefresh(); break; } } } }