diff options
| author | Sarah Bradley <git@sarahduck.ca> | 2023-12-16 21:15:14 -0800 |
|---|---|---|
| committer | Sarah Bradley <git@sarahduck.ca> | 2023-12-16 21:15:14 -0800 |
| commit | 217c93639fc6dee3222e0a3724dd5ed67b34f412 (patch) | |
| tree | 8a1373b2bf41e329b78d888aabea59745546aab8 /NetServer.cs | |
| parent | dbba03fe210a80f7d89d3ad021ec901a9196a537 (diff) | |
Network Oneko position!
Diffstat (limited to 'NetServer.cs')
| -rw-r--r-- | NetServer.cs | 18 |
1 files changed, 14 insertions, 4 deletions
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() { |
