using Microsoft.Xna.Framework;

namespace LunaLightXMG
{
    public class CollisionManager
    {
        // Method to check if a position is colliding with any platform
        public static bool IsColliding(Vector2 newPosition, BoundingBox boundingBox, Platform[] platforms)
        {
            Rectangle newBounds = new Rectangle((int)newPosition.X, (int)newPosition.Y, boundingBox.Bounds.Width, boundingBox.Bounds.Height);
            foreach (var platform in platforms)
            {
                if (newBounds.Intersects(platform.BoundingBox.Bounds))
                {
                    return true;
                }
            }
            return false;
        }

        // Method to check if a position is colliding with any platform and return the colliding platform
        public static Platform GetCollidingPlatform(Vector2 newPosition, BoundingBox boundingBox, Platform[] platforms)
        {
            Rectangle newBounds = new Rectangle((int)newPosition.X, (int)newPosition.Y, boundingBox.Bounds.Width, boundingBox.Bounds.Height);
            foreach (var platform in platforms)
            {
                if (newBounds.Intersects(platform.BoundingBox.Bounds))
                {
                    return platform;
                }
            }
            return null;
        }

        // Method to check if a position is colliding with any wall
        public static bool WallCheck(Vector2 position, BoundingBox boundingBox, Platform[] platforms)
        {
            if (IsColliding(position + new Vector2(1, 0), boundingBox, platforms) || IsColliding(position + new Vector2(-1, 0), boundingBox, platforms))
            {
                return true;
            }
            return false;
        }
    }
}
