content: package thebetweenlands.common.block.structure;
  
  import java.util.Random;
  
  import net.minecraft.block.BlockContainer;
  import net.minecraft.block.BlockHorizontal;
  import net.minecraft.block.SoundType;
  import net.minecraft.block.material.Material;
  import net.minecraft.block.properties.PropertyDirection;
  import net.minecraft.block.state.BlockStateContainer;
  import net.minecraft.block.state.IBlockState;
  import net.minecraft.entity.EntityLivingBase;
  import net.minecraft.item.Item;
  import net.minecraft.tileentity.TileEntity;
  import net.minecraft.util.EnumBlockRenderType;
  import net.minecraft.util.EnumFacing;
  import net.minecraft.util.Mirror;
  import net.minecraft.util.Rotation;
  import net.minecraft.util.math.BlockPos;
  import net.minecraft.world.World;
  import thebetweenlands.client.tab.BLCreativeTabs;
  import thebetweenlands.common.registries.BlockRegistry;
  import thebetweenlands.common.tile.TileEntityPossessedBlock;
  
  public class BlockPossessedBlock extends BlockContainer {
      public static final PropertyDirection FACING = BlockHorizontal.FACING;
  
      public BlockPossessedBlock() {
          super(Material.ROCK);
          setDefaultState(blockState.getBaseState().withProperty(FACING, EnumFacing.NORTH));
          setSoundType(SoundType.STONE);
          setHardness(10F);
          setResistance(2000.0F);
          setCreativeTab(BLCreativeTabs.BLOCKS);
      }
  
      @Override
      public TileEntity createNewTileEntity(World world, int meta) {
          return new TileEntityPossessedBlock();
      }
  
      @Override
      protected BlockStateContainer createBlockState() {
          return new BlockStateContainer(this, FACING);
      }
  
      @Override
      public IBlockState getStateFromMeta(int meta) {
          return getDefaultState().withProperty(FACING, EnumFacing.byHorizontalIndex(meta));
      }
  
      @Override
      public int getMetaFromState(IBlockState state) {
          return state.getValue(FACING).getHorizontalIndex();
      }
  
      @Override
      public IBlockState withRotation(IBlockState state, Rotation rot) {
          return state.withProperty(FACING, rot.rotate(state.getValue(FACING)));
      }
  
      @Override
      public IBlockState withMirror(IBlockState state, Mirror mirrorIn) {
          return state.withRotation(mirrorIn.toRotation(state.getValue(FACING)));
      }
  
      @Override
      public IBlockState getStateForPlacement(World worldIn, BlockPos pos, EnumFacing facing, float hitX, float hitY, float hitZ, int meta, EntityLivingBase placer) {
          return getDefaultState().withProperty(FACING, placer.getHorizontalFacing().getOpposite());
      }
  
      @Override
      public Item getItemDropped(IBlockState state, Random rand, int fortune) {
          return Item.getItemFromBlock(BlockRegistry.BETWEENSTONE_BRICKS);
      }
  
      @Override
      public EnumBlockRenderType getRenderType(IBlockState state) {
          return EnumBlockRenderType.MODEL;
      }
  
      @Override
      public boolean isOpaqueCube(IBlockState state) {
          return false;
      }
  
  }