summaryrefslogtreecommitdiff
path: root/Mouse.cs
diff options
context:
space:
mode:
authorSarah B <git@sarahduck.ca>2023-12-25 00:02:12 -0800
committerSarah B <git@sarahduck.ca>2023-12-25 00:02:12 -0800
commitff3cbc5b49f8618531c5778d69b49c0aa4a9442a (patch)
treebdee837392669a3eb4ac3f0296c3749c6485078c /Mouse.cs
parent760fb20f4d248d19524392d2b8c3a3fcdb762453 (diff)
Changed how server handles UserInfo, and started work on networking the cursor's sprite.
Diffstat (limited to 'Mouse.cs')
-rw-r--r--Mouse.cs22
1 files changed, 19 insertions, 3 deletions
diff --git a/Mouse.cs b/Mouse.cs
index a23d784..fad056e 100644
--- a/Mouse.cs
+++ b/Mouse.cs
@@ -8,7 +8,7 @@ abstract class Mouse : Drawable
{
public string Name = "Mouse";
- Texture2D CursorTex = Raylib.LoadTexture("misc/cursor.png");
+ public Bitmap Cursor;
protected static List<Mouse> allMice = [];
public static ReadOnlyCollection<Mouse> AllMice => allMice.AsReadOnly();
@@ -19,6 +19,22 @@ abstract class Mouse : Drawable
{
DrawOrder = 100;
allMice.Add(this);
+
+ string CursorPath = "mddisc/cursor.png";
+
+ if (File.Exists(CursorPath) && new FileInfo(CursorPath).Length < 12*19*3) {
+ Cursor = Bitmap.FromPNGMemory(File.ReadAllBytes(CursorPath));
+ } else {
+ Console.WriteLine("Path to cursor png was invalid or the file was too big, using the default.");
+ Cursor = Bitmap.FromPNGMemory(EmbeddedResources.GetResource("misc.cursor.png"));
+ }
+ }
+
+ public Mouse(Bitmap cursor) : base()
+ {
+ DrawOrder = 100;
+ allMice.Add(this);
+ Cursor = cursor;
}
public override void Draw()
@@ -27,12 +43,12 @@ abstract class Mouse : Drawable
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);
+ Raylib.DrawTexture(Cursor.Texture, (int)Position.X, (int)Position.Y, Color.WHITE);
}
public override void Dispose()
{
- Raylib.UnloadTexture(CursorTex);
+ Cursor.Dispose();
allMice.Remove(this);
base.Dispose();
}