public override void Deserialize(NetworkingStream stream)
{
if ((IsOwner && !serverIsAuthority) || (OwningNetWorker.IsServer && serverIsAuthority))
return;
stream.ResetByteReadIndex();
targetFrame = stream.FrameIndex;
targetPosition = GetNextSerializedTransform(serializePosition, stream, targetPosition);
targetRotation = GetNextSerializedTransform(serializeRotation, stream, targetRotation);
targetScale = GetNextSerializedTransform(serializeScale, stream, targetScale);
if (Properties == null)
return;
foreach (NetRef<object> obj in Properties)
{
// Only allow the server to replicate this variable across the network
if (obj.serverOnly && !OwningNetWorker.IsServer)
{
ObjectMapper.Map(obj.Value.GetType(), stream);
continue;
}
if (!interpolateFloatingValues || obj.IgnoreLerp || !DataInitialized)
{
if (obj.Assign(ObjectMapper.Map(obj.Value.GetType(), stream)))
obj.Callback(this, true);
}
else
obj.Lerp(ObjectMapper.Map(obj.Value.GetType(), stream));
}
}