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.MouseState) return; Position = reader.GetVector2(); bool clicked = reader.GetBool(); if (clicked) Clicked?.Invoke(this); InvisibleTimer = 0f; }; Client.ServerDisconnected += Dispose; } public override void Update(float delta) { InvisibleTimer += delta; Visible = InvisibleTimer < 0.3f; } }