package com.lothrazar.cyclicmagic.block;
import java.util.List;
import com.lothrazar.cyclicmagic.IHasRecipe;
import com.lothrazar.cyclicmagic.util.UtilChat;
import com.lothrazar.cyclicmagic.util.UtilEntity;
import net.minecraft.block.Block;
import net.minecraft.block.material.Material;
import net.minecraft.block.state.IBlockState;
import net.minecraft.entity.Entity;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.init.Blocks;
import net.minecraft.init.Items;
import net.minecraft.item.ItemStack;
import net.minecraft.util.math.AxisAlignedBB;
import net.minecraft.util.math.BlockPos;
import net.minecraft.world.World;
import net.minecraftforge.common.IShearable;
import net.minecraftforge.fml.common.registry.GameRegistry;
import net.minecraftforge.fml.relauncher.Side;
import net.minecraftforge.fml.relauncher.SideOnly;
import net.minecraftforge.oredict.OreDictionary;

public class BlockShears extends Block implements IHasRecipe {
  // https://github.com/PrinceOfAmber/SamsPowerups/blob/master/FarmingBlocks/src/main/java/com/lothrazar/samsfarmblocks/BlockShearWool.java
  public BlockShears() {
    super(Material.PISTON);
    this.setHardness(4.0F);
    this.setResistance(5.0F);
  }
  @Override
  public void addRecipe() {
    GameRegistry.addRecipe(new ItemStack(this),
        " s ",
        "sos",
        " s ",
        's', new ItemStack(Items.SHEARS, 1, OreDictionary.WILDCARD_VALUE),
        'o', Blocks.OBSIDIAN);
  }
  final static int FORTUNE = 10;// f yeah why not
  @Override
  public void onEntityCollidedWithBlock(World world, BlockPos pos, IBlockState state, Entity entity) {
    if (entity instanceof IShearable) {
      IShearable sheep = (IShearable) entity;
      ItemStack fake = new ItemStack(Items.SHEARS);
      if (sheep.isShearable(fake, world, pos)) {
        List<ItemStack> drops = sheep.onSheared(fake, world, pos, 5);//since iShearable doesnt do drops, but DOES do sound/make sheep naked
        for (ItemStack s : drops) {
          UtilEntity.dropItemStackInWorld(world, pos, s);
        }
      }
    }
  }
  @Override
  public AxisAlignedBB getCollisionBoundingBox(IBlockState blockState, World worldIn, BlockPos pos) {
    //if we dont make the box biger than 1x1x1, the 'Collided' event will Never fire
    //float f = 0.0625F; //same as cactus.
    float f = 0.1F;
    return new AxisAlignedBB((double) ((float) pos.getX() + f), (double) pos.getY(), (double) ((float) pos.getZ() + f), (double) ((float) (pos.getX() + 1) - f), (double) ((float) (pos.getY() + 1) - f), (double) ((float) (pos.getZ() + 1) - f));
  }
  @Override
  public boolean isOpaqueCube(IBlockState state) {
    return false; // http://greyminecraftcoder.blogspot.ca/2014/12/transparent-blocks-18.html
  }
  @SideOnly(Side.CLIENT)
  public void addInformation(ItemStack stack, EntityPlayer playerIn, List<String> tooltip, boolean advanced) {
    String s = UtilChat.lang("tile.block_shears.tooltip");
    tooltip.add(s);
  }
}

@@ -952,16 +952,189 @@
 ecipe %7B%0A
+  protected static final AxisAlignedBB CACTUS_AABB = new AxisAlignedBB(0.0625D, 0.0D, 0.0625D, 0.9375D, 0.9375D, 0.9375D);%0A  final static int FORTUNE = 10;// f yeah why not%0A
   // htt
@@ -1265,16 +1265,16 @@
 ol.java%0A
-
   public
@@ -1627,58 +1627,8 @@
   %7D%0A
-  final static int FORTUNE = 10;// f yeah why not%0A
   @O
@@ -2309,394 +2309,26 @@
     
-//if we dont make the box biger than 1x1x1, the 'Collided' event will Never fire%0A    //float f = 0.0625F; //same as cactus.%0A    float f = 0.1F;%0A    return new AxisAlignedBB((double) ((float) pos.getX() + f), (double) pos.getY(), (double) ((float) pos.getZ() + f), (double) ((float) (pos.getX() + 1) - f), (double) ((float) (pos.getY() + 1) - f), (double) ((float) (pos.getZ() + 1) - f))
+return CACTUS_AABB
 ;%0A  

allow standing flat onto shears block