public bool DisposeScene(Scene scene)
        {
            if (_gameScenes.ContainsValue(scene))
            {
                foreach (string screenName in _gameScenes.Keys)
                {
                    if (_gameScenes[screenName] == scene)
                    {
                        _gameScenes.Remove(screenName);
                        break;
                    }
                }
            }

            if (_activeGameScenes.Contains(scene))
            {
                _activeGameScenes.Remove(scene);
                scene.Dispose();
                return true;
            }
            else
            {
                return false;
            }
        }
 public void ActivateScene(Scene scene)
 {
     LoadScene(scene);
     _activeGameScenes.Add(scene);
 }
 public void RemoveScene(Scene scene)
 {
     _activeGameScenes.Remove(scene);
 }
 public void LoadScene(Scene scene, string sceneName)
 {
     if (_gameScenes.ContainsKey(sceneName) && !string.IsNullOrEmpty(sceneName))
     {
         if (_gameScenes[sceneName] != scene)
             throw new ArgumentException(string.Format("GameScene '{0}' has already been loaded"));
         scene.Load(_contentManager);
     }
     else
     {
         _gameScenes.Add(scene.Name, scene);
         scene.Manager = this;
         scene.Load(_contentManager);
     }
 }
 public void LoadScene(Scene scene)
 {
     LoadScene(scene, scene.Name);
 }
 public void ExitScene(Scene scene)
 {
     scene.ExitScreen(false);
 }