From 217c93639fc6dee3222e0a3724dd5ed67b34f412 Mon Sep 17 00:00:00 2001 From: Sarah Bradley Date: Sat, 16 Dec 2023 21:15:14 -0800 Subject: Network Oneko position! --- NetServer.cs | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) (limited to 'NetServer.cs') diff --git a/NetServer.cs b/NetServer.cs index a0910ba..c2c626a 100644 --- a/NetServer.cs +++ b/NetServer.cs @@ -51,12 +51,14 @@ class Server if (info.Type == PacketType.OnekoSpritesheet) user.SpriteSheet = dataReader.GetRemainingBytes(); else if (info.Type == PacketType.Username) user.Username = dataReader.GetString(64); - if (user.ExchangedData && !user.sentId) { - NetDataWriter writer = new(); + NetDataWriter writer = new(); + + if (user.ExchangedData && !user.Initialized) { //Send ID + writer.ResetWithInfo(new PacketInfo(PacketType.UserId, -1)); writer.Put(user.Id); fromPeer.Send(writer, DeliveryMethod.ReliableUnordered); - user.sentId = true; + user.Initialized = true; Console.WriteLine($"{fromPeer.EndPoint} is {user.Username}!"); @@ -83,6 +85,15 @@ class Server toSend.Peer.Send(writer, DeliveryMethod.ReliableUnordered); } } + + if (info.Type == PacketType.OnekoTargetPosition || info.Type == PacketType.MousePosition) { + writer.ResetWithInfo(new PacketInfo(info.Type, fromPeer.Id)); + writer.Put(dataReader.GetRemainingBytes()); + foreach (ServerUser toSend in users.Values) { + if (!toSend.ExchangedData || toSend == user) continue; + toSend.Peer.Send(writer, DeliveryMethod); + } + } }; Console.WriteLine("Server Initialized!"); @@ -103,7 +114,6 @@ class ServerUser(int id, NetPeer peer) : User(id), IDisposable { //Network public readonly NetPeer Peer = peer; - public bool sentId = false; public void Dispose() { -- cgit