public void CollideCircleCircle(int entityOne, Vector3 positionOne, ComponentCollisionCircle circleOne, int entityTwo, Vector3 positionTwo, ComponentCollisionCircle circleTwo)
        {
            float diffX = positionOne.X - positionTwo.X;
            float diffY = positionOne.Z - positionTwo.Z;

            float minDistance = circleOne.Radius() + circleTwo.Radius();

            float distance = (float)Math.Sqrt(Math.Pow(diffX, 2) + Math.Pow(diffY, 2));

            if (distance < minDistance)
            {
                collisionManager.CollisionDetected(entities[entityOne], entities[entityTwo]);
            }
        }
        public void CollideCircleSquare(int entityOne, Vector3 positionOne, ComponentCollisionCircle circle, int entityTwo, Vector3 positionTwo, ComponentCollisionSquare square)
        {
            float circleX  = positionOne.X;
            float circleY  = positionOne.Z;
            float rectMinX = positionTwo.X - (square.Width() / 2);
            float rectMaxX = positionTwo.X + (square.Width() / 2);
            float rectMinY = positionTwo.Z - (square.Height() / 2);
            float rectMaxY = positionTwo.Z + (square.Height() / 2);

            float nearestX = Math.Min(rectMaxX, Math.Max(circleX, rectMinX));
            float nearestY = Math.Min(rectMaxY, Math.Max(circleY, rectMinY));
            //float nearestX = Math.Max(positionTwo.X + (square.Width() / 2), Math.Min(positionOne.X, positionTwo.X - (square.Width() / 2)));
            //float nearestY = Math.Max(positionTwo.Z + (square.Height() / 2), Math.Min(positionOne.Z, positionTwo.Z - (square.Height() / 2)));

            float diffX = circleX - nearestX;
            float diffY = circleY - nearestY;

            float distance = (float)Math.Sqrt(Math.Pow(diffX, 2) + Math.Pow(diffY, 2));

            if (distance < circle.Radius())
            {
                collisionManager.CollisionDetected(entities[entityOne], entities[entityTwo]);
            }
        }