private @Nonnull AxisAlignedBB getHooverBounds() {
if (hooverBounds == NULL_AABB) {
double killerJoeHooverXpHeight = KillerJoeConfig.killerJoeHooverXpHeight.get();
double killerJoeHooverXpLength = KillerJoeConfig.killerJoeHooverXpLength.get();
double killerJoeHooverXpWidth = KillerJoeConfig.killerJoeHooverXpWidth.get();
BoundingBox bb = new BoundingBox(getLocation());
Vector3d min = bb.getMin();
Vector3d max = bb.getMax();
max.y += killerJoeHooverXpHeight;
min.y -= killerJoeHooverXpHeight;
EnumFacing facingDir = facing;
if (ForgeDirectionOffsets.isPositiveOffset(facingDir)) {
max.add(ForgeDirectionOffsets.offsetScaled(facingDir, killerJoeHooverXpLength));
min.add(ForgeDirectionOffsets.forDir(facingDir));
} else {
min.add(ForgeDirectionOffsets.offsetScaled(facingDir, killerJoeHooverXpLength));
max.add(ForgeDirectionOffsets.forDir(facingDir));
}
if (facingDir.getFrontOffsetX() == 0) {
min.x -= killerJoeHooverXpWidth * 2;
max.x += killerJoeHooverXpWidth * 2;
} else {
min.z -= killerJoeHooverXpWidth * 2;
max.z += killerJoeHooverXpWidth * 2;
}
hooverBounds = new AxisAlignedBB(min.x, min.y, min.z, max.x, max.y, max.z);
}
return hooverBounds;
}