Inheritance: IFaceFXAnimSet
Beispiel #1
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];
            }
        }
        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];
            }
        }
Beispiel #3
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;
             }
         }
     }
 }