summaryrefslogtreecommitdiff
path: root/OnekoLocal.cs
diff options
context:
space:
mode:
Diffstat (limited to 'OnekoLocal.cs')
-rw-r--r--OnekoLocal.cs36
1 files changed, 36 insertions, 0 deletions
diff --git a/OnekoLocal.cs b/OnekoLocal.cs
new file mode 100644
index 0000000..64a4c6f
--- /dev/null
+++ b/OnekoLocal.cs
@@ -0,0 +1,36 @@
+using System.Numerics;
+using LiteNetLib.Utils;
+using OnekoOnline.Net;
+using Raylib_cs;
+
+namespace OnekoOnline;
+
+class OnekoLocal : Oneko
+{
+ public static Oneko? Instance;
+
+ static int Id => OnekoOnline.Client?.Id ?? -1;
+
+ public OnekoLocal() : base()
+ {
+ Instance ??= this;
+
+ Client.UserConnected += OnekoNet.SpawnNetNeko;
+ Client.ServerDisconnected += OnekoNet.DisconnectAll;
+ }
+
+ public override void OnekoUpdate(float delta)
+ {
+ if (Raylib.IsWindowFocused()) TargetPosition = Raylib.GetMousePosition()/2;
+ else TargetPosition = new Vector2(320/2, 240/2);
+
+ if (OnekoOnline.Client!.Connected) {
+ NetDataWriter writer = new();
+ writer.Put(new PacketInfo(PacketType.OnekoTargetPosition, Id));
+ writer.Put(TargetPosition);
+ OnekoOnline.Client?.ConnectedServer.Send(writer, LiteNetLib.DeliveryMethod.Unreliable);
+ }
+
+ base.OnekoUpdate(delta);
+ }
+} \ No newline at end of file