- return Intersection(box, M, reference, col);
+
+ bool any = false;
+ for (Chunk &cur_chunk : chunks) {
+ if (manhattan_radius(cur_chunk.Position() - reference) > 1) {
+ // chunk is not one of the 3x3x3 surrounding the entity
+ // since there's no entity which can extent over 16 blocks, they can be skipped
+ continue;
+ }
+ if (cur_chunk.Intersection(e, M, cur_chunk.Transform(reference), col)) {
+ any = true;
+ }
+ }
+ return any;