Ejemplo n.º 1
0
        /// <summary>
        /// 下のディレクトリに進む
        /// </summary>
        public void GoDownDirectory()
        {
            if (!CanGoDown)
            {
                return;
            }
            switch (mode)
            {
            case Mode.SongInfo:
                currentRoot      = SelectedSongInformation.SongInfo;
                songSelect.Index = 0;
                GenerateSelectSongs();
                break;

            case Mode.LogicFolder:
                currentLogicRoot  = (SelectedSongInformation as LogicSelectedSongInfo).LogicFolderInfomation;
                logicSelect.Index = 0;
                GenerateSelectLogics();
                break;

            case Mode.Contest:
            case Mode.ActiveScore:
                break;

            case Mode.List:
                currentList          = (SelectedSongInformation as ListInfoSelectedSongInfo).ListInfo;
                listInfoSelect.Index = 0;
                GenerateSelectLists();
                break;
            }
            OnDirectoryChanged();
            OnSongChanged(SongChangeMode.Reset);
        }
Ejemplo n.º 2
0
        private LogicFolderTreeViewItem CreateAndAdd(LogicFolderInfomation child, TreeViewItem parent)
        {
            var tvi = new LogicFolderTreeViewItem
            {
                TextureString = new TextureString(device, child.Name, 14, maxwidth - gapX * child.Depth, PPDColors.White)
                {
                    AllowScroll = false
                },
                LogicFolderInfo = child
            };

            parent.Add(tvi);
            return(tvi);
        }
Ejemplo n.º 3
0
        void SongInformation_Updated(object sender, EventArgs e)
        {
            songSelect        = new SelectInfo();
            logicSelect       = new SelectInfo();
            contestSelect     = new SelectInfo();
            activeScoreSelect = new SelectInfo();
            listInfoSelect    = new SelectInfo();

            currentRoot      = SongInformation.Root;
            currentLogicRoot = LogicFolderInfomation.Root;
            GenerateSelectSongs();
            GenerateSelectLogics();
            GenerateSelectContests();
            GenerateSelectActiveScores();
            GenerateSelectLists();

            if (contestSelects != null && contestSelects.Length > 0)
            {
                contestSelects[0].UpdateSongInfo();
            }
            if (activeScores != null && activeScores.Length > 0)
            {
                foreach (var score in activeScoreSelects)
                {
                    score.UpdateSongInfo();
                }
            }
            if (listInfoSelects != null && listInfoSelects.Length > 0)
            {
                foreach (var select in listInfoSelects)
                {
                    select.UpdateSongInfo();
                }
            }
            OnDirectoryChanged();
            OnSongChanged(SongChangeMode.Reset);
        }
Ejemplo n.º 4
0
        /// <summary>
        /// 上のディレクトリに戻る
        /// </summary>
        public void GoUpDirectory()
        {
            if (!CanGoUp)
            {
                return;
            }
            switch (mode)
            {
            case Mode.SongInfo:
                SongInformation tempSongRoot = currentRoot;
                currentRoot = currentRoot.Parent;
                GenerateSelectSongs();
                songSelect.Index = songSelects.FindIndex(info => info.SongInfo == tempSongRoot);
                break;

            case Mode.LogicFolder:
                LogicFolderInfomation tempLogicRoot = currentLogicRoot;
                CurrentLogicRoot = CurrentLogicRoot.Parent;
                GenerateSelectLogics();
                logicSelect.Index = logicSelects.FindIndex(info => info.LogicFolderInfomation == tempLogicRoot);
                break;

            case Mode.Contest:
            case Mode.ActiveScore:
                break;

            case Mode.List:
                var prevList = currentList;
                currentList = null;
                GenerateSelectLists();
                listInfoSelect.Index = listInfos.FindIndex(info => info == prevList);
                break;
            }
            OnDirectoryChanged();
            OnSongChanged(SongChangeMode.Reset);
        }
Ejemplo n.º 5
0
        public void RandomSelect(RandomSelectType randomSelectType)
        {
            if (CurrentMode == Mode.SongInfo)
            {
                var songs   = randomSelectType == RandomSelectType.InAll ? SongInformation.All : CurrentRoot.Children.Where(s => s.IsPPDSong).ToArray();
                var linkAll = Filter.GetFiltered(songs).Select(info => new SelectedSongInfo(info)).ToArray();
                if (linkAll.Length == 0)
                {
                    return;
                }

                var             rand   = new Random();
                SongInformation target = linkAll[rand.Next(linkAll.Length)].SongInfo;
                CurrentRoot = target.Parent;
                GenerateSelectSongs();
                CurrentSelect.Index = songSelects.FindIndex(link => link.SongInfo == target);
                OnDirectoryChanged();
                OnSongChanged(SongChangeMode.Reset);
            }
            else if (CurrentMode == Mode.LogicFolder)
            {
                var links   = randomSelectType == RandomSelectType.InAll ? LogicFolderInfomation.All : CurrentLogicRoot.Children.Where(l => !l.IsFolder).ToArray();
                var linkAll = links.Select(info => new LogicSelectedSongInfo(info)).ToArray();
                if (linkAll.Length == 0)
                {
                    return;
                }

                var rand = new Random();
                LogicFolderInfomation target = linkAll[rand.Next(linkAll.Length)].LogicFolderInfomation;
                CurrentLogicRoot = target.Parent;
                GenerateSelectLogics();
                logicSelect.Index = logicSelects.FindIndex(link => link.LogicFolderInfomation == target);
                OnDirectoryChanged();
                OnSongChanged(SongChangeMode.Reset);
            }
            else if (CurrentMode == Mode.ActiveScore)
            {
                var rand = new Random();
                activeScoreSelect.Index = rand.Next(activeScores.Length);
                OnDirectoryChanged();
                OnSongChanged(SongChangeMode.Reset);
            }
            else if (CurrentMode == Mode.List)
            {
                var rand = new Random();
                switch (randomSelectType)
                {
                case RandomSelectType.InCurrentFolder:
                    listInfoSelect.Index = rand.Next(listInfoSelects.Length);
                    OnSongChanged(SongChangeMode.Reset);
                    break;

                case RandomSelectType.InAll:
                    var listScores = listInfos.SelectMany(l => l.Scores).ToArray();
                    var target     = listScores[rand.Next(listScores.Length)];
                    currentList          = target.Parent;
                    listInfoSelect.Index = currentList.Scores.FindIndex(s => s == target);
                    GenerateSelectLists();
                    OnDirectoryChanged();
                    OnSongChanged(SongChangeMode.Reset);
                    break;
                }
            }
        }
Ejemplo n.º 6
0
 public LogicSelectedSongInfo(LogicFolderInfomation logicInfo)
     : base(SongInformation.FindSongInformationByID(logicInfo.ScoreID))
 {
     LogicFolderInfomation = logicInfo;
 }