package me.km.blocks; import java.util.List; import javax.annotation.Nullable; import static net.minecraft.block.Block.FULL_BLOCK_AABB; import net.minecraft.block.material.Material; import net.minecraft.block.state.BlockFaceShape; import net.minecraft.block.state.IBlockState; import net.minecraft.creativetab.CreativeTabs; import net.minecraft.entity.Entity; import net.minecraft.util.EnumFacing; import net.minecraft.util.math.AxisAlignedBB; import net.minecraft.util.math.BlockPos; import net.minecraft.world.IBlockAccess; import net.minecraft.world.World; public class BlockBarrel extends BlockBase { protected static final AxisAlignedBB AABB_LEGS = new AxisAlignedBB(0.0D, 0.0625D, 0.0D, 1.0D, 0.875D, 1.0D); protected static final AxisAlignedBB AABB_WALL_NORTH = new AxisAlignedBB(0.0D, 0.0D, 0.0D, 1.0D, 1.0D, 0.125D); protected static final AxisAlignedBB AABB_WALL_SOUTH = new AxisAlignedBB(0.0D, 0.0D, 0.875D, 1.0D, 1.0D, 1.0D); protected static final AxisAlignedBB AABB_WALL_EAST = new AxisAlignedBB(0.875D, 0.0D, 0.0D, 1.0D, 1.0D, 1.0D); protected static final AxisAlignedBB AABB_WALL_WEST = new AxisAlignedBB(0.0D, 0.0D, 0.0D, 0.125D, 1.0D, 1.0D); public BlockBarrel(String name, String local) { super(Material.WOOD, name, local); super.setCreativeTab(CreativeTabs.DECORATIONS); } @Override public void addCollisionBoxToList(IBlockState state, World w, BlockPos pos, AxisAlignedBB eBox, List collidingBoxes, @Nullable Entity ent, boolean p_185477_7_) { addCollisionBoxToList(pos, eBox, collidingBoxes, AABB_LEGS); addCollisionBoxToList(pos, eBox, collidingBoxes, AABB_WALL_WEST); addCollisionBoxToList(pos, eBox, collidingBoxes, AABB_WALL_NORTH); addCollisionBoxToList(pos, eBox, collidingBoxes, AABB_WALL_EAST); addCollisionBoxToList(pos, eBox, collidingBoxes, AABB_WALL_SOUTH); } @Override public AxisAlignedBB getBoundingBox(IBlockState state, IBlockAccess source, BlockPos pos) { return FULL_BLOCK_AABB; } @Override public boolean isOpaqueCube(IBlockState state) { return false; } @Override public boolean isFullCube(IBlockState state) { return false; } /*@Override public Item getItemDropped(IBlockState state, Random rand, int fortune) { return Items.CAULDRON; } @Override public ItemStack getItem(World worldIn, BlockPos pos, IBlockState state) { return new ItemStack(Items.CAULDRON); }*/ @Override public boolean isPassable(IBlockAccess worldIn, BlockPos pos) { return true; } @Override public BlockFaceShape getBlockFaceShape(IBlockAccess w, IBlockState state, BlockPos pos, EnumFacing face) { if(face == EnumFacing.UP) { return BlockFaceShape.BOWL; } return face == EnumFacing.DOWN ? BlockFaceShape.UNDEFINED : BlockFaceShape.SOLID; } }