using LiteNetLib.Utils; namespace Syntriax.Engine.Network.Abstract; public interface INetworkEntity { event OnNetworkIdChangedDelegate? OnNetworkIdChanged; uint NetworkId { get; set; } delegate void OnNetworkIdChangedDelegate(INetworkEntity sender, uint previousId); delegate void PacketReceivedDelegate(INetworkEntity entity, object packet); void RegisterPacketListener(PacketReceivedDelegate onPacketReceived) where T : INetSerializable; void UnregisterPacketListener(PacketReceivedDelegate onPacketReceived) where T : INetSerializable; void SendPacket(T packet) where T : INetSerializable; }