I have made a directional block, which isn't a full cube. I also have set up two bounding boxes. But I have an issue with part where the game should pick the right bounding box according to the blocks current facing. I used BlockLever as an example. There is a problem with Enum... kind of stuff. How to fix it?
public class Ventilator extends DBStone {
public static final PropertyEnum<Ventilator.EnumOrientation> FACING = PropertyEnum.<Ventilator.EnumOrientation>create("facing", BlockLever.EnumOrientation.class);
public static final AxisAlignedBB VENT_EW_AABB = new AxisAlignedBB(0.3125D, 0, 0, 0.6875D, 1, 1);
public static final AxisAlignedBB VENT_NS_AABB = new AxisAlignedBB(0, 0, 0.3125D, 1, 1, 0.6875D);
public Ventilator(String name) {
super(name);
setDefaultState(this.blockState.getBaseState().withProperty(FACING, EnumFacing.NORTH));
}
//BoundingBox:
@Override
public boolean isFullCube(IBlockState state)
{
return false;
}
@Override
public boolean isOpaqueCube(IBlockState state) {
return false;
}
@Override
public AxisAlignedBB getBoundingBox(IBlockState state, IBlockAccess source, BlockPos pos) {
switch ((Ventilator.PropertyDirection)state.getValue(FACING))
{
default:
case EAST:
case WEST:
return VENT_EW_AABB;
case SOUTH:
case NORTH:
return VENT_NS_AABB;
}
}
P.S. The file "DBStone" creates normal directional block in my mod, if that is confusing.