34 lines
598 B
C#
34 lines
598 B
C#
namespace Engine.Scene;
|
|
|
|
public class SceneManager : IUpdate, IRender
|
|
{
|
|
public Scene? CurrentScene { get; private set; }
|
|
|
|
private Func<Scene>? _nextScene;
|
|
|
|
public void Update(double parDeltaTime)
|
|
{
|
|
if (_nextScene != null)
|
|
{
|
|
CurrentScene?.Exit();
|
|
CurrentScene = _nextScene();
|
|
_nextScene = null;
|
|
CurrentScene.Enter();
|
|
}
|
|
|
|
if (parDeltaTime != 0)
|
|
{
|
|
CurrentScene?.Update(parDeltaTime);
|
|
}
|
|
}
|
|
|
|
public void Render()
|
|
{
|
|
CurrentScene?.Render();
|
|
}
|
|
|
|
public void TransitionTo(Func<Scene>? parScene)
|
|
{
|
|
_nextScene = parScene;
|
|
}
|
|
} |