private void PrepareTreeList()
        {
            nodeList = new List <PackageTreeNode>();
            PackageTreeNode rootNode = new PackageTreeNode("All Packages");

            for (int l = 0; l < _textures.Count; l++)
            {
                bool found = false;
                for (int i = 0; i < nodeList.Count; i++)
                {
                    if (nodeList[i].Name.ToLowerInvariant() == _textures[l].packageName.ToLowerInvariant())
                    {
                        nodeList[i].textures.Add(_textures[l]);
                        found = true;
                    }
                }
                if (!found)
                {
                    PackageTreeNode treeNode = new PackageTreeNode(_textures[l].packageName);
                    treeNode.textures.Add(_textures[l]);
                    rootNode.Nodes.Add(treeNode);
                    nodeList.Add(treeNode);
                }
            }

            treeViewPackages.Nodes.Clear();
            treeViewPackages.BeginUpdate();
            treeViewPackages.Sort();
            treeViewPackages.Nodes.Add(rootNode);
            treeViewPackages.EndUpdate();
            treeViewPackages.Nodes[0].Expand();
        }
        private void replaceTexture()
        {
            if (listViewTextures.SelectedItems.Count == 0)
            {
                return;
            }

            using (OpenFileDialog selectDDS = new OpenFileDialog())
            {
                selectDDS.Title  = "Please select DDS file";
                selectDDS.Filter = "DDS file|*.dds";
                if (selectDDS.ShowDialog() != DialogResult.OK)
                {
                    return;
                }

                DDSImage image = new DDSImage(selectDDS.FileName);
                if (!image.checkExistAllMipmaps())
                {
                    MessageBox.Show("This texture has not all the required mipmaps, canceling...");
                    return;
                }

                bool loadMod  = loadMODsToolStripMenuItem.Enabled;
                bool clearMod = clearMODsToolStripMenuItem.Enabled;
                bool packMod  = packMODToolStripMenuItem.Enabled;
                EnableMenuOptions(false);

                PackageTreeNode node  = (PackageTreeNode)treeViewPackages.SelectedNode;
                ListViewItem    item  = listViewTextures.FocusedItem;
                int             index = Convert.ToInt32(item.Name);

                MipMaps mipMaps = new MipMaps();
                richTextBoxInfo.Text = mipMaps.replaceTexture(image, node.textures[index].list, cachePackageMgr, node.textures[index].name, node.textures[index].crc);
                if (richTextBoxInfo.Text != "")
                {
                    richTextBoxInfo.Show();
                    pictureBoxPreview.Hide();
                    MessageBox.Show("WARNING: Some errors have occured!");
                }

                cachePackageMgr.CloseAllWithSave();

                EnableMenuOptions(true);
                loadMODsToolStripMenuItem.Enabled  = loadMod;
                clearMODsToolStripMenuItem.Enabled = clearMod;
                packMODToolStripMenuItem.Enabled   = packMod;
                listViewTextures.Focus();
                item.Selected = false;
                item.Selected = true;
                item.Focused  = true;
            }
        }
Example #3
0
        private void PrepareTreeList()
        {
            nodeList = new List <PackageTreeNode>();
            PackageTreeNode rootNode = new PackageTreeNode("All Packages");

            for (int t = 0; t < _textures.Count; t++)
            {
                for (int l = 0; l < _textures[t].list.Count; l++)
                {
                    if (_textures[t].list[l].path == "")
                    {
                        continue;
                    }

                    string packageName = Path.GetFileNameWithoutExtension(_textures[t].list[l].path).ToUpperInvariant();
                    bool   found       = false;
                    for (int n = 0; n < nodeList.Count; n++)
                    {
                        if (nodeList[n].Name == packageName)
                        {
                            nodeList[n].textures.Add(_textures[t]);
                            found = true;
                        }
                    }
                    if (!found)
                    {
                        PackageTreeNode treeNode = new PackageTreeNode(packageName);
                        treeNode.textures.Add(_textures[t]);
                        rootNode.Nodes.Add(treeNode);
                        nodeList.Add(treeNode);
                    }
                }
            }

            treeViewPackages.Nodes.Clear();
            treeViewPackages.BeginUpdate();
            treeViewPackages.Sort();
            treeViewPackages.Nodes.Add(rootNode);
            treeViewPackages.EndUpdate();
            treeViewPackages.Nodes[0].Expand();
        }
Example #4
0
        /// <summary>
        /// Find or create the package where to create the model nodes
        /// </summary>
        /// <param name="package">Package path</param>
        /// <returns>Nodes collection</returns>
        private TreeNodeCollection FindPackage(string package)
        {
            if (package == "")
            {
                return(rootNodes);
            }
            else if (packages.ContainsKey(package))
            {
                return(packages[package]);
            }

            int    p             = package.LastIndexOf('.');
            string newPackage    = (p < 0) ? package : package.Substring(p + 1);
            string parentPackage = (p < 0) ? "" : package.Substring(0, p);

            TreeNodeCollection nodes = FindPackage(parentPackage);
            TreeNode           node  = new PackageTreeNode(newPackage);

            node.Expand();
            nodes.Add(node);
            packages[package] = node.Nodes;
            return(node.Nodes);
        }
Example #5
0
        /// <summary>
        /// Find or create the package where to create the model nodes
        /// </summary>
        /// <param name="package">Package path</param>
        /// <returns>Nodes collection</returns>
        private TreeNodeCollection FindPackage(string package)
        {
            if (package == "") return rootNodes;
            else if (packages.ContainsKey(package)) return packages[package];

            int p = package.LastIndexOf('.');
            string newPackage = (p < 0) ? package : package.Substring(p+1);
            string parentPackage = (p < 0) ? "" : package.Substring(0, p);

            TreeNodeCollection nodes = FindPackage(parentPackage);
            TreeNode node = new PackageTreeNode(newPackage);
            node.Expand();
            nodes.Add(node);
            packages[package] = node.Nodes;
            return node.Nodes;
        }