Files
doom-dm/Engine/src/Scene/SceneManager.cs
2025-01-07 00:48:37 +03:00

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;
}
}