package net.minecraft.entity.ai; import net.minecraft.entity.item.EntityItem; import net.minecraft.entity.passive.EntityVillager; import net.minecraft.init.Items; import net.minecraft.inventory.InventoryBasic; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.util.MathHelper; public class EntityAIVillagerInteract extends EntityAIWatchClosest2 { private int field_179478_e; private EntityVillager field_179477_f; private static final String __OBFID = "CL_00002251"; public EntityAIVillagerInteract(EntityVillager p_i45886_1_) { super(p_i45886_1_, EntityVillager.class, 3.0F, 0.02F); this.field_179477_f = p_i45886_1_; } /** * Execute a one shot task or start executing a continuous task */ public void startExecuting() { super.startExecuting(); if (this.field_179477_f.func_175555_cq() && this.closestEntity instanceof EntityVillager && ((EntityVillager)this.closestEntity).func_175557_cr()) { this.field_179478_e = 10; } else { this.field_179478_e = 0; } } /** * Updates the task */ public void updateTask() { super.updateTask(); if (this.field_179478_e > 0) { --this.field_179478_e; if (this.field_179478_e == 0) { InventoryBasic var1 = this.field_179477_f.func_175551_co(); for (int var2 = 0; var2 < var1.getSizeInventory(); ++var2) { ItemStack var3 = var1.getStackInSlot(var2); ItemStack var4 = null; if (var3 != null) { Item var5 = var3.getItem(); int var6; if ((var5 == Items.bread || var5 == Items.potato || var5 == Items.carrot) && var3.stackSize > 3) { var6 = var3.stackSize / 2; var3.stackSize -= var6; var4 = new ItemStack(var5, var6, var3.getMetadata()); } else if (var5 == Items.wheat && var3.stackSize > 5) { var6 = var3.stackSize / 2 / 3 * 3; int var7 = var6 / 3; var3.stackSize -= var6; var4 = new ItemStack(Items.bread, var7, 0); } if (var3.stackSize <= 0) { var1.setInventorySlotContents(var2, (ItemStack)null); } } if (var4 != null) { double var11 = this.field_179477_f.posY - 0.30000001192092896D + (double)this.field_179477_f.getEyeHeight(); EntityItem var12 = new EntityItem(this.field_179477_f.worldObj, this.field_179477_f.posX, var11, this.field_179477_f.posZ, var4); float var8 = 0.3F; float var9 = this.field_179477_f.rotationYawHead; float var10 = this.field_179477_f.rotationPitch; var12.motionX = (double)(-MathHelper.sin(var9 / 180.0F * (float)Math.PI) * MathHelper.cos(var10 / 180.0F * (float)Math.PI) * var8); var12.motionZ = (double)(MathHelper.cos(var9 / 180.0F * (float)Math.PI) * MathHelper.cos(var10 / 180.0F * (float)Math.PI) * var8); var12.motionY = (double)(-MathHelper.sin(var10 / 180.0F * (float)Math.PI) * var8 + 0.1F); var12.setDefaultPickupDelay(); this.field_179477_f.worldObj.spawnEntityInWorld(var12); break; } } } } } }