Advertisement
Guest User

Forge [1.12.2] - Rotating block

a guest
Oct 30th, 2018
288
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 3.11 KB | None | 0 0
  1. package sk.xpress.prisonthings.blocks;
  2.  
  3. import net.minecraft.block.BlockHorizontal;
  4. import net.minecraft.block.SoundType;
  5. import net.minecraft.block.material.Material;
  6. import net.minecraft.block.properties.IProperty;
  7. import net.minecraft.block.properties.PropertyDirection;
  8. import net.minecraft.block.state.BlockStateContainer;
  9. import net.minecraft.block.state.IBlockState;
  10. import net.minecraft.creativetab.CreativeTabs;
  11. import net.minecraft.entity.EntityLivingBase;
  12. import net.minecraft.item.ItemStack;
  13. import net.minecraft.util.EnumFacing;
  14. import net.minecraft.util.math.AxisAlignedBB;
  15. import net.minecraft.util.math.BlockPos;
  16. import net.minecraft.world.IBlockAccess;
  17. import net.minecraft.world.World;
  18. import sk.xpress.prisonthings.Main;
  19.  
  20. public class BlockChair extends BlockBase {
  21.    
  22.     public static PropertyDirection FACING = BlockHorizontal.FACING;
  23.    
  24.     public BlockChair(String name) {
  25.         super(name, Material.ANVIL, ToolClass.AXE, HarvestLevel.WOOD_GOLD, 3F, Main.creativeTab);
  26.           this.useNeighborBrightness = true;
  27.           this.fullBlock = false;
  28.           this.setSoundType(SoundType.WOOD);
  29.           this.setDefaultState(this.blockState.getBaseState().withProperty(FACING, EnumFacing.NORTH));
  30.     }
  31.  
  32.     public boolean isFullyOpaque(IBlockState state) {
  33.         return false;
  34.     }
  35.  
  36.     @Override
  37.     public boolean isFullBlock(IBlockState state) {
  38.         return false;
  39.     }
  40.  
  41.     @Override
  42.     public boolean isOpaqueCube(IBlockState state) {
  43.         return false;
  44.     }
  45.    
  46.     @Override
  47.     public AxisAlignedBB getBoundingBox(IBlockState state, IBlockAccess source, BlockPos pos) {
  48.         return new AxisAlignedBB(0.0,0,0.0, 1, 0.6, 1);
  49.     }
  50.    
  51.     @Override
  52.     protected BlockStateContainer createBlockState() {
  53.          return new BlockStateContainer(this, FACING);
  54.     }
  55.    
  56.     @Override
  57.     public IBlockState getStateFromMeta(int meta) {
  58.         return getDefaultState().withProperty(FACING, EnumFacing.getHorizontal(meta));
  59. }
  60.    
  61.     @Override
  62.     public int getMetaFromState(IBlockState state) {
  63.         return ((EnumFacing)state.getValue(FACING)).getHorizontalIndex();
  64.     }
  65.    
  66.     @Override
  67.     public void onBlockPlacedBy(World world, BlockPos pos, IBlockState state, EntityLivingBase entity, ItemStack stack) {
  68.         EnumFacing entityFacing = entity.getHorizontalFacing();
  69.  
  70.         System.out.println("FACING? " + entityFacing.toString());
  71.        
  72.         if(!world.isRemote) {
  73.             if(entityFacing == EnumFacing.NORTH) {
  74.                 entityFacing = EnumFacing.NORTH;
  75.             } else if(entityFacing == EnumFacing.EAST) {
  76.                 entityFacing = EnumFacing.EAST;
  77.             } else if(entityFacing == EnumFacing.SOUTH) {
  78.                 entityFacing = EnumFacing.SOUTH;
  79.             } else if(entityFacing == EnumFacing.WEST) {
  80.                 entityFacing = EnumFacing.WEST;
  81.             }
  82.  
  83.             System.out.println("XYZ: ENT FACING: " + entityFacing);
  84.             System.out.println("XYZ: STATE: " + state.withProperty(FACING, entityFacing));
  85.             world.setBlockState(pos, state.withProperty(FACING, entityFacing), 2);
  86.          
  87.         }
  88.     }
  89.  
  90.    
  91. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement