summaryrefslogtreecommitdiff
path: root/MouseNet.cs
diff options
context:
space:
mode:
authorSarah Bradley <git@sarahduck.ca>2023-12-18 19:51:26 -0800
committerSarah Bradley <git@sarahduck.ca>2023-12-18 19:51:26 -0800
commit4b7966ffda3b6ad34d355148ddccbe2959061730 (patch)
tree8be290357abb5d7cf8c72a803f3be63b3e353d7e /MouseNet.cs
parentfc3874657348bde6ce7e3fab625c92dfec91baaa (diff)
Networked Mice!!
Also combined Spritesheet + Username packets into one UserInfo packet.
Diffstat (limited to 'MouseNet.cs')
-rw-r--r--MouseNet.cs35
1 files changed, 35 insertions, 0 deletions
diff --git a/MouseNet.cs b/MouseNet.cs
new file mode 100644
index 0000000..9521a25
--- /dev/null
+++ b/MouseNet.cs
@@ -0,0 +1,35 @@
+using OnekoOnline.Net;
+
+namespace OnekoOnline;
+
+class MouseNet : Mouse
+{
+ readonly User MyUser;
+
+ float InvisibleTimer;
+
+ public MouseNet(User user) : base()
+ {
+ MyUser = user;
+ Name = user.Username!;
+
+ Client.UserDisconnected += disconnectedUser => {
+ if (disconnectedUser == MyUser) Dispose();
+ };
+
+ Client.PacketRecived += (reader, user, packetType) => {
+ if (user != MyUser || packetType != PacketType.MousePosition) return;
+
+ Position = reader.GetVector2();
+ InvisibleTimer = 0f;
+ };
+
+ Client.ServerDisconnected += Dispose;
+ }
+
+ public override void Update(float delta)
+ {
+ InvisibleTimer += delta;
+ Visible = InvisibleTimer < 0.3f;
+ }
+} \ No newline at end of file