Jump to content

Recommended Posts

Posted

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. 

 

Guest
This topic is now closed to further replies.

Announcements



×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.