public override void Setup(NetWorker owningSocket, bool isOwner, ulong networkId, ulong ownerId, bool isSceneObject = false)
{
base.Setup(owningSocket, isOwner, networkId, ownerId, isSceneObject);
bool foundServerAuthority = false, clientPrediction = false;
foreach (NetworkedMonoBehavior behavior in GetComponents<NetworkedMonoBehavior>())
{
if (behavior.serverIsAuthority)
{
foundServerAuthority = true;
clientPrediction = behavior.clientSidePrediction;
break;
}
}
if (rigidbodyRef != null)
{
if ((!OwningNetWorker.IsServer && foundServerAuthority && !clientPrediction) || (!IsOwner && !foundServerAuthority))
{
rigidbodyRef.constraints = RigidbodyConstraints.FreezeAll;
rigidbodyRef.useGravity = false;
}
}
if (isPlayer && OwningNetWorker.IsServer)
serverTargetPlayer = OwningPlayer;
if (turnedOffCollider)
{
if ((OwningNetWorker.IsServer && foundServerAuthority) || (IsOwner && !foundServerAuthority))
{
turnedOffCollider = false;
colliderRef.enabled = true;
}
}
}