示例#1
0
        private void populateForm()
        {
            //populate tree view

            //make and populate image list
            ImageList iconList = new ImageList();

            iconList.Images.Add(Properties.Resources.rankingXH);
            iconList.Images.Add(Properties.Resources.rankingSH);
            iconList.Images.Add(Properties.Resources.rankingX);
            iconList.Images.Add(Properties.Resources.rankingS);
            iconList.Images.Add(Properties.Resources.rankingA);
            iconList.Images.Add(Properties.Resources.rankingB);
            iconList.Images.Add(Properties.Resources.rankingC);
            iconList.Images.Add(Properties.Resources.rankingD);
            iconList.Images.Add(Properties.Resources.dots);
            //iconList.Images.Add(Properties.Resources.blank);

            treeView1.ImageList          = iconList;
            treeView1.ImageIndex         = 8;
            treeView1.SelectedImageIndex = 8;

            //for every collection create the child nodes then add them to the collection parent node

            for (int c = 0; c < CollectionDB.Collections.Length; c++)
            {
                List <TreeNode> nodeData = new List <TreeNode>();
                for (int h = 0; h < CollectionDB.Collections[c].hashes.Length; h++)                //add child nodes
                {
                    if (OsuDB.songExists(CollectionDB.Collections[c].hashes[h]))
                    {
                        if (OsuDB.getSong(CollectionDB.Collections[c].hashes[h]).gradeStandard < 8)                        //between 0 and 7?
                        {
                            nodeData.Add(new TreeNode(OsuDB.getSong(CollectionDB.Collections[c].hashes[h]).artistName + " - " + OsuDB.getSong(CollectionDB.Collections[c].hashes[h]).songTitle + "[" + OsuDB.getSong(CollectionDB.Collections[c].hashes[h]).difficulty + "]", OsuDB.getSong(CollectionDB.Collections[c].hashes[h]).gradeStandard, OsuDB.getSong(CollectionDB.Collections[c].hashes[h]).gradeStandard));
                        }
                        else
                        {
                            nodeData.Add(new TreeNode(OsuDB.getSong(CollectionDB.Collections[c].hashes[h]).artistName + " - " + OsuDB.getSong(CollectionDB.Collections[c].hashes[h]).songTitle + "[" + OsuDB.getSong(CollectionDB.Collections[c].hashes[h]).difficulty + "]", 8, 8));
                        }
                        nodeData[nodeData.Count - 1].Tag = new MapHash(c, h, CollectionDB.Collections[c].hashes[h], CollectionDB.Collections[c].alivehash[h]);
                    }
                    //nodeData[nodeData.Count - 1].ImageIndex = OsuDB.getSong(CollectionDB.Collections[c].hashes[h]).gradeStandard;
                }
                //add collection nodes
                TreeNode treenode = new TreeNode(CollectionDB.Collections[c].name, nodeData.ToArray());
                treeView1.Nodes.Add(treenode);
            }
        }
示例#2
0
        private void treeView1_AfterSelect(object sender, TreeViewEventArgs e)
        {
            //different thing selected? update info box
            TreeNode node = e.Node;

            if (node.Tag != null)
            {
                MapHash tag  = (MapHash)node.Tag;
                string  hash = tag.hash;
                //Console.WriteLine("Hash is" + hash);
                if (OsuDB.songExists(hash))
                {
                    Song cursong = OsuDB.getSong(hash);
                    mapperLabel.Text = "Mapped by: " + cursong.creatorName;
                    arLabel.Text     = "AR: " + cursong.ar.ToString();
                    csLabel.Text     = "CS: " + cursong.cs.ToString();
                    odLabel.Text     = "OD: " + cursong.od.ToString();
                    idLabel.Text     = "ID: " + cursong.beatmapID + " (D)";
                    if (cursong.starRating > 0)
                    {
                        if (cursong.starRating.ToString().Length > 4)
                        {
                            starsLabel.Text = "Stars: " + cursong.starRating.ToString().Substring(0, 4);
                        }
                        else
                        {
                            starsLabel.Text = "Stars: " + cursong.starRating.ToString();
                        }
                    }
                    else
                    {
                        starsLabel.Text = "Stars: N/A";
                    }
                    for (int l = idLabel.Links.Count - 1; l > -1; l--)
                    {
                        idLabel.Links.RemoveAt(l);
                    }
                    idLabel.Links.Add(4, cursong.beatmapID.ToString().Length, "https://osu.ppy.sh/b/" + cursong.beatmapID);
                    idLabel.Links.Add(5 + cursong.beatmapID.ToString().Length, 3, "osu://b/" + cursong.beatmapID);
                    if (File.Exists(osuFolder + "data\\bt\\" + cursong.beatmapSetID + "l.jpg"))
                    {
                        pictureBox1.ImageLocation = osuFolder + "data\\bt\\" + cursong.beatmapSetID + "l.jpg";
                    }
                    else if (File.Exists(osuFolder + "data\\bt\\" + cursong.beatmapSetID + ".jpg"))
                    {
                        pictureBox1.ImageLocation = osuFolder + "data\\bt\\" + cursong.beatmapSetID + ".jpg";
                    }
                    else
                    {
                        pictureBox1.ImageLocation = null;
                    }

                    //set ranking picturebox
                    //Console.WriteLine(cursong.gradeStandard);
                    if (cursong.gradeStandard < 8)
                    {
                        label1.Visible = true;
                    }
                    switch (cursong.gradeStandard)
                    {
                    case 0:
                        pictureBox2.Image = Properties.Resources.rankingXH;
                        break;

                    case 1:
                        pictureBox2.Image = Properties.Resources.rankingSH;
                        break;

                    case 2:
                        pictureBox2.Image = Properties.Resources.rankingX;
                        break;

                    case 3:
                        pictureBox2.Image = Properties.Resources.rankingS;
                        break;

                    case 4:
                        pictureBox2.Image = Properties.Resources.rankingA;
                        break;

                    case 5:
                        pictureBox2.Image = Properties.Resources.rankingB;
                        break;

                    case 6:
                        pictureBox2.Image = Properties.Resources.rankingC;
                        break;

                    case 7:
                        pictureBox2.Image = Properties.Resources.rankingD;
                        break;

                    default:
                        pictureBox2.Image = null;
                        label1.Visible    = false;
                        pictureBox2.Update();
                        break;
                    }
                }
            }
            //Console.WriteLine(node.Tag);
        }