private AxisAlignedBB getSuckingBox(ForgeDirection orientation, int distance) {
if (orientation == ForgeDirection.UNKNOWN) {
return null;
}
Position p1 = new Position(container.xCoord, container.yCoord, container.zCoord, orientation);
Position p2 = new Position(container.xCoord, container.yCoord, container.zCoord, orientation);
switch (orientation) {
case EAST:
p1.x += distance;
p2.x += 1 + distance;
break;
case WEST:
p1.x -= distance - 1;
p2.x -= distance;
break;
case UP:
case DOWN:
p1.x += distance + 1;
p2.x -= distance;
p1.z += distance + 1;
p2.z -= distance;
break;
case SOUTH:
p1.z += distance;
p2.z += distance + 1;
break;
case NORTH:
default:
p1.z -= distance - 1;
p2.z -= distance;
break;
}
switch (orientation) {
case EAST:
case WEST:
p1.y += distance + 1;
p2.y -= distance;
p1.z += distance + 1;
p2.z -= distance;
break;
case UP:
p1.y += distance + 1;
p2.y += distance;
break;
case DOWN:
p1.y -= distance - 1;
p2.y -= distance;
break;
case SOUTH:
case NORTH:
default:
p1.y += distance + 1;
p2.y -= distance;
p1.x += distance + 1;
p2.x -= distance;
break;
}
Position min = p1.min(p2);
Position max = p1.max(p2);
return AxisAlignedBB.getBoundingBox(min.x, min.y, min.z, max.x, max.y, max.z);
}