package engine.CollisionEngine;

import engine.math.Vector3f;
import engine.objects.Building;

import java.awt.*;
import java.awt.geom.Line2D;

public class CollisionManager {
    public static boolean CollisionDetected(Building building, Line2D travelLine, float charHeight, float charY){
        Rectangle.Float boundsRect = new Rectangle.Float();
        Vector3f topLeft = new Vector3f(building.loc.x - building.getBounds().getHalfExtents().x,building.loc.y,building.loc.z - building.getBounds().getHalfExtents().y);

        boundsRect.setRect(topLeft.x, topLeft.z, building.getBounds().getHalfExtents().x * 2,building.getBounds().getHalfExtents().y * 2);
        if(travelLine.intersects(boundsRect)){
            //collided with building
            for(Mesh mesh : building.buildingMeshes) {
                if (mesh.MeshCollides(travelLine,charHeight, charY)) {
                    //ChatManager.chatSystemInfo(pc, "Collision Detected");
                    //MovementManager.movement(msg, pc);
                    return true;
                }
            }
        }
        return false;
    }
}
