Advertisement
TastesLikeBleach

BlockBananaLog.java

Oct 31st, 2017
282
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.77 KB | None | 0 0
  1. package tasteslikebleach.tcm.blocks;
  2.  
  3. import java.util.Random;
  4. import net.minecraft.block.BlockLog;
  5. import net.minecraft.block.SoundType;
  6. import net.minecraft.block.material.Material;
  7. import net.minecraft.block.properties.IProperty;
  8. import net.minecraft.block.properties.PropertyEnum;
  9. import net.minecraft.block.state.BlockStateContainer;
  10. import net.minecraft.block.state.IBlockState;
  11. import net.minecraft.entity.EntityLivingBase;
  12. import net.minecraft.item.Item;
  13. import net.minecraft.item.ItemStack;
  14. import net.minecraft.util.EnumFacing;
  15. import net.minecraft.util.ResourceLocation;
  16. import net.minecraft.util.Rotation;
  17. import net.minecraft.util.math.BlockPos;
  18. import net.minecraft.world.World;
  19. import tasteslikebleach.tcm.Reference;
  20.  
  21. public class BlockBananaLog extends BlockLog {
  22. public static final PropertyEnum<EnumFacing.Axis> AXIS = PropertyEnum.create("axis", EnumFacing.Axis.class);
  23.  
  24. public BlockBananaLog(String unlocalizedName) {
  25. this.setSoundType(SoundType.WOOD);
  26. this.setHardness(2.0F);
  27. this.setDefaultState(this.blockState.getBaseState().withProperty(AXIS, EnumFacing.Axis.Y));
  28. this.setUnlocalizedName(unlocalizedName);
  29. this.setRegistryName(new ResourceLocation(Reference.MODID, unlocalizedName));
  30. }
  31. @Override
  32. public Item getItemDropped(IBlockState state, Random rand, int fortune){
  33. return Item.getItemFromBlock(this);
  34. }
  35. @Override
  36. protected BlockStateContainer createBlockState(){
  37. return new BlockStateContainer(this, new IProperty[] {AXIS});
  38. }
  39. @Override
  40. public IBlockState getStateForPlacement(World worldIn, BlockPos pos, EnumFacing facing, float hitX, float hitY, float hitZ, int meta, EntityLivingBase placer)
  41. {
  42. return this.getStateFromMeta(meta).withProperty(AXIS, fromFacingAxis(facing.getAxis()));
  43. }
  44.  
  45. @Override
  46. public IBlockState withRotation(IBlockState state, Rotation rot)
  47. {
  48. switch (rot)
  49. {
  50. case COUNTERCLOCKWISE_90:
  51. case CLOCKWISE_90:
  52.  
  53. switch ((EnumFacing.Axis)state.getValue(AXIS))
  54. {
  55. case X:
  56. return state.withProperty(AXIS, EnumFacing.Axis.Z);
  57. case Z:
  58. return state.withProperty(AXIS, EnumFacing.Axis.X);
  59. default:
  60. return state;
  61. }
  62.  
  63. default:
  64. return state;
  65. }
  66. }
  67. public static EnumFacing.Axis fromFacingAxis(EnumFacing.Axis axis)
  68. {
  69. switch (axis)
  70. {
  71. case X:
  72. return EnumFacing.Axis.X;
  73. case Y:
  74. return EnumFacing.Axis.Y;
  75. case Z:
  76. return EnumFacing.Axis.Z;
  77. default:
  78. return EnumFacing.Axis.X;
  79. }
  80. }
  81. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement