public void t読込開始()
        {
            this.list進行文字列.Add("TEST");

            es = new CEnumSongs();
            es.StartEnumFromCache();             // 曲リスト取得(別スレッドで実行される)
        }
Example #2
0
        public static void Handle(IInputDevice keyboard, CActSelect曲リスト act曲リスト, CEnumSongs enumSongs)
        {
            var 曲リストノード = act曲リスト.r現在選択中の曲;

            if (曲リストノード == null)
            {
                return;
            }

            if (曲リストノード.eノード種別 != C曲リストノード.Eノード種別.SCORE)
            {
                return;
            }

            if (!keyboard.bキーが押されている((int)SlimDX.DirectInput.Key.LeftControl) &&
                !keyboard.bキーが押されている((int)SlimDX.DirectInput.Key.RightControl))
            {
                return;
            }

            var ratingKeyPressed = GetSongRatingKeyPressed(keyboard);

            if (ratingKeyPressed == null)
            {
                return;
            }

            var スコア = 曲リストノード.arスコア.FirstOrDefault(o => o != null);

            if (スコア == null)
            {
                return;
            }

            var absoluteTjaPath = スコア.ファイル情報.ファイルの絶対パス;

            var newRating = SongRatingController.Toggle(absoluteTjaPath, ratingKeyPressed.Value);

            foreach (var cスコア in 曲リストノード.arスコア)
            {
                if (cスコア == null)
                {
                    continue;
                }

                cスコア.譜面情報.Rating = newRating;
            }

            act曲リスト.OnSelectedSongRatingChanged(newRating);
        }
Example #3
0
        public override int On進行描画()
        {
            if (!base.b活性化してない)
            {
                if (base.b初めての進行描画)
                {
                    this.list進行文字列.Add("DTXManiaXG Ver.K powered by YAMAHA Silent Session Drums\n");
                    this.list進行文字列.Add("Product by.kairera0467\n");
                    this.list進行文字列.Add("Release: " + TJAPlayer3.VERSION + " [" + System.Reflection.Assembly.GetExecutingAssembly().GetName().Version.ToString() + "]");

                    this.list進行文字列.Add("");
                    this.list進行文字列.Add("TJAPlayer3-f forked TJAPlayer3 (Aioilight)");
                    this.list進行文字列.Add("TJAPlayer3-f edited by Mr-Ojii(@Mr_Ojii)");
                    this.list進行文字列.Add("");

                    es = new CEnumSongs();
                    es.StartEnumFromCache();                                                                                                    // 曲リスト取得(別スレッドで実行される)
                    base.b初めての進行描画 = false;
                    return(0);
                }

                // CSongs管理 s管理 = CDTXMania.Songs管理;

                //if( this.tx背景 != null )
                //	this.tx背景.t2D描画( CDTXMania.app.Device, 0, 0 );

                #region [ this.str現在進行中 の決定 ]
                //-----------------
                switch (base.eフェーズID)
                {
                case CStage.Eフェーズ.起動0_システムサウンドを構築:
                    this.str現在進行中 = "SYSTEM SOUND...";
                    break;

                case CStage.Eフェーズ.起動00_songlistから曲リストを作成する:
                    this.str現在進行中 = "SONG LIST...";
                    break;

                case CStage.Eフェーズ.起動1_SongsDBからスコアキャッシュを構築:
                    this.str現在進行中 = "SONG DATABASE...";
                    break;

                case CStage.Eフェーズ.起動2_曲を検索してリストを作成する:
                    this.str現在進行中 = string.Format("{0} ... {1}", "Enumerating songs", es.Songs管理.n検索されたスコア数);
                    break;

                case CStage.Eフェーズ.起動3_スコアキャッシュをリストに反映する:
                    this.str現在進行中 = string.Format("{0} ... {1}/{2}", "Loading score properties from songs.db", es.Songs管理.nスコアキャッシュから反映できたスコア数, es.Songs管理.n検索されたスコア数);
                    break;

                case CStage.Eフェーズ.起動4_スコアキャッシュになかった曲をファイルから読み込んで反映する:
                    this.str現在進行中 = string.Format("{0} ... {1}/{2}", "Loading score properties from files", es.Songs管理.nファイルから反映できたスコア数, es.Songs管理.n検索されたスコア数 - es.Songs管理.nスコアキャッシュから反映できたスコア数);
                    break;

                case CStage.Eフェーズ.起動5_曲リストへ後処理を適用する:
                    this.str現在進行中 = string.Format("{0} ... ", "Building songlists");
                    break;

                case CStage.Eフェーズ.起動6_スコアキャッシュをSongsDBに出力する:
                    this.str現在進行中 = string.Format("{0} ... ", "Saving songs.db");
                    break;

                case CStage.Eフェーズ.起動7_完了:
                    this.list進行文字列.Add("LOADING TEXTURES...");
                    TJAPlayer3.Tx.LoadTexture();
                    this.list進行文字列.Add("LOADING TEXTURES...OK");
                    this.str現在進行中 = "Setup done.";
                    break;
                }
                //-----------------
                #endregion
                #region [ this.list進行文字列+this.現在進行中 の表示 ]
                //-----------------
                lock (this.list進行文字列)
                {
                    int x = 320;
                    int y = 20;
                    foreach (string str in this.list進行文字列)
                    {
                        TJAPlayer3.act文字コンソール.tPrint(x, y, C文字コンソール.Eフォント種別.白, str);
                        y += 24;
                    }
                    TJAPlayer3.act文字コンソール.tPrint(x, y, C文字コンソール.Eフォント種別.白, this.str現在進行中);
                }
                //-----------------
                #endregion

                if (es != null && es.IsSongListEnumCompletelyDone)                                              // 曲リスト作成が終わったら
                {
                    TJAPlayer3.Songs管理 = (es != null) ? es.Songs管理 : null;                                      // 最後に、曲リストを拾い上げる
                    return(1);
                }
            }
            return(0);
        }
