// Path: src/api/java/com/github/atomicblom/shearmadness/api/Capability.java
// public final class Capability {
//     @CapabilityInject(IChiseledSheepCapability.class)
//     public static final net.minecraftforge.common.capabilities.Capability<IChiseledSheepCapability> CHISELED_SHEEP;
// 
//     static {
//         CHISELED_SHEEP = null;
//     }
// }
// 
// Path: src/api/java/com/github/atomicblom/shearmadness/api/ItemStackHelper.java
// @SuppressWarnings("UtilityClass")
// public final class ItemStackHelper
// {
//     private ItemStackHelper() {}
// 
//     public static boolean isStackForBlock(ItemStack itemStack, Block block)
//     {
//         if (itemStack == null) return false;
//         final Item item = itemStack.getItem();
//         if (item instanceof ItemBlock) {
//             if (Objects.equals(((ItemBlock) item).block, block)) {
//                 return true;
//             }
//         }
//         return false;
//     }
// 
//     public static boolean isStackForBlockSubclassOf(ItemStack itemStack, Class<? extends Block> blockClass)
//     {
//         if (itemStack == null) return false;
//         final Item item = itemStack.getItem();
//         if (item instanceof ItemBlock) {
//             if (blockClass.isAssignableFrom(((ItemBlock) item).block.getClass())) {
//                 return true;
//             }
//         }
//         return false;
//     }
// 
//     public static boolean isStackForBlock(ItemStack itemStack, Block block, int meta) {
//         return isStackForBlock(itemStack, block) && itemStack.getItemDamage() == meta;
//     }
// 
//     public static boolean isStackForBlock(ItemStack itemStack, Block... blocks) {
//         return isStackForBlock(itemStack, Iterators.forArray(blocks));
//     }
// 
//     private static boolean isStackForBlock(ItemStack itemStack, Iterator<Block> blocks) {
//         if (itemStack == null) return false;
//         final Item item = itemStack.getItem();
//         if (item instanceof ItemBlock) {
//             final Block block = ((ItemBlock) item).block;
//             while (blocks.hasNext()) {
//                 if (Objects.equals(blocks.next(), block)) {
//                     return true;
//                 }
//             }
//         }
//         return false;
//     }
// 
//     public static boolean isStackForBlock(ItemStack itemStack, Iterable<Block> blocks) {
//         return isStackForBlock(itemStack, blocks.iterator());
//     }
// }
// 
// Path: src/api/java/com/github/atomicblom/shearmadness/api/capability/IChiseledSheepCapability.java
// public interface IChiseledSheepCapability
// {
//     boolean isChiseled();
// 
//     void unChisel();
// 
//     void chisel(ItemStack itemStack);
// 
//     ItemStack getChiselItemStack();
// 
//     int getItemIdentifier();
// 
//     NBTTagCompound getExtraData();
// }


import com.github.atomicblom.shearmadness.api.Capability;
import com.github.atomicblom.shearmadness.api.ItemStackHelper;
import com.github.atomicblom.shearmadness.api.capability.IChiseledSheepCapability;
import net.minecraft.enchantment.Enchantment;
import net.minecraft.enchantment.EnchantmentData;
import net.minecraft.enchantment.EnchantmentHelper;
import net.minecraft.entity.Entity;
import net.minecraft.entity.EntityLiving;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.entity.player.InventoryPlayer;
import net.minecraft.init.Blocks;
import net.minecraft.init.Items;
import net.minecraft.inventory.ContainerEnchantment;
import net.minecraft.inventory.IInventory;
import net.minecraft.item.Item;
import net.minecraft.item.ItemBlock;
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.ForgeHooks;
import java.util.List;
import java.util.Random;
package com.github.atomicblom.shearmadness.variations.vanilla.container;



public class ContainerEnchantmentSheep extends ContainerEnchantment
{
    private final EntityLiving entity;
    private final Random rand;
    private final World world;

    public ContainerEnchantmentSheep(InventoryPlayer playerInventory, World worldIn, EntityLiving entity)
    {
        super(playerInventory, worldIn, entity.getPosition());
        this.entity = entity;
        rand = new Random();
        world = worldIn;
    }

