using System; using System.Collections.Generic; using LiteNetLib; using Syntriax.Engine.Core; using Syntriax.Engine.Core.Abstract; namespace Pong.Network; public class NetworkClient : BehaviourOverride, INetworkClient { public EventBasedNetListener Listener { get; private set; } = null!; public NetManager Manager { get; private set; } = null!; public NetworkClient() { Priority = 10; Listener = new EventBasedNetListener(); Manager = new NetManager(Listener); } public void Connect(string address, int port, string? password = null) { Manager.Start(); Manager.Connect(address, port, password ?? string.Empty); } public void PollEvents() => Manager.PollEvents(); public void Stop() => Manager.Stop(); protected override void OnUpdate() => PollEvents(); protected override void OnFinalize() => Stop(); }