This repository has been archived on 2025-06-18. You can view files and clone it, but cannot push or open issues or pull requests.
Files
skolavdf/phr/StickGame/Assets/FishNet/Runtime/Serializing/Helping/Broadcasts.cs
2024-03-24 22:21:16 +01:00

33 lines
1.1 KiB
C#

using FishNet.Managing;
using FishNet.Transporting;
using GameKit.Utilities;
namespace FishNet.Serializing.Helping
{
internal static class Broadcasts
{
/// <summary>
/// Writes a broadcast to writer.
/// </summary>
internal static PooledWriter WriteBroadcast<T>(NetworkManager networkManager, PooledWriter writer, T message, ref Channel channel)
{
writer.WritePacketId(PacketId.Broadcast);
writer.WriteUInt16(typeof(T).FullName.GetStableHashU16());
//Write data to a new writer.
PooledWriter dataWriter = WriterPool.Retrieve();
dataWriter.Write<T>(message);
//Write length of data.
writer.WriteLength(dataWriter.Length);
//Write data.
writer.WriteArraySegment(dataWriter.GetArraySegment());
//Update channel to reliable if needed.
networkManager.TransportManager.CheckSetReliableChannel(writer.Length, ref channel);
dataWriter.Store();
return writer;
}
}
}