using LiteNetLib.Utils; namespace Syntriax.Engine.Network; public class LiteNetLibClient : LiteNetLibCommunicatorBase, INetworkCommunicatorClient { private readonly NetDataWriter netDataWriter = new(); public INetworkCommunicatorClient Connect(string address, int port, string? password = null) { if (!IsInUniverse) throw new($"{nameof(LiteNetLibClient)} must be in an universe to connect"); Manager.Start(); Manager.Connect(address, port, password ?? string.Empty); return this; } public INetworkCommunicatorClient SendToServer(T packet) where T : class, new() { netDataWriter.Reset(); netPacketProcessor.Write(netDataWriter, packet); Manager.FirstPeer.Send(netDataWriter, LiteNetLib.DeliveryMethod.ReliableOrdered); return this; } }