public RayIntersect fireRay(double x, double z, double angle){

        double tan = math.tan(angle);

        int MAX_LOOPS = (int)(Math.ceil(raycaster.getCamera().getViewDistance()) + 1);

        RayIntersect vert = fireVerticleRay(x, z, angle, tan, MAX_LOOPS);
        RayIntersect horiz = fireHorizontalRay(x, z, angle, tan, MAX_LOOPS);

        boolean vertValid = validRay(vert);
        boolean horizValid = validRay(horiz);

        if(vertValid == false){
            if(horizValid == true) {
                return horiz;
            }else{
                return null;
            }
        }
        if(horizValid == false){
            return vert;
        }

        if(vert.getDistance() < horiz.getDistance()){
            return vert;
        }
        return horiz;

    }