void activateSideSprings(Rigidbody2D collidedRigidbody)
    {
        SpringJoint2D springJoint1 = sideRigidBody1.gameObject.GetComponent <SpringJoint2D> ();
        SpringJoint2D springJoint2 = sideRigidBody2.gameObject.GetComponent <SpringJoint2D> ();

        if (stackingToPlate)
        {
            //the pancake is stacking to plate, need to adjust spring attachment parameters (dafaults are for other pancakes).
            springJoint1.connectedAnchor = new Vector2(-1.0f * sideSpringPlatePlacement, 0);
            springJoint1.dampingRatio    = springPancakeToPlateDamping;
            springJoint1.frequency       = springPancakeToPlateFrequency;
            springJoint2.connectedAnchor = new Vector2(sideSpringPlatePlacement, 0);
            springJoint2.dampingRatio    = springPancakeToPlateDamping;
            springJoint2.frequency       = springPancakeToPlateFrequency;
        }
        if (flippedAttached)
        {
            Vector2 v1 = springJoint1.connectedAnchor;
            springJoint1.connectedAnchor = new  Vector2(-1.0f * v1[0], 0);
            Vector2 v2 = springJoint2.connectedAnchor;
            springJoint2.connectedAnchor = new  Vector2(-1.0f * v2[0], 0);
        }
        if (stackingToPlate)
        {
            springJoint1.connectedBody = collidedRigidbody;
            springJoint1.enabled       = true;
            springJoint2.connectedBody = collidedRigidbody;
            springJoint2.enabled       = true;
        }
        else
        {
            PancakeBehaviourScript script = collidedRigidbody.gameObject.GetComponentInParent <PancakeBehaviourScript> ();
            bool pancakeBelowIsFlipped    = script.isFlippedAttached();
            if (flippedAttached && pancakeBelowIsFlipped)
            {
                springJoint1.connectedBody = script.getSideRigidBody1();
                springJoint2.connectedBody = script.getSideRigidBody2();
            }
            else if (flippedAttached || pancakeBelowIsFlipped)
            {
                //one of the pancakes is flipped, I need to attach side 1 to side 2 and vice versa
                springJoint1.connectedBody = script.getSideRigidBody2();
                springJoint2.connectedBody = script.getSideRigidBody1();
            }
            else
            {
                //nothing is flipped:
                springJoint1.connectedBody = script.getSideRigidBody1();
                springJoint2.connectedBody = script.getSideRigidBody2();
            }
            springJoint1.enabled = true;
            springJoint2.enabled = true;
        }
    }
    public void reConnectSpringsBasedOnThisPancake(Rigidbody2D reAttachmentBase)
    {
        SpringJoint2D[] ownSpringJoints  = rigidBodyOfInterest.gameObject.GetComponents <SpringJoint2D> ();
        SpringJoint2D[] baseSpringJoints = reAttachmentBase.gameObject.GetComponents <SpringJoint2D> ();
        for (int i = 0; i < 2; ++i)
        {
            Vector2 v = baseSpringJoints [i].connectedAnchor;
            ownSpringJoints [i].connectedAnchor = new Vector2(v [0], v [1]);
            ownSpringJoints [i].dampingRatio    = baseSpringJoints [i].dampingRatio;
            ownSpringJoints [i].frequency       = baseSpringJoints [i].frequency;
            ownSpringJoints [i].distance        = baseSpringJoints [i].distance;
            ownSpringJoints[i].connectedBody    = baseSpringJoints[i].connectedBody;
        }
        PancakeBehaviourScript scriptOfBase = reAttachmentBase.gameObject.GetComponentInParent <PancakeBehaviourScript> ();

        if (scriptOfBase.isFlippedAttached())
        {
            flippedAttached = true;
        }
        if (scriptOfBase.isStackingToPlate())
        {
            stackingToPlate = true;
        }
        SpringJoint2D ownSideJoint1  = sideRigidBody1.gameObject.GetComponent <SpringJoint2D> ();
        SpringJoint2D ownSideJoint2  = sideRigidBody2.gameObject.GetComponent <SpringJoint2D> ();
        SpringJoint2D baseSideJoint1 = scriptOfBase.getSideRigidBody1().gameObject.GetComponent <SpringJoint2D> ();
        SpringJoint2D baseSideJoint2 = scriptOfBase.getSideRigidBody2().gameObject.GetComponent <SpringJoint2D> ();

        Vector2 v1 = baseSideJoint1.connectedAnchor;

        ownSideJoint1.connectedAnchor = new Vector2(v1 [0], v1 [1]);
        Vector2 v2 = baseSideJoint2.connectedAnchor;

        ownSideJoint2.connectedAnchor = new Vector2(v2 [0], v2 [1]);
        ownSideJoint1.dampingRatio    = baseSideJoint1.dampingRatio;
        ownSideJoint2.dampingRatio    = baseSideJoint2.dampingRatio;
        ownSideJoint1.frequency       = baseSideJoint1.frequency;
        ownSideJoint2.frequency       = baseSideJoint2.frequency;
        ownSideJoint1.distance        = baseSideJoint1.distance;
        ownSideJoint2.distance        = baseSideJoint2.distance;
        ownSideJoint1.connectedBody   = baseSideJoint1.connectedBody;
        ownSideJoint2.connectedBody   = baseSideJoint2.connectedBody;
    }