summaryrefslogtreecommitdiff
path: root/Mouse.cs
blob: a23d784179d82a067346e7487bb119057e65c1d3 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
using Raylib_cs;
using System.Collections.ObjectModel;
using System.Numerics;

namespace OnekoOnline;

abstract class Mouse : Drawable
{
    public string Name = "Mouse";

    Texture2D CursorTex = Raylib.LoadTexture("misc/cursor.png");

    protected static List<Mouse> allMice = [];
    public static ReadOnlyCollection<Mouse> AllMice => allMice.AsReadOnly();

    public static Action<Mouse>? Clicked;

    public Mouse() : base()
    {
        DrawOrder = 100;
        allMice.Add(this);
    }

    public override void Draw()
    {
        Vector2 NametagPosition = new(Position.X-(Name.Length*3)+4, Position.Y-13);
        Raylib.DrawTextEx(OnekoOnline.DefaultFont, Name, NametagPosition+Directions.Down, 11, 0, Color.BLACK); //Shadow
        Raylib.DrawTextEx(OnekoOnline.DefaultFont, Name, NametagPosition, 11, 0, Color.WHITE);

        Raylib.DrawTexture(CursorTex, (int)Position.X, (int)Position.Y, Color.WHITE);
    }

    public override void Dispose()
    {
        Raylib.UnloadTexture(CursorTex);
        allMice.Remove(this);
        base.Dispose();
    }
}