// Update is called once per frame
    void FixedUpdate()
    {
        //desired_angle =
        Vector3 vecToSun             = CalculatedSolarDir();
        Vector3 desiredSolarPanelDir = Vector3.ProjectOnPlane(vecToSun, transform.right);
        Vector3 desiredRotateDir     = Vector3.ProjectOnPlane(vecToSun, transform.up);

        Debug.DrawRay(transform.position, desiredSolarPanelDir * 3, Color.magenta);
        Debug.DrawRay(transform.position, desiredRotateDir * 3, Color.green);

        //if (showParticles)
        //{
        //    AnimateThrusters(thrusterClockwise, true);
        //    AnimateThrusters(thrusterCounterClockwise, true);
        //}
        //else
        //{
        //    AnimateThrusters(thrusterClockwise, false);
        //    AnimateThrusters(thrusterCounterClockwise, false);
        //}

        //Debug.DrawRay(transform.position, (sun.position - transform.position).normalized * 5f, Color.white);

        //if (rotateClockwise)
        //{
        //    rgbd.AddRelativeTorque(transform.up, ForceMode.Acceleration);
        //}
        //else
        //{
        //    rgbd.AddRelativeTorque(-transform.up, ForceMode.Acceleration);
        //}
        if (!disableRotate)
        {
            HandleRotate(desiredRotateDir);
        }
        if (!disableSolarPanel)
        {
            HandleSolarPanels(desiredSolarPanelDir);
        }
        socket.FillSendBuffer <float>("actual_angle", Vector3.SignedAngle(transform.forward, Vector3.right, Vector3.up));
        socket.FillSendBuffer <float>("desired_angle", Vector3.SignedAngle(desiredRotateDir, Vector3.right, Vector3.up));
        socket.SendBuffer();
    }