Files
Voile/DaggerFramework/Source/SceneGraph/Entities/Entity.cs

29 lines
891 B
C#

using DaggerFramework.Audio;
using DaggerFramework.Rendering;
namespace DaggerFramework.SceneGraph
{
public class Entity
{
public EntityLayer? Layer { get; set; }
public InputHandler Input => Layer!.Scene.Input;
public AudioBackend Audio => Layer!.Scene.Audio;
public Renderer Renderer => Layer!.Scene.Renderer;
public int Id { get; set; }
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 OnDestroy() { }
protected virtual void OnUpdate(double dt) { }
protected virtual void OnInput(InputHandler input) { }
public void Destroy()
{
OnDestroy();
Layer?.DestroyEntity(Id);
}
}
}