    @Override
    public boolean canInteractWith(EntityPlayer playerIn) {
        if (!entity.hasCapability(Capability.CHISELED_SHEEP, null)) {
            return false;
        }
// Path: src/api/java/com/github/atomicblom/shearmadness/api/Capability.java
// public final class Capability {
//     @CapabilityInject(IChiseledSheepCapability.class)
//     public static final net.minecraftforge.common.capabilities.Capability<IChiseledSheepCapability> CHISELED_SHEEP;
// 
//     static {
//         CHISELED_SHEEP = null;
//     }
// }
// 
// Path: src/api/java/com/github/atomicblom/shearmadness/api/ItemStackHelper.java
// @SuppressWarnings("UtilityClass")
// public final class ItemStackHelper
// {
//     private ItemStackHelper() {}
// 
//     public static boolean isStackForBlock(ItemStack itemStack, Block block)
//     {
//         if (itemStack == null) return false;
//         final Item item = itemStack.getItem();
//         if (item instanceof ItemBlock) {
//             if (Objects.equals(((ItemBlock) item).block, block)) {
//                 return true;
//             }
//         }
//         return false;
//     }
// 
//     public static boolean isStackForBlockSubclassOf(ItemStack itemStack, Class<? extends Block> blockClass)
//     {
//         if (itemStack == null) return false;
//         final Item item = itemStack.getItem();
//         if (item instanceof ItemBlock) {
//             if (blockClass.isAssignableFrom(((ItemBlock) item).block.getClass())) {
//                 return true;
//             }
//         }
//         return false;
//     }
// 
//     public static boolean isStackForBlock(ItemStack itemStack, Block block, int meta) {
//         return isStackForBlock(itemStack, block) && itemStack.getItemDamage() == meta;
//     }
// 
//     public static boolean isStackForBlock(ItemStack itemStack, Block... blocks) {
//         return isStackForBlock(itemStack, Iterators.forArray(blocks));
//     }
// 
//     private static boolean isStackForBlock(ItemStack itemStack, Iterator<Block> blocks) {
//         if (itemStack == null) return false;
//         final Item item = itemStack.getItem();
//         if (item instanceof ItemBlock) {
//             final Block block = ((ItemBlock) item).block;
//             while (blocks.hasNext()) {
//                 if (Objects.equals(blocks.next(), block)) {
//                     return true;
//                 }
//             }
//         }
//         return false;
//     }
// 
//     public static boolean isStackForBlock(ItemStack itemStack, Iterable<Block> blocks) {
//         return isStackForBlock(itemStack, blocks.iterator());
//     }
// }
// 
// Path: src/api/java/com/github/atomicblom/shearmadness/api/capability/IChiseledSheepCapability.java
// public interface IChiseledSheepCapability
// {
//     boolean isChiseled();
// 
//     void unChisel();
// 
//     void chisel(ItemStack itemStack);
// 
//     ItemStack getChiselItemStack();
// 
//     int getItemIdentifier();
// 
//     NBTTagCompound getExtraData();
// }


// Path: src/integration/java/com/github/atomicblom/shearmadness/variations/vanilla/container/ContainerEnchantmentSheep.java
import com.github.atomicblom.shearmadness.api.Capability;
import com.github.atomicblom.shearmadness.api.ItemStackHelper;
import com.github.atomicblom.shearmadness.api.capability.IChiseledSheepCapability;
import net.minecraft.enchantment.Enchantment;
import net.minecraft.enchantment.EnchantmentData;
import net.minecraft.enchantment.EnchantmentHelper;
import net.minecraft.entity.Entity;
import net.minecraft.entity.EntityLiving;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.entity.player.InventoryPlayer;
import net.minecraft.init.Blocks;
import net.minecraft.init.Items;
import net.minecraft.inventory.ContainerEnchantment;
import net.minecraft.inventory.IInventory;
import net.minecraft.item.Item;
import net.minecraft.item.ItemBlock;
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.ForgeHooks;
import java.util.List;
import java.util.Random;

package com.github.atomicblom.shearmadness.variations.vanilla.container;



public class ContainerEnchantmentSheep extends ContainerEnchantment
{
    private final EntityLiving entity;
    private final Random rand;
    private final World world;

    public ContainerEnchantmentSheep(InventoryPlayer playerInventory, World worldIn, EntityLiving entity)
    {
        super(playerInventory, worldIn, entity.getPosition());
        this.entity = entity;
        rand = new Random();
        world = worldIn;
    }

    @Override
    public boolean canInteractWith(EntityPlayer playerIn) {
        if (!entity.hasCapability(Capability.CHISELED_SHEEP, null)) {
            return false;
        }
        final IChiseledSheepCapability capability = entity.getCapability(Capability.CHISELED_SHEEP, null);