/************************************************************************/ /* 基本処理 */ /************************************************************************/ /// <summary> /// コンストラクタ /// </summary> public MainWindow() { //ライセンスチェック #if DL_DEBUG SystemManager.GetInstance().SetUserName("デバッグ起動"); #else //ライセンスチェック var path = SystemUtility.GetSystemPath() + "FCAdmy.lic"; try { var user_Name = SystemUtility.GetLicenseUserName(path); SystemManager.GetInstance().SetUserName(user_Name); } catch (System.Exception) { Environment.Exit(1); } #endif InitializeComponent(); _InitializeSystem(); SystemManager.GetInstance().SetScreenShotGrid(ScreenShotGrid); }
/// <summary> /// デフォルトで表示されるツイート情報を取得 /// </summary> /// <param name="iImageFilePath">イメージファイルパス</param> /// <returns>ツイート</returns> public string GetDefaultTweet(string iImageFilePath) { //デフォルト設定から全て置換掛けていくよ string tweet = SystemManager.GetInstance().GetSystemInfo().mDefaultTweetStyle; //大会名 tweet = tweet.Replace("{TournamentName}", mCurrentBattleInfo.mName); //開始日時(全部) tweet = tweet.Replace("{TournamentData}", mCurrentBattleInfo.mDate); //開始日時(日にちだけ) var sep_list = mCurrentBattleInfo.mDate.Split(' '); tweet = tweet.Replace("{TournamentDay}", sep_list[0]); //開始日時(時間だけ) tweet = tweet.Replace("{TournamentTime}", sep_list[1]); //画像 tweet = tweet.Replace("{ImageUrl}", iImageFilePath); return(tweet); }
/************************************************************************/ /* コールバック処理 */ /************************************************************************/ //============================================================================ //! ロード時の処理 private void _Loaded(object iSender, RoutedEventArgs iArgs) { //シーンの初期化 var scene_Manager = SceneManager.GetInstance(); scene_Manager.SetControls(ContentControl, LeftFilterImage, RightFilterImage); LeftFilterImage.Margin = RightFilterImage.Margin = new Thickness(); //ロードコンテンツを設定する #if DL_DEBUG //ライセンス作成 if (true) { SystemUtility.CreateLicenseFiles(1); return; } bool test = true; if (test) { //データの設定 DataManager.GetInstance().SetData(SaveManager.GetInstance().PresetInfoKey, "BLAZBLUE CHRONOPHANTASMA"); //プロジェクトデータ設定 SaveManager.GetInstance().ProjectFilePath = @"C:\FCあどみぃ!\FCあどみぃ!\System\デバッグプロジェクト.pjb"; DataManager.GetInstance().ReadData(SaveManager.GetInstance().ProjectFilePath); //必要なマネージャの初期化 MemberManager.GetInstance().LoadMemberData(); BattleManager.GetInstance().LoadBattleData(); PresetManager.GetInstance().LoadPreset(); SystemManager.GetInstance().LoadSystemData(); //大会設定 var btl_Op_Manager = BattleOperatorManager.GetInstance(); btl_Op_Manager.BeginBattle(BattleManager.EBattleKind.BATTLE_SIMPLE_TOURNAMENT); btl_Op_Manager.SetBattleName("デバッグ大会!"); btl_Op_Manager.SetBattleObject(new SimpleTournamentObject()); //メンバー設定 //scene_Manager.AdvanceScene(SceneManager.EScene.SCENE_MEMBER_SELECT); foreach (var iIndex in System.Linq.Enumerable.Range(0, 32)) { btl_Op_Manager.AddMember(iIndex); } btl_Op_Manager.SetLockJoinMember(true); //チーム設定 var team_Val = 16; if (BattleOperatorManager.GetInstance().GetJoinMemberVal() % team_Val != 0) { throw new System.Exception(); } var in_Member_Val = BattleOperatorManager.GetInstance().GetJoinMemberVal() / team_Val; foreach (var iIndex in System.Linq.Enumerable.Range(0, team_Val)) { var info = new BattleManager.SBattleTeamInfo(); info.mTeamID = iIndex; info.mTeamName = string.Format("Team{0}", iIndex); info.mJoinIDList = new List <int>(); foreach (var iMemberIndex in System.Linq.Enumerable.Range(0, in_Member_Val)) { info.mJoinIDList.Add((iIndex * in_Member_Val) + iMemberIndex); } btl_Op_Manager.AddTeam(info); } btl_Op_Manager.SetLockTeam(true); //scene_Manager.AdvanceScene(SceneManager.EScene.SCENE_TEAM_SELECT); scene_Manager.AdvanceScene(SceneManager.EScene.SCENE_BATTLE_SIMPLE_TOURNAMENT); /*紅白戦 * var team = (TeamSelectScene)scene_Manager.AdvanceScene(SceneManager.EScene.SCENE_TEAM_SELECT); * team.AddTeam("紅組"); * team.AddTeam("白組"); * team.SetTeamOperateFlg(false);*/ //scene_Manager.AdvanceScene(SceneManager.EScene.SCENE_MEMBER_SELECT); } else #endif { var load_Scene = new LoadScene(); LoadContent.Content = load_Scene; } }
//============================================================================ //! 画像のアップロードを行う private void _ClickUploadScreenShot(object iSender, RoutedEventArgs iArgs) { //まずは画像の生成 var item = iSender as MenuItem; var path = ""; var file_name = ""; if (item != null) { var kind = (EScreenShotKind)item.TabIndex; path = mCreateScreenShotDelegate(kind); switch (kind) { case EScreenShotKind.SCREEN_SHOT_MEMBER: file_name = "メンバー表"; break; case EScreenShotKind.SCREEN_SHOT_TOURNAMENT: file_name = "トーナメント表"; break; case EScreenShotKind.SCREEN_SHOT_ALL: file_name = "メンバー表+トーナメント表"; break; } } //生成に失敗 if (path.Length == 0) { return; } try { System.Media.SystemSounds.Asterisk.Play(); MessageBox.Show("画像のアップロード中画面が止まりますが\nそのままでお待ちください", "確認", MessageBoxButton.OK, MessageBoxImage.Information); //アップロードする string url = DL.UploaderUtility.Upload(path); //エラー if (url == null || url.Length == 0) { throw new System.Exception("ファイルのアップロードに失敗しました"); } //アップロード結果からメニューにアイテムを追加 var index = mUploadURLList.Count; var diplay = string.Format("{0}({1})", file_name, DateTime.Now.ToString("yyyy/MM/dd HH:mm:ss")); mUploadURLList.Add(url); //初追加の場合はセパレータも追加 if (index == 0) { UploadItem.Items.Add(new Separator()); } //アイテム作成 var new_item = new MenuItem(); new_item.Header = diplay; new_item.TabIndex = index; UploadItem.Items.Add(new_item); //ツイッター認証してるかどうかでサブアイテム作るか決める var system_info = SystemManager.GetInstance().GetSystemInfo(); if (system_info.mAccessToken.mScreenName == null || system_info.mAccessToken.mScreenName.Length == 0 || system_info.mAccessToken.mToken == null || system_info.mAccessToken.mToken.Length == 0 || system_info.mAccessToken.mTokenSecret == null || system_info.mAccessToken.mTokenSecret.Length == 0) { //連携なし new_item.Click += _OpenUploadPhotoPage; } else { //連携有 var sub_item = new MenuItem(); sub_item.Header = "表示"; sub_item.TabIndex = index; sub_item.Click += _OpenUploadPhotoPage; new_item.Items.Add(sub_item); sub_item = new MenuItem(); sub_item.Header = "ツイート"; sub_item.TabIndex = index; sub_item.Click += _ClickTweetButton; new_item.Items.Add(sub_item); } System.Media.SystemSounds.Asterisk.Play(); MessageBox.Show("画像のアップロードに成功しました\n\n" + url, "確認", MessageBoxButton.OK, MessageBoxImage.Information); } catch (System.Exception iException) { System.Media.SystemSounds.Hand.Play(); MessageBox.Show("画像のアップロードに失敗しました\n\n" + iException.Message, "エラー", MessageBoxButton.OK, MessageBoxImage.Error); } }
/// <summary> /// メンバーのスクリーンショットを生成 /// </summary> /// <param name="iFilePath">ファイルパス</param> public void CreateMemberScreenShot(string iFilePath) { BeginScreenShot(); SystemUtility.OutputCaptureControl(iFilePath, SystemManager.GetInstance().GetScreenShotGrid()); SystemManager.GetInstance().GetScreenShotGrid().Children.Clear(); }
/// <summary> /// スクリーンショットを撮る準備(チーム画像をスクリーンショットグリッドに入れておく) /// </summary> public void BeginScreenShot() { //必要なコントロールを作成 var control_List = new List <TeamDisplay>(); var manager = BattleOperatorManager.GetInstance(); var team_Val = manager.GetTeamVal(); foreach (var iTeamIndex in System.Linq.Enumerable.Range(0, team_Val)) { var team_Info = manager.GetTeamInfo(iTeamIndex); var list = new List <BattleManager.SBattleJoinInfo>(); foreach (var iJoinMemberID in team_Info.mJoinIDList) { var info = new BattleManager.SBattleJoinInfo(); manager.GetJoinInfo(ref info, iJoinMemberID); list.Add(info); } var control = new TeamDisplay(); control.TeamNameTextBlock.Text = team_Info.mTeamName; control.SetJoinMemberList(list); control_List.Add(control); } //正方形にできるだけなるように敷き詰める数を取得 var val = 1; while (true) { var check = Math.Pow(2, (double)val); if (team_Val < check) { break; } ++val; } //グリッドに挿入 var margin = new Thickness(); var grid = SystemManager.GetInstance().GetScreenShotGrid(); var sum_Height = 0.0; while (control_List.Count > 0) { //横方向への挿入 margin.Left = 0; var max_Height = 0.0; var sum_Width = 0.0; foreach (var iIndex in System.Linq.Enumerable.Range(0, val)) { var control = control_List[0]; control.Margin = margin; grid.Children.Add(control); //横へずらす margin.Left += control.Width; sum_Width += control.Width; //縦の最大サイズ取得 if (max_Height < control.Height) { max_Height = control.Height; } //先頭を削除して無くなったら終わり control_List.RemoveAt(0); if (control_List.Count == 0) { break; } } //横方向へサイズ変更チェック if (grid.Width < sum_Width) { grid.Width = sum_Width; } //縦移動 margin.Top += max_Height; sum_Height += max_Height; } //縦方向へサイズ変更チェック if (grid.Height < sum_Height) { grid.Height = sum_Height; } }