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; } }
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(); }
/// <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); }
/// <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; }