Java 类net.minecraft.entity.ai.EntityAIAttackRangedBow 实例源码

项目:uniquecrops    文件:ItemGeneric.java   
@Override
   public void onUpdate(ItemStack stack, World world, Entity entity, int itemSlot, boolean isSelected) {

    if (stack.getItemDamage() != 20)
        return;

    if (!(entity instanceof EntityPlayer) || (entity instanceof FakePlayer))
        return;

    if (itemSlot < ((EntityPlayer)entity).inventory.getHotbarSize()) {
        List<EntityLiving> entities = entity.worldObj.getEntitiesWithinAABB(EntityLiving.class, new AxisAlignedBB(entity.getPosition().add(-range, -range, -range), entity.getPosition().add(range, range, range)));

        for (EntityLiving ent : entities) {
            List<EntityAITaskEntry> entries = new ArrayList(ent.tasks.taskEntries);
            entries.addAll(new ArrayList(ent.targetTasks.taskEntries));

            for (EntityAITaskEntry entry : entries) {
                if (entry.action instanceof EntityAIAttackRangedBow) {
                    makeSkellyShootSlower((EntityAIAttackRangedBow)entry.action);
                }
            }
            if (ent instanceof EntityCreeper)
                ReflectionHelper.setPrivateValue(EntityCreeper.class, (EntityCreeper)ent, 60, this.FUSETIME);
        }
    }
}
项目:UHC-Reloaded    文件:EasierSkeleton.java   
@SubscribeEvent
public void onSkeletonUpdate(LivingEvent.LivingUpdateEvent event) {
    if (!(event.getEntityLiving() instanceof EntitySkeleton)) {
        return;
    }
    EntitySkeleton skeleton = (EntitySkeleton) event.getEntityLiving();
    EntityAITasks tasks = skeleton.tasks;
    boolean containsOld = false;
    Iterator<EntityAITasks.EntityAITaskEntry> itr = tasks.taskEntries.iterator();
    while (itr.hasNext()) {
        EntityAITasks.EntityAITaskEntry entry = itr.next();
        if (entry.action instanceof EntityAIAttackRangedBow) {
            itr.remove();
        }
        if (entry.action instanceof EntityAIAttackRanged) {
            containsOld = true;
        }
    }
    if (!containsOld) {
        tasks.addTask(4, new EntityAIAttackRanged(skeleton, 1.0D, 20, 15.0F));
    }
}
项目:uniquecrops    文件:ItemGeneric.java   
private void makeSkellyShootSlower(EntityAIAttackRangedBow aiEntry) {

    int timeShoot = ReflectionHelper.getPrivateValue(EntityAIAttackRangedBow.class, aiEntry, this.FIELD_G);

    if (timeShoot == 40) 
        ReflectionHelper.setPrivateValue(EntityAIAttackRangedBow.class, aiEntry, 100, this.FIELD_G);
}