示例#1
0
        /// <summary>
        /// 各リストとコンテキストメニューの更新
        /// </summary>
        public async Task RefreshNotifyIconAsync()
        {
            OnRefreshStarting();

            var tasks = new List <Task>();

            foreach (AbstractManager manager in EnableManagers)
            {
                //サイトごとにタスクを作り、配信一覧からお気に入りの更新まで済ませる
                tasks.Add(manager.RefreshLiveAsync().ContinueWith(task =>
                {
                    if (task.Result)
                    {
                        BalloonManager.AddRange(manager.CheckFavorite());
                    }
                }));
            }
            await Task.WhenAll(tasks);

            if (!balloonTimer.Enabled)
            {
                //通知スタック1つ目を即座に処理
                balloonTimer.Enabled = BalloonManager.ExcuteBalloonQueue(balloontime, SOUND_LOCAL_PATH) > 0;
            }

            RefreshMenuAndIcon();

            OnRefreshCompleted();
        }
 private void Start()
 {
     if (instance == null)
     {
         instance = this;
     }
 }
示例#3
0
        private CharacterContext(Character character)
        {
            // いもうとの定義
            Character = character;

            // ルートディレクトリ
            BaseDirectory = character.Directory;

            // プロファイルを読み込む
            Profile = Profile.LoadFrom(Path.Combine(BaseDirectory, "profile.yml")) ?? new Profile {
                Age = Character.Age, TsundereLevel = Character.TsundereLevel
            };

            // バルーン読み込み
            Balloon = BalloonManager.GetValueOrDefault(Profile.LastBalloon);

            // ルートからイメージ用ディレクトリを作る
            SurfaceLoader = new SurfaceLoader(Path.Combine(BaseDirectory, "images"));

            // ウィンドウを作成する
            BalloonWindow = new BalloonWindow
            {
                Context        = this,
                Balloon        = Balloon,
                LocationOffset = Profile.BalloonOffset
            };

            CharacterWindow = new CharacterWindow
            {
                Context       = this,
                BalloonWindow = BalloonWindow
            };

            // メニューのコマンドを定義する
            var contextMenu = CharacterWindow.ContextMenu;

            contextMenu.CommandBindings.Add(new CommandBinding(Input.DefaultCommands.Character, CharacterCommand_Executed, CharacterCommand_CanExecute));
            contextMenu.CommandBindings.Add(new CommandBinding(Input.DefaultCommands.Balloon, BalloonCommand_Executed, BalloonCommand_CanExecute));
            contextMenu.CommandBindings.Add(new CommandBinding(Input.DefaultCommands.Option, OptionCommand_Executed));
            contextMenu.CommandBindings.Add(new CommandBinding(Input.DefaultCommands.Version, VersionCommand_Executed));
            contextMenu.CommandBindings.Add(new CommandBinding(ApplicationCommands.Close, CloseCommand_Executed));

            // スクリプトエンジンを作成する
            ScriptEngine = new ScriptEngine(Path.Combine(BaseDirectory, "scripts"));

            InitializeScriptEngine();

            // スクリプトプレイヤーを作成
            ScriptPlayer = new ScriptPlayer(this);

            RemoteConnectionManager = new RemoteConnectionManager();

            RemoteCommandManager = new RemoteCommandManager(Character, RemoteConnectionManager);
        }
示例#4
0
        /// <summary>
        /// 1箇所だけ更新があったとき用
        /// </summary>
        public void RefreshNotifyIconLite(AbstractManager manager)
        {
            BalloonManager.AddRange(manager.CheckFavorite());

            if (!balloonTimer.Enabled)
            {
                //通知スタック1つ目を即座に処理
                balloonTimer.Enabled = BalloonManager.ExcuteBalloonQueue(balloontime, SOUND_LOCAL_PATH) > 0;
            }

            RefreshMenuAndIcon();
        }
示例#5
0
 // Update is called once per frame
 void Update()
 {
     if (isInstructionPanelActive)
     {
         return;
     }
     balloonSpawnTimer += Time.deltaTime;
     if (balloonSpawnTimer >= spawnCooldown && !gameOver)
     {
         balloonSpawnTimer = 0;
         BalloonManager.SpawnBalloon();
     }
 }
示例#6
0
        /// <summary>
        /// NotifyIconWrapper クラス を生成、初期化します。
        /// </summary>
        public NotifyIconWrapper()
        {
            // コンポーネントの初期化
            this.InitializeComponent();

            // コンテキストメニューのイベントを設定
            this.toolStripMenuItem_Open.Click += this.toolStripMenuItem_Open_Click;
            this.toolStripMenuItem_Exit.Click += this.toolStripMenuItem_Exit_Click;
            SystemEvents.SessionEnding        += new SessionEndingEventHandler(SystemEvents_SessionEnding);
            SystemEvents.PowerModeChanged     += SystemEvents_PowerModeChanged;

            RefreshBridge.RefreshEvent += RefreshBridge_RefreshEvent;

            EnableManagers.Add(KukuluManager.GetInstance());
            EnableManagers.Add(CavetubeManager.GetInstance());
            EnableManagers.Add(Fc2Manager.GetInstance());
            EnableManagers.Add(TwitchManager.GetInstance());

            BalloonManager     = new BalloonManager(myNotifyIcon);
            ContextMenuManager = new ContextMenuManager(myContextMenuStrip);

            var t = RefreshNotifyIconAsync();   //警告を消すために変数に代入
        }
 // Start is called before the first frame update
 void Start()
 {
     startTime      = Time.time;
     balloonManager = GameObject.Find("BalloonManager").GetComponent <BalloonManager>();
 }
示例#8
0
 /// <summary>
 /// タイマーイベントで通知スタックを処理
 /// </summary>
 /// <param name="sender">呼び出し元オブジェクト</param>
 /// <param name="e">イベントデータ</param>
 private void balloonTimer_Tick(object sender, EventArgs e)
 {
     balloonTimer.Enabled = BalloonManager.ExcuteBalloonQueue(balloontime, SOUND_LOCAL_PATH) > 0;
 }
示例#9
0
 // Start is called before the first frame update
 void Start()
 {
     manager = GameObject.Find("GameManager").GetComponent <BalloonManager>();
     anim    = GetComponent <Animation> ();
     audio   = GameObject.Find("PoppingSounds").GetComponent <AudioSource>();
 }