Ejemplo n.º 1
0
        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;
            }
        }
Ejemplo n.º 2
0
        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;
            }
        }