BlockBarrel.java 2.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586
  1. package me.km.blocks;
  2. import java.util.List;
  3. import javax.annotation.Nullable;
  4. import static net.minecraft.block.Block.FULL_BLOCK_AABB;
  5. import net.minecraft.block.material.Material;
  6. import net.minecraft.block.state.BlockFaceShape;
  7. import net.minecraft.block.state.IBlockState;
  8. import net.minecraft.creativetab.CreativeTabs;
  9. import net.minecraft.entity.Entity;
  10. import net.minecraft.util.EnumFacing;
  11. import net.minecraft.util.math.AxisAlignedBB;
  12. import net.minecraft.util.math.BlockPos;
  13. import net.minecraft.world.IBlockAccess;
  14. import net.minecraft.world.World;
  15. public class BlockBarrel extends BlockBase
  16. {
  17. protected static final AxisAlignedBB AABB_LEGS = new AxisAlignedBB(0.0D, 0.0625D, 0.0D, 1.0D, 0.875D, 1.0D);
  18. protected static final AxisAlignedBB AABB_WALL_NORTH = new AxisAlignedBB(0.0D, 0.0D, 0.0D, 1.0D, 1.0D, 0.125D);
  19. protected static final AxisAlignedBB AABB_WALL_SOUTH = new AxisAlignedBB(0.0D, 0.0D, 0.875D, 1.0D, 1.0D, 1.0D);
  20. protected static final AxisAlignedBB AABB_WALL_EAST = new AxisAlignedBB(0.875D, 0.0D, 0.0D, 1.0D, 1.0D, 1.0D);
  21. protected static final AxisAlignedBB AABB_WALL_WEST = new AxisAlignedBB(0.0D, 0.0D, 0.0D, 0.125D, 1.0D, 1.0D);
  22. public BlockBarrel(String name, String local)
  23. {
  24. super(Material.WOOD, name, local);
  25. super.setCreativeTab(CreativeTabs.DECORATIONS);
  26. }
  27. @Override
  28. public void addCollisionBoxToList(IBlockState state, World w, BlockPos pos, AxisAlignedBB eBox, List<AxisAlignedBB> collidingBoxes, @Nullable Entity ent, boolean p_185477_7_)
  29. {
  30. addCollisionBoxToList(pos, eBox, collidingBoxes, AABB_LEGS);
  31. addCollisionBoxToList(pos, eBox, collidingBoxes, AABB_WALL_WEST);
  32. addCollisionBoxToList(pos, eBox, collidingBoxes, AABB_WALL_NORTH);
  33. addCollisionBoxToList(pos, eBox, collidingBoxes, AABB_WALL_EAST);
  34. addCollisionBoxToList(pos, eBox, collidingBoxes, AABB_WALL_SOUTH);
  35. }
  36. @Override
  37. public AxisAlignedBB getBoundingBox(IBlockState state, IBlockAccess source, BlockPos pos)
  38. {
  39. return FULL_BLOCK_AABB;
  40. }
  41. @Override
  42. public boolean isOpaqueCube(IBlockState state)
  43. {
  44. return false;
  45. }
  46. @Override
  47. public boolean isFullCube(IBlockState state)
  48. {
  49. return false;
  50. }
  51. /*@Override
  52. public Item getItemDropped(IBlockState state, Random rand, int fortune)
  53. {
  54. return Items.CAULDRON;
  55. }
  56. @Override
  57. public ItemStack getItem(World worldIn, BlockPos pos, IBlockState state)
  58. {
  59. return new ItemStack(Items.CAULDRON);
  60. }*/
  61. @Override
  62. public boolean isPassable(IBlockAccess worldIn, BlockPos pos)
  63. {
  64. return true;
  65. }
  66. @Override
  67. public BlockFaceShape getBlockFaceShape(IBlockAccess w, IBlockState state, BlockPos pos, EnumFacing face)
  68. {
  69. if(face == EnumFacing.UP)
  70. {
  71. return BlockFaceShape.BOWL;
  72. }
  73. return face == EnumFacing.DOWN ? BlockFaceShape.UNDEFINED : BlockFaceShape.SOLID;
  74. }
  75. }