Exemple #1
0
 void sce_OnSceneAdded(Scene pScene)
 {
     pScene.SetState(SceneState.Waiting);
     mCurrentScene.Add(pScene);
     UpdateSubManagerState(SceneManagerState.Paused);
     if (mCurrentScene.Count == 1)
     {
         mFixture.StartSceneMode();
         if (mState == SceneManagerState.Running)
         {
             mTimer.Enabled = true;
         }
         pScene.SetState(SceneState.Playing);
     }
 }
Exemple #2
0
 void sce_OnSceneRemoved(Scene pScene)
 {
     pScene.SetState(SceneState.Nothing);
     mCurrentScene.Remove(pScene);
     if (mCurrentScene.Count == 0)
     {
         mTimer.Enabled = false;
         if (mState != SceneManagerState.Paused)
         {
             UpdateSubManagerState(SceneManagerState.Running);
             mFixture.StopSceneMode();
         }
     }
 }
Exemple #3
0
        void sce_OnScenePlayed(Scene pScene)
        {
            foreach (Scene sce in mCurrentScene)
            {
                sce.SetState(SceneState.Nothing);
            }
            mCurrentScene.Clear();
            mCurrentSceneIndex = 0;
            mCurrentScene.Add(pScene);

            pScene.SetState(SceneState.PlayingExclusive);
            UpdateSubManagerState(SceneManagerState.Paused);
            if (mState == SceneManagerState.Running)
            {
                if (mCurrentScene.Count == 1)
                {
                    mTimer.Enabled = true;
                    mFixture.StartSceneMode();
                }
                mFixture.UnforceAllChannels();
            }
        }