### Question:
AABBs { @SuppressWarnings("unchecked") public static List<BlockPos>[] around(AABBd aabb, Vector3f movement) { List<BlockPos>[] offsets = new List[3]; for (int i = 0; i < offsets.length; i++) { offsets[i] = new ArrayList<>(); } int directionX = movement.x == -0 ? 0 : Float.compare(movement.x, 0), directionY = movement.y == -0 ? 0 : Float.compare(movement.y, 0), directionZ = movement.z == -0 ? 0 : Float.compare(movement.z, 0); int minX = (int) Math.floor(aabb.minX), minY = (int) Math.floor(aabb.minY), minZ = (int) Math.floor(aabb.minZ), maxX = (int) Math.floor(aabb.maxX), maxY = (int) Math.floor(aabb.maxY), maxZ = (int) Math.floor(aabb.maxZ); if (directionX != 0) { double src = directionX == -1 ? minX : directionX == 1 ? maxX : 0 + movement.x; for (double i = minZ; i <= maxZ; i++) for (double j = minY; j <= maxY; j++) offsets[0].add(BlockPos.of((int) Math.floor(src), (int) Math.floor(j), (int) Math.floor(i))); } if (directionY != 0) { double src = directionY == -1 ? minY : directionY == 1 ? maxY : 0 + movement.y; for (double i = minZ; i <= maxZ; i++) for (double j = minX; j <= maxX; j++) offsets[1].add(BlockPos.of((int) Math.floor(j), (int) Math.floor(src), (int) Math.floor(i))); } if (directionZ != 0) { double src = directionZ == -1 ? minZ : directionZ == 1 ? maxZ : 0 + movement.z; for (double i = minY; i <= maxY; i++) for (double j = minX; j <= maxX; j++) offsets[2].add(BlockPos.of((int) Math.floor(j), (int) Math.floor(i), (int) Math.floor(src))); } return offsets; }  @SuppressWarnings("unchecked") static List<BlockPos>[] around(AABBd aabb, Vector3f movement);  }### Answer:
@Test void xNotCrossing() { List<BlockPos>[] around = AABBs.around(new AABBd(0.8, 0, -0.1, 1.2, 1, 0.8), new Vector3f(0.1F, 0, 0)); Assertions.assertEquals(4, around[0].size()); Assertions.assertEquals(0, around[1].size()); Assertions.assertEquals(0, around[2].size()); System.out.println(around[0]); }