Example #4
0
        public override int On進行描画()
        {
            if (!base.b活性化してない)
            {
                if (base.b初めての進行描画)
                {
                    this.list進行文字列.Add(TJAPlayer3.AppDisplayNameWithInformationalVersion);
                    this.list進行文字列.Add("");
                    this.list進行文字列.Add($"{TJAPlayer3.AppDisplayName} is open source software under the MIT license.");
                    this.list進行文字列.Add("See README for acknowledgments.");
                    this.list進行文字列.Add("");

                    es = new CEnumSongs();
                    es.StartEnumFromCache();                                                                                                    // 曲リスト取得(別スレッドで実行される)
                    base.b初めての進行描画 = false;
                    return(0);
                }

                // CSongs管理 s管理 = CDTXMania.Songs管理;

                //if( this.tx背景 != null )
                //	this.tx背景.t2D描画( CDTXMania.app.Device, 0, 0 );

                #region [ this.str現在進行中 の決定 ]
                //-----------------
                switch (base.eフェーズID)
                {
                case CStage.Eフェーズ.起動0_システムサウンドを構築:
                    this.str現在進行中 = "SYSTEM SOUND...";
                    break;

                case CStage.Eフェーズ.起動00_songlistから曲リストを作成する:
                    this.str現在進行中 = "SONG LIST...";
                    break;

                case CStage.Eフェーズ.起動1_SongsDBからスコアキャッシュを構築:
                    this.str現在進行中 = "SONG DATABASE...";
                    break;

                case CStage.Eフェーズ.起動2_曲を検索してリストを作成する:
                    this.str現在進行中 = string.Format("{0} ... {1}", "Enumerating songs", es.Songs管理.n検索されたスコア数);
                    break;

                case CStage.Eフェーズ.起動3_スコアキャッシュをリストに反映する:
                    this.str現在進行中 = string.Format("{0} ... {1}/{2}", "Loading score properties from songs.db", es.Songs管理.nスコアキャッシュから反映できたスコア数, es.Songs管理.n検索されたスコア数);
                    break;

                case CStage.Eフェーズ.起動4_スコアキャッシュになかった曲をファイルから読み込んで反映する:
                    this.str現在進行中 = string.Format("{0} ... {1}/{2}", "Loading score properties from files", es.Songs管理.nファイルから反映できたスコア数, es.Songs管理.n検索されたスコア数 - es.Songs管理.nスコアキャッシュから反映できたスコア数);
                    break;

                case CStage.Eフェーズ.起動5_曲リストへ後処理を適用する:
                    this.str現在進行中 = string.Format("{0} ... ", "Building songlists");
                    break;

                case CStage.Eフェーズ.起動6_スコアキャッシュをSongsDBに出力する:
                    this.str現在進行中 = string.Format("{0} ... ", "Saving songs.db");
                    break;

                case CStage.Eフェーズ.起動7_完了:
                    this.list進行文字列.Add("LOADING TEXTURES...");
                    TJAPlayer3.Tx.LoadTexture();
                    this.list進行文字列.Add("LOADING TEXTURES...OK");
                    this.str現在進行中 = "Setup done.";
                    break;
                }
                //-----------------
                #endregion
                #region [ this.list進行文字列+this.現在進行中 の表示 ]
                //-----------------
                lock (this.list進行文字列)
                {
                    int x = 320;
                    int y = 20;
                    foreach (string str in this.list進行文字列)
                    {
                        TJAPlayer3.act文字コンソール.tPrint(x, y, C文字コンソール.Eフォント種別.白, str);
                        y += 24;
                    }
                    TJAPlayer3.act文字コンソール.tPrint(x, y, C文字コンソール.Eフォント種別.白, this.str現在進行中);
                }
                //-----------------
                #endregion

                if (es != null && es.IsSongListEnumCompletelyDone)                                              // 曲リスト作成が終わったら
                {
                    TJAPlayer3.Songs管理 = (es != null) ? es.Songs管理 : null;                                      // 最後に、曲リストを拾い上げる
                    return(1);
                }
            }
            return(0);
        }
