// Path: src/integration/java/com/github/atomicblom/shearmadness/variations/vanilla/container/ContainerRepairSheep.java
// public class ContainerRepairSheep extends ContainerRepair
// {
//     private final EntityLiving entity;
// 
//     public ContainerRepairSheep(InventoryPlayer playerInventory, World worldIn, EntityPlayer player, EntityLiving entity)
//     {
//         super(playerInventory, worldIn, entity.getPosition(), player);
//         this.entity = entity;
//     }
// 
//     @Override
//     public boolean canInteractWith(EntityPlayer playerIn) {
//         if (!entity.hasCapability(Capability.CHISELED_SHEEP, null)) {
//             return false;
//         }
//         final IChiseledSheepCapability capability = entity.getCapability(Capability.CHISELED_SHEEP, null);
//         final Item item = capability.getChiselItemStack().getItem();
//         if (!(item instanceof ItemBlock) || !Objects.equals(((ItemBlock) item).block, Blocks.ANVIL)) {
//             return false;
//         }
// 
//         return playerIn.getDistanceSq(entity.getPosition()) <= 64.0D;
//     }
// }


import com.github.atomicblom.shearmadness.variations.vanilla.container.ContainerRepairSheep;
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.inventory.Container;
import net.minecraft.util.text.ITextComponent;
import net.minecraft.util.text.TextComponentTranslation;
import net.minecraft.world.IInteractionObject;
import net.minecraft.world.World;
package com.github.atomicblom.shearmadness.variations.vanilla.interactions;


public class AnvilInteraction implements IInteractionObject
{
    private final World world;
    private final EntityLiving entity;

    public AnvilInteraction(World world, EntityLiving entity)
    {
        this.world = world;
        this.entity = entity;
    }

    /**
     * Get the name of this object. For players this returns their username
     */
    @Override
    public String getName()
    {
        return "anvil";
    }

    /**
     * Returns true if this thing is named
     */
    @Override
    public boolean hasCustomName()
    {
        return false;
    }

    /**
     * Get the formatted ChatComponent that will be used for the sender's username in chat
     */
    @Override
    public ITextComponent getDisplayName()
    {
        return new TextComponentTranslation(Blocks.ANVIL.getUnlocalizedName() + ".name");
    }

    @Override
    public Container createContainer(InventoryPlayer playerInventory, EntityPlayer playerIn)
    {
// Path: src/integration/java/com/github/atomicblom/shearmadness/variations/vanilla/container/ContainerRepairSheep.java
// public class ContainerRepairSheep extends ContainerRepair
// {
//     private final EntityLiving entity;
// 
//     public ContainerRepairSheep(InventoryPlayer playerInventory, World worldIn, EntityPlayer player, EntityLiving entity)
//     {
//         super(playerInventory, worldIn, entity.getPosition(), player);
//         this.entity = entity;
//     }
// 
//     @Override
//     public boolean canInteractWith(EntityPlayer playerIn) {
//         if (!entity.hasCapability(Capability.CHISELED_SHEEP, null)) {
//             return false;
//         }
//         final IChiseledSheepCapability capability = entity.getCapability(Capability.CHISELED_SHEEP, null);
//         final Item item = capability.getChiselItemStack().getItem();
//         if (!(item instanceof ItemBlock) || !Objects.equals(((ItemBlock) item).block, Blocks.ANVIL)) {
//             return false;
//         }
// 
//         return playerIn.getDistanceSq(entity.getPosition()) <= 64.0D;
//     }
// }


// Path: src/integration/java/com/github/atomicblom/shearmadness/variations/vanilla/interactions/AnvilInteraction.java
import com.github.atomicblom.shearmadness.variations.vanilla.container.ContainerRepairSheep;
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.inventory.Container;
import net.minecraft.util.text.ITextComponent;
import net.minecraft.util.text.TextComponentTranslation;
import net.minecraft.world.IInteractionObject;
import net.minecraft.world.World;

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


public class AnvilInteraction implements IInteractionObject
{
    private final World world;
    private final EntityLiving entity;

    public AnvilInteraction(World world, EntityLiving entity)
    {
        this.world = world;
        this.entity = entity;
    }

    /**
     * Get the name of this object. For players this returns their username
     */
    @Override
    public String getName()
    {
        return "anvil";
    }

    /**
     * Returns true if this thing is named
     */
    @Override
    public boolean hasCustomName()
    {
        return false;
    }

    /**
     * Get the formatted ChatComponent that will be used for the sender's username in chat
     */
    @Override
    public ITextComponent getDisplayName()
    {
        return new TextComponentTranslation(Blocks.ANVIL.getUnlocalizedName() + ".name");
    }

    @Override
    public Container createContainer(InventoryPlayer playerInventory, EntityPlayer playerIn)
    {
        return new ContainerRepairSheep(playerInventory, world, playerIn, entity);