using System.Numerics; using OnekoOnline.Net; using LiteNetLib.Utils; using Raylib_cs; namespace OnekoOnline; class MouseLocal : Mouse { public MouseLocal() : base() { Client.UserConnected += user => { MouseNet NewNetMouse = new(user); }; Name = Client.UserName; } public override void Update(float delta) { Visible = Raylib.IsCursorOnScreen() && Raylib.IsWindowFocused(); Position = Raylib.GetMousePosition()/OnekoOnline.WindowScale; bool clicked = Raylib.IsMouseButtonPressed(MouseButton.MOUSE_BUTTON_LEFT); if (clicked && Visible) Clicked?.Invoke(this); if (Visible && OnekoOnline.Client!.Connected) { NetDataWriter writer = new(); writer.Put(new PacketInfo(PacketType.MouseState, OnekoOnline.Client.Id)); writer.Put(Position); writer.Put(clicked); OnekoOnline.Client?.ConnectedServer.Send(writer, LiteNetLib.DeliveryMethod.Unreliable); } } }