Example #5
0
        public override int On進行描画()
        {
            if (!base.b活性化してない)
            {
                if (base.b初めての進行描画)
                {
                    this.list進行文字列.Add(TJAPlayer3.AppDisplayName);
                    this.list進行文字列.Add("An open source Taiko no Tatsujin simulator");
                    this.list進行文字列.Add("https://github.com/TJAPlayer3-Develop/TJAPlayer3-Develop");
                    this.list進行文字列.Add("");
                    this.list進行文字列.Add("OFFICIAL DISCORD SERVER:");
                    this.list進行文字列.Add("https://discord.gg/jN7tUk7");
                    this.list進行文字列.Add("");
                    this.list進行文字列.Add("");
                    this.list進行文字列.Add("Checking for Updates...");
                    try
                    {
                        var release = Deserialize(GetLatestReleaseJson());

                        var version       = Assembly.GetExecutingAssembly().GetName().Version;
                        var buildDateTime = new DateTime(2000, 1, 1).Add(new TimeSpan(
                                                                             TimeSpan.TicksPerDay * version.Build +            // days since 1 January 2000
                                                                             TimeSpan.TicksPerSecond * 2 * version.Revision)); // seconds since midnight, (multiply by 2 to get original)

                        var latestDateTime = DateTime.ParseExact(release.ReleaseName.Replace("Release on ", ""), "MM/dd/yyyy HH:mm:ss", null).AddMinutes(-1.5);

                        if (latestDateTime.CompareTo(buildDateTime) > 0)
                        {
                            this.list進行文字列.Add("UPDATE FOUND!");
                            this.list進行文字列.Add("Download it here: http://bit.ly/tjap3dev-update");
                        }
                        else
                        {
                            this.list進行文字列.Add("You are using the latest version! :)");
                        }
                    }
                    catch
                    {
                        this.list進行文字列.Add("Error while checking for updates :(");
                    }
                    this.list進行文字列.Add("");
                    this.list進行文字列.Add("");
                    this.list進行文字列.Add("Now initializing:");
                    es = new CEnumSongs();
                    es.StartEnumFromCache();                                                            // 曲リスト取得(別スレッドで実行される)
                    base.b初めての進行描画 = false;
                    return(0);
                }

                // CSongs管理 s管理 = CDTXMania.Songs管理;

                //if( this.tx背景 != null )
                //	this.tx背景.t2D描画( CDTXMania.app.Device, 0, 0 );

                #region [ this.str現在進行中 の決定 ]
                //-----------------
                switch (base.eフェーズID)
                {
                case CStage.Eフェーズ.起動0_システムサウンドを構築:
                    this.str現在進行中 = "SYSTEM SOUND...";
                    break;

                case CStage.Eフェーズ.起動00_songlistから曲リストを作成する:
                    this.str現在進行中 = "SONG LIST...";
                    break;

                case CStage.Eフェーズ.起動1_SongsDBからスコアキャッシュを構築:
                    this.str現在進行中 = "SONG DATABASE...";
                    break;

                case CStage.Eフェーズ.起動2_曲を検索してリストを作成する:
                    this.str現在進行中 = string.Format("{0} ... {1}", "Enumerating songs", es.Songs管理.n検索されたスコア数);
                    break;

                case CStage.Eフェーズ.起動3_スコアキャッシュをリストに反映する:
                    this.str現在進行中 = string.Format("{0} ... {1}/{2}", "Loading score properties from songs.db", es.Songs管理.nスコアキャッシュから反映できたスコア数, es.Songs管理.n検索されたスコア数);
                    break;

                case CStage.Eフェーズ.起動4_スコアキャッシュになかった曲をファイルから読み込んで反映する:
                    this.str現在進行中 = string.Format("{0} ... {1}/{2}", "Loading score properties from files", es.Songs管理.nファイルから反映できたスコア数, es.Songs管理.n検索されたスコア数 - es.Songs管理.nスコアキャッシュから反映できたスコア数);
                    break;

                case CStage.Eフェーズ.起動5_曲リストへ後処理を適用する:
                    this.str現在進行中 = string.Format("{0} ... ", "Building songlists");
                    break;

                case CStage.Eフェーズ.起動6_スコアキャッシュをSongsDBに出力する:
                    this.str現在進行中 = string.Format("{0} ... ", "Saving songs.db");
                    break;

                case CStage.Eフェーズ.起動7_完了:
                    TJAPlayer3.Tx.LoadTexture();
                    this.list進行文字列.Add("LOADING TEXTURES...OK");
                    this.list進行文字列.Add("");
                    this.str現在進行中 = "Now entering the game...";
                    break;
                }
                //-----------------
                #endregion
                #region [ this.list進行文字列+this.現在進行中 の表示 ]
                //-----------------
                lock (this.list進行文字列)
                {
                    int x = 640;
                    int y = 60;
                    foreach (string str in this.list進行文字列)
                    {
                        TJAPlayer3.act文字コンソール.tPrintCenter(x, y, C文字コンソール.Eフォント種別.白, str);
                        y += 28;
                    }
                    TJAPlayer3.act文字コンソール.tPrintCenter(x, y, C文字コンソール.Eフォント種別.白, this.str現在進行中);
                }
                //-----------------
                #endregion

                if (es != null && es.IsSongListEnumCompletelyDone)                                  // 曲リスト作成が終わったら
                {
                    TJAPlayer3.Songs管理 = (es != null) ? es.Songs管理 : null;                          // 最後に、曲リストを拾い上げる
                    return(1);
                }
            }
            return(0);
        }
        public override int On進行描画()
        {
            if (!base.b活性化してない)
            {
                if (base.b初めての進行描画)
                {
                    this.list進行文字列.Add("This software product by KotonohaGroup\n");
                    this.list進行文字列.Add("Please read README.txt...\n");
                    this.list進行文字列.Add("Release: " + TJAPlayer3.VERSION + " [" + TJAPlayer3.VERSION2 + "]");

                    this.list進行文字列.Add("");
                    this.list進行文字列.Add("TaikoOS forked by TJAPlayer3-f(@Mr_Ojii)");
                    this.list進行文字列.Add("TaikoOS edited by TaikoOS develop team)");
                    this.list進行文字列.Add("");

                    es = new CEnumSongs();
                    es.StartEnumFromCache();                                                                                                    // 曲リスト取得(別スレッドで実行される)
                    base.b初めての進行描画 = false;
                    return(0);
                }

                // CSongs管理 s管理 = CDTXMania.Songs管理;

                //if( this.tx背景 != null )
                //	this.tx背景.t2D描画( CDTXMania.app.Device, 0, 0 );

                #region [ this.str現在進行中 の決定 ]
                //-----------------
                switch (base.eフェーズID)
                {
                case CStage.Eフェーズ.起動0_システムサウンドを構築:
                    this.str現在進行中 = "SYSTEM SOUND...";
                    break;

                case CStage.Eフェーズ.起動00_songlistから曲リストを作成する:
                    this.str現在進行中 = "SONG LIST...";
                    break;

                case CStage.Eフェーズ.起動1_SongsDBからスコアキャッシュを構築:
                    this.str現在進行中 = "SONG DATABASE...";
                    break;

                case CStage.Eフェーズ.起動2_曲を検索してリストを作成する:
                    this.str現在進行中 = string.Format("{0} ... {1}", "Enumerating songs", es.Songs管理.n検索されたスコア数);
                    break;

                case CStage.Eフェーズ.起動3_スコアキャッシュをリストに反映する:
                    this.str現在進行中 = string.Format("{0} ... {1}/{2}", "Loading score properties from songs.db", es.Songs管理.nスコアキャッシュから反映できたスコア数, es.Songs管理.n検索されたスコア数);
                    break;

                case CStage.Eフェーズ.起動4_スコアキャッシュになかった曲をファイルから読み込んで反映する:
                    this.str現在進行中 = string.Format("{0} ... {1}/{2}", "Loading score properties from files", es.Songs管理.nファイルから反映できたスコア数, es.Songs管理.n検索されたスコア数 - es.Songs管理.nスコアキャッシュから反映できたスコア数);
                    break;

                case CStage.Eフェーズ.起動5_曲リストへ後処理を適用する:
                    this.str現在進行中 = string.Format("{0} ... ", "Building songlists");
                    break;

                case CStage.Eフェーズ.起動6_スコアキャッシュをSongsDBに出力する:
                    this.str現在進行中 = string.Format("{0} ... ", "Saving songs.db");
                    break;

                case CStage.Eフェーズ.起動7_完了:
                    this.list進行文字列.Add("LOADING TEXTURES...");
                    TJAPlayer3.Tx.LoadTexture();
                    this.list進行文字列.Add("LOADING TEXTURES...OK");
                    this.str現在進行中 = "Have a fun!!!.";
                    break;
                }
                //-----------------
                #endregion
                #region [ this.list進行文字列+this.現在進行中 の表示 ]
                //-----------------
                lock (this.list進行文字列)
                {
                    int x = 320;
                    int y = 20;
                    foreach (string str in this.list進行文字列)
                    {
                        TJAPlayer3.act文字コンソール.tPrint(x, y, C文字コンソール.Eフォント種別.白, str);
                        y += 24;
                    }
                    TJAPlayer3.act文字コンソール.tPrint(x, y, C文字コンソール.Eフォント種別.白, this.str現在進行中);
                }
                //-----------------
                #endregion

                if (es != null && es.IsSongListEnumCompletelyDone)                                              // 曲リスト作成が終わったら
                {
                    TJAPlayer3.Songs管理 = (es != null) ? es.Songs管理 : null;                                      // 最後に、曲リストを拾い上げる
                    return(1);
                }
            }
            return(0);
        }