Beispiel #1
0
 public override void Serialize(NetworkBinaryWriter writer, SerializationModeFlags mode)
 {
     #if NETWORK_PROFILING
     using (new NetworkProfilingScope(this))
     #endif
     {
         base.Serialize(writer, mode);
         if ((mode & SerializationModeFlags.VaryingDataFromServer) != 0)
         {
             if (_hoverAroundPos.HasValue)
                 writer.WriteHalf(_hoverAroundPos.Value);
             else
                 writer.WriteHalf(new Vector2(float.NaN));
         }
     }
 }
Beispiel #2
0
 public override void Serialize(NetworkBinaryWriter writer, SerializationModeFlags mode)
 {
     #if NETWORK_PROFILING
     using (new NetworkProfilingScope(this))
     #endif
         checked
         {
             // Note: Gob.{Pos,Rotation,Move,RotationSpeed} are computed from Host
             // and don't need to be serialized except at birth.
             var baseSerializationMode = mode.HasFlag(SerializationModeFlags.ConstantDataFromServer)
                 ? mode
                 : mode & ~SerializationModeFlags.VaryingDataFromServer;
             base.Serialize(writer, baseSerializationMode);
             if (mode.HasFlag(SerializationModeFlags.ConstantDataFromServer))
             {
                 var hostID = Host != null ? Host.ID : Gob.INVALID_ID;
                 writer.Write((short)hostID);
                 writer.Write((byte)HostBoneIndex);
             }
             if (mode.HasFlag(SerializationModeFlags.VaryingDataFromServer))
             {
                 writer.Write((byte)_wallPunchPosesForClient.Count);
                 foreach (var wallPunchPos in _wallPunchPosesForClient)
                     writer.WriteHalf(wallPunchPos);
                 _wallPunchPosesForClient.Clear();
             }
         }
 }