private void applyWorldSpaceSteering(ref Vector3 _wsSteerDir, ref Vector3 _wsUpDir)
    {
        Vector3 v = wsSteerDir;

        wsSteerDir = _wsSteerDir;
        wsUpDir    = _wsUpDir;
        targetSpin = 0f;
        if (wsSteerDir != Vector3.zero)
        {
            wsLastSteerDir = wsSteerDir;
            if (isInTorpedoState)
            {
                float num = LocomotionUtils.SignedAngle(v, wsSteerDir);
                if (num > 0f)
                {
                    targetSpin = 180f;
                }
            }
        }
        Broadcaster.BroadcastOnSteerDirectionEvent(wsSteerDir);
    }