using Microsoft.Xna.Framework.Input.Touch;
using Penguloon.Scenes;
namespace Penguloon
{
public static class SceneManager
{
public static SelectedScene SelectedScene { get; set; } = SelectedScene.Loading;
public static SceneBase MenuScene { get; set; }
public static SceneBase LevelSelectionScene { get; set; }
public static SceneBase LoadingScene { get; set; }
public static SceneBase GameScene { get; set; }
///
/// Initialize scene manager.
///
public static void Initialize(Main main)
{
LoadingScene = new LoadingScene(main);
}
///
/// Draw selected scene.
///
/// Delta time.
public static void Draw(float deltaTime)
{
switch (SelectedScene)
{
case SelectedScene.Menu:
MenuScene.Draw(deltaTime); break;
case SelectedScene.Ingame:
GameScene.Draw(deltaTime); break;
case SelectedScene.LevelSelection:
LevelSelectionScene.Draw(deltaTime); break;
case SelectedScene.Loading:
LoadingScene.Draw(deltaTime); break;
default:
return;
}
}
///
/// Update selected scene.
///
/// Delta time.
/// Finger touch points.
public static void Update(float deltaTime, TouchLocation[] touchLocations)
{
switch (SelectedScene)
{
case SelectedScene.Menu:
MenuScene.Update(deltaTime, touchLocations); break;
case SelectedScene.Ingame:
GameScene.Update(deltaTime, touchLocations); break;
case SelectedScene.LevelSelection:
LevelSelectionScene.Update(deltaTime, touchLocations); break;
case SelectedScene.Loading:
LoadingScene.Update(deltaTime, touchLocations); break;
default:
return;
}
}
}
}