diff options
Diffstat (limited to 'Drawable.cs')
| -rw-r--r-- | Drawable.cs | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/Drawable.cs b/Drawable.cs new file mode 100644 index 0000000..f6e5e1b --- /dev/null +++ b/Drawable.cs @@ -0,0 +1,38 @@ +using System.Numerics; +using Raylib_cs; + +namespace OnekoOnline; + +abstract class Drawable : IDisposable +{ + public Vector2 Position { + get => _position; + set => _position = value.Round(); + } + private Vector2 _position; + + public Vector2 Size; + public float Rotation = 0f; + + public static readonly List<Drawable> Drawables = []; + + public static void DrawAll() + { + float delta = Raylib.GetFrameTime(); + foreach (Drawable drawable in Drawables.OrderBy(d => -d.Position.Y)) { + drawable?.Update(delta); + drawable?.Draw(); + } + } + + public static void DisposeAll() + { + foreach (Drawable drawable in Drawables.ToArray()) drawable?.Dispose(); + } + + public abstract void Draw(); + + public abstract void Update(float delta); + + public abstract void Dispose(); +}
\ No newline at end of file |
