CultLib/src/GameCult.Networking/NetPeerExtensions.cs

32 lines
1.3 KiB
C#
Raw Normal View History

2026-04-18 06:04:39 +01:00
using LiteNetLib;
namespace GameCult.Networking
{
/// <summary>
/// Adds MessagePack-based send helpers for <see cref="NetPeer"/>.
/// </summary>
2026-04-18 06:04:39 +01:00
public static class NetPeerExtensions
{
/// <summary>
/// Serializes and sends a message using reliable ordered delivery.
/// </summary>
/// <typeparam name="T">The concrete message type.</typeparam>
/// <param name="peer">The peer to send through.</param>
/// <param name="message">The message to serialize and send.</param>
2026-04-18 06:04:39 +01:00
public static void Send<T>(this NetPeer peer, T message) where T : Message
{
new LiteNetLibTransportConnection(peer).SendLegacy(message);
2026-04-18 06:04:39 +01:00
}
/// <summary>
/// Serializes and sends a modern CultNet schema-v0 message using reliable ordered delivery.
/// </summary>
/// <typeparam name="T">The concrete schema-v0 message type.</typeparam>
/// <param name="peer">The peer to send through.</param>
/// <param name="message">The schema-v0 message to serialize and send.</param>
public static void SendCultNet<T>(this NetPeer peer, T message) where T : ICultNetSchemaMessage
{
new LiteNetLibTransportConnection(peer).SendSchema(message);
}
2026-04-18 06:04:39 +01:00
}
}