package common.ai;

import common.entity.types.EntityLiving;
import common.util.BlockPos;
import common.world.World;

public class EntityAIHarvestFarmland extends EntityAIMoveToBlock
{
//    /** Villager that is harvesting */
//    private final EntityVillager theVillager;
//    private boolean hasFarmItem;
//    private boolean field_179503_e;
//    private int field_179501_f;
//
    public EntityAIHarvestFarmland(EntityLiving entity, double speedIn)
    {
        super(entity, speedIn, 16);
//        this.theVillager = theVillagerIn;
    }
//
//    /**
//     * Returns whether the EntityAIBase should begin execution.
//     */
//    public boolean shouldExecute()
//    {
//        if (this.runDelay <= 0)
//        {
//            if (!Config.mobGriefing || this.theVillager.isChild())
//            {
//                return false;
//            }
//
//            this.field_179501_f = -1;
//            this.hasFarmItem = this.theVillager.hasFarmItem();
//            this.field_179503_e = this.theVillager.needsMoreItems();
//        }
//
//        return super.shouldExecute();
//    }
//
//    /**
//     * Returns whether an in-progress EntityAIBase should continue executing
//     */
//    public boolean continueExecuting()
//    {
//        return this.field_179501_f >= 0 && super.continueExecuting();
//    }
//
//    /**
//     * Execute a one shot task or start executing a continuous task
//     */
//    public void startExecuting()
//    {
//        super.startExecuting();
//    }
//
//    /**
//     * Resets the task
//     */
//    public void resetTask()
//    {
//        super.resetTask();
//    }
//
//    /**
//     * Updates the task
//     */
//    public void updateTask()
//    {
//        super.updateTask();
//        this.theVillager.getLookHelper().setLookPosition((double)this.destinationBlock.getX() + 0.5D, (double)(this.destinationBlock.getY() + 1), (double)this.destinationBlock.getZ() + 0.5D, 10.0F, (float)this.theVillager.getVerticalFaceSpeed());
//
//        if (this.getIsAboveDestination())
//        {
//            World world = this.theVillager.worldObj;
//            BlockPos blockpos = this.destinationBlock.up();
//            IBlockState iblockstate = world.getBlockState(blockpos);
//            Block block = iblockstate.getBlock();
//
//            if (this.field_179501_f == 0 && block instanceof BlockCrops && ((Integer)iblockstate.getValue(BlockCrops.AGE)).intValue() == 7)
//            {
//                world.destroyBlock(blockpos, true);
//            }
//            else if (this.field_179501_f == 1 && block == Blocks.air)
//            {
//                InventoryBasic inventorybasic = this.theVillager.getFarmInventory();
//
//                for (int i = 0; i < inventorybasic.getSizeInventory(); ++i)
//                {
//                    ItemStack itemstack = inventorybasic.getStackInSlot(i);
//                    boolean flag = false;
//
//                    if (itemstack != null)
//                    {
//                        if (itemstack.getItem() == Items.wheat_seeds)
//                        {
//                            world.setBlockState(blockpos, Blocks.wheat.getDefaultState(), 3);
//                            flag = true;
//                        }
//                        else if (itemstack.getItem() == Items.potato)
//                        {
//                            world.setBlockState(blockpos, Blocks.potatoes.getDefaultState(), 3);
//                            flag = true;
//                        }
//                        else if (itemstack.getItem() == Items.carrot)
//                        {
//                            world.setBlockState(blockpos, Blocks.carrots.getDefaultState(), 3);
//                            flag = true;
//                        }
//                    }
//
//                    if (flag)
//                    {
//                        --itemstack.stackSize;
//
//                        if (itemstack.stackSize <= 0)
//                        {
//                            inventorybasic.setInventorySlotContents(i, (ItemStack)null);
//                        }
//
//                        break;
//                    }
//                }
//            }
//
//            this.field_179501_f = -1;
//            this.runDelay = 10;
//        }
//    }
//
//    /**
//     * Return true to set given position as destination
//     */
    protected boolean shouldMoveTo(World worldIn, BlockPos pos)
    {
//        Block block = worldIn.getBlockState(pos).getBlock();
//
//        if (block == Blocks.farmland)
//        {
//            pos = pos.up();
//            IBlockState iblockstate = worldIn.getBlockState(pos);
//            block = iblockstate.getBlock();
//
//            if (block instanceof BlockCrops && ((Integer)iblockstate.getValue(BlockCrops.AGE)).intValue() == 7 && this.field_179503_e && (this.field_179501_f == 0 || this.field_179501_f < 0))
//            {
//                this.field_179501_f = 0;
//                return true;
//            }
//
//            if (block == Blocks.air && this.hasFarmItem && (this.field_179501_f == 1 || this.field_179501_f < 0))
//            {
//                this.field_179501_f = 1;
//                return true;
//            }
//        }

        return false;
    }
}
