forked from cgvr/DeltaVR
		
	
		
			
				
	
	
		
			38 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
			
		
		
	
	
			38 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
using FishNet.Managing.Scened;
 | 
						|
using FishNet.Managing.Server;
 | 
						|
using FishNet.Object.Helping;
 | 
						|
using FishNet.Transporting;
 | 
						|
using UnityEngine;
 | 
						|
 | 
						|
namespace FishNet.Serializing.Helping
 | 
						|
{
 | 
						|
 | 
						|
    internal static class Broadcasts
 | 
						|
    {
 | 
						|
        /// <summary>
 | 
						|
        /// Writes a broadcast to writer.
 | 
						|
        /// </summary>
 | 
						|
        /// <typeparam name="T"></typeparam>
 | 
						|
        /// <param name="writer"></param>
 | 
						|
        /// <param name="message"></param>
 | 
						|
        /// <param name="channel"></param>
 | 
						|
        /// <returns></returns>
 | 
						|
        internal static PooledWriter WriteBroadcast<T>(PooledWriter writer, T message, Channel channel)
 | 
						|
        {
 | 
						|
            writer.WritePacketId(PacketId.Broadcast);
 | 
						|
            writer.WriteUInt16(typeof(T).FullName.GetStableHash16()); //muchlater codegen this to pass in hash. use technique similar to rpcs to limit byte/shorts.            
 | 
						|
            //Write data to a new writer.
 | 
						|
            PooledWriter dataWriter = WriterPool.GetWriter();
 | 
						|
            dataWriter.Write<T>(message);
 | 
						|
            //Write length of data.
 | 
						|
            writer.WriteLength(dataWriter.Length);
 | 
						|
            //Write data.
 | 
						|
            writer.WriteArraySegment(dataWriter.GetArraySegment());
 | 
						|
 | 
						|
            dataWriter.Dispose();
 | 
						|
 | 
						|
            return writer;
 | 
						|
        }
 | 
						|
    }
 | 
						|
 | 
						|
} |