27 lines
1.0 KiB
C#
27 lines
1.0 KiB
C#
using DaggerFramework.Resources;
|
|
using DaggerFramework.Rendering;
|
|
|
|
namespace DaggerFramework.SceneGraph
|
|
{
|
|
public abstract class Layer : IDrawable
|
|
{
|
|
public Scene? Scene { get; set; }
|
|
public InputHandler? Input { get; set; }
|
|
public ResourceManager ResourceManager => Scene!.ResourceManager;
|
|
|
|
public void BeginDraw(Renderer renderer) => OnBeginDraw(renderer);
|
|
public void Draw(Renderer renderer) => OnDraw(renderer);
|
|
public void EndDraw(Renderer renderer) => OnEndDraw(renderer);
|
|
|
|
public void Start() => OnStart();
|
|
public void Update(double dt) => OnUpdate(dt);
|
|
public void ReceiveInput(InputHandler input) => OnInput(input);
|
|
|
|
protected virtual void OnStart() { }
|
|
protected virtual void OnUpdate(double dt) { }
|
|
protected virtual void OnInput(InputHandler input) { }
|
|
protected abstract void OnBeginDraw(Renderer renderer);
|
|
protected abstract void OnDraw(Renderer renderer);
|
|
protected abstract void OnEndDraw(Renderer renderer);
|
|
}
|
|
} |