private void tbSpriteType_SelectedIndexChanged(object sender, EventArgs e) { if (!_spTypeSel) { if (tbSpriteType.SelectedIndex != currentSpriteType) { currentSpriteType = tbSpriteType.SelectedIndex; switch (tbSpriteType.SelectedIndex) { case 0: //Directory --> Sprite SpriteLibraryDirectory old = spriteTree.SelectedNode.Tag as SpriteLibraryDirectory; SpriteLibrarySprite res = new SpriteLibrarySprite(old); spriteTree.SelectedNode.Tag = res; spriteControl.Texture = null; spriteTree.SelectedNode.ImageKey = "image.png"; spriteTree.SelectedNode.SelectedImageKey = "image.png"; btnImportSprite.Enabled = true; SortSpriteNode(spriteTree.SelectedNode.Parent); break; case 1: //Sprite --> Directory SpriteLibrarySprite _old = spriteTree.SelectedNode.Tag as SpriteLibrarySprite; SpriteLibraryDirectory _res = new SpriteLibraryDirectory(_old); _old.Parent.Remove(_old); _old.Parent.Add(_res); spriteTree.SelectedNode.Tag = _res; spriteTree.SelectedNode.ImageKey = "folder.png"; spriteTree.SelectedNode.SelectedImageKey = "folder.png"; spriteControl.Texture = null; btnImportSprite.Enabled = false; SortSpriteNode(spriteTree.SelectedNode.Parent); break; } } spriteControl.Texture = null; } }
private void tabControl_SelectedIndexChanged(object sender, EventArgs e) { switch (tabControl.SelectedIndex) { case 0: listTilesets.Items.Clear(); foreach (Tileset tileset in EditorEngine.Instance.World.TilesetContainer) { ListViewItem item = new ListViewItem(tileset.Name); item.Tag = tileset; listTilesets.Items.Add(item); } break; case 1: listEntities.Items.Clear(); foreach (EntityTemplate template in EditorEngine.Instance.World.EntityContainer.All()) { listEntities.Items.Add(template.Name); } break; case 2: spriteTree.Nodes[0].Nodes.Clear(); //depth-first search algorithm Stack <TreeNode> stack = new Stack <TreeNode>(); TreeNode lastRootNode = spriteTree.Nodes[0]; stack.Push(spriteTree.Nodes[0]); while (stack.Count > 0) { TreeNode currentNode = stack.Pop(); SpriteLibraryDirectory spritenode = (SpriteLibraryDirectory)currentNode.Tag; foreach (SpriteLibraryDirectory directory in spritenode.Directories) { TreeNode childNode = new TreeNode(directory.Name) { Tag = directory }; currentNode.Nodes.Add(childNode); stack.Push(childNode); } foreach (SpriteLibrarySprite sprite in spritenode.Sprites) { currentNode.Nodes.Add(new TreeNode(sprite.Name) { Tag = sprite, ImageKey = "image.png", SelectedImageKey = "image.png" }); } SortSpriteNode(currentNode); } break; case 12: listUis.Clear(); foreach (UITemplate temp in EditorEngine.Instance.World.UIContainer) { listUis.Items.Add(new ListViewItem(temp.Name) { Tag = temp }); } break; } }