Вопрос по еде

Версия Minecraft
1.6.4
Прежде чем снова меня закидать тухлыми яйцами, я должен кое-что сказать.
Я разобрался с тем кодом.
"Звуки аплодисментов".
А теперь другой вопрос. Как создать итем еды, который "поедается" с помощью анимации питья пузырька воды?
В свой мод я добавил энергетик. Хотелось бы, чтобы персонаж не ел "бутылку" ,а пил из неё. Как это реализовать?
Если есть такая тема, то тыкните моим носом в неё.
Код:
package assets.testmod.src;

import net.minecraft.client.renderer.texture.IconRegister;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.ItemFood;
import net.minecraft.item.ItemStack;
import net.minecraft.potion.Potion;
import net.minecraft.potion.PotionEffect;
import net.minecraft.world.World;

public class Energetic extends ItemFood {

    public Energetic(int par1, int par2, float par3, boolean par4)
    {
        super(par1, par2, par4);
        maxStackSize = 4;
    }
    @Override
    public void registerIcons(IconRegister par1IconRegister)
    {
        this.itemIcon = par1IconRegister.registerIcon(ModInfo.MODID + ":Energy");
    }

  
    public ItemStack onEaten(ItemStack is, World world, EntityPlayer player) {
        if (!world.isRemote) {
        super.onEaten(is, world, player);
        int a = 0;
        int b = 10;
        int random_number = a + (int) (Math.random() * b);
        if(random_number < 9 )
        
        
        player.addPotionEffect(new PotionEffect(Potion.moveSpeed.id, 1250, 0));
        player.addPotionEffect(new PotionEffect(Potion.digSpeed.id, 600, 0));
        player.addPotionEffect(new PotionEffect(Potion.regeneration.id, 300, 0));
        }
        return is;
        } }
 
Решение
На счёт звука гипотетически можно так:

Java:
@Override
public ItemStack onItemUseFinish(ItemStack stack, World worldIn, EntityLivingBase entityLiving)
    {
        if (entityLiving instanceof EntityPlayer)
        {
            EntityPlayer entityplayer = (EntityPlayer)entityLiving;
            entityplayer.getFoodStats().addStats(this, stack);
            this.onFoodEaten(stack, worldIn, entityplayer);
            entityplayer.addStat(StatList.getObjectUseStats(this));

            if (entityplayer instanceof EntityPlayerMP)
            {
                CriteriaTriggers.CONSUME_ITEM.trigger((EntityPlayerMP)entityplayer, stack);
            }
        }

        stack.shrink(1);
        return stack;
    }
Вствь в свой класс вот этот код:
Это сработало. Спасибо. Такой тогда ещё вопрос : как сделать возможной поедание этого итема с полной полоской голода?
И ещё. Как сделать поедание итема без звука вовсе?
 
1,355
109
233
В конструктор: setAlwaysEdible(true);. Про звук не знаю. P.S. Это на
как сделать возможной поедание этого итема с полной полоской голода?
И да, трудно заглянуть в исходники? Еси да, то сожалею, чувак.
 
101
2
47
Поидее так:

Java:
setAlwaysEdible(true);

это нужно в сюда вставить

Java:
 public Energetic(int par1, int par2, float par3, boolean par4)
    {
        super(par1, par2, par4);
        maxStackSize = 4;
         setAlwaysEdible(true);
    }
 
Последнее редактирование:
1,355
109
233
За тебя всё делать?
Код:
package assets.testmod.src;

import net.minecraft.client.renderer.texture.IconRegister;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.ItemFood;
import net.minecraft.item.ItemStack;
import net.minecraft.potion.Potion;
import net.minecraft.potion.PotionEffect;
import net.minecraft.world.World;

public class Energetic extends ItemFood {

    public Energetic(int par1, float par2, boolean par4)
    {
        super(par1, par2, par4);
        setAlwaysEdible(true);
    }
    @Override
    public void registerIcons(IconRegister par1IconRegister)
    {
        this.itemIcon = par1IconRegister.registerIcon(ModInfo.MODID + ":Energy");
    }


    public ItemStack onEaten(ItemStack is, World world, EntityPlayer player) {
        if (!world.isRemote) {
        super.onEaten(is, world, player);
        int a = 0;
        int b = 10;
        int random_number = a + (int) (Math.random() * b);
        if(random_number < 9 )
       
       
        player.addPotionEffect(new PotionEffect(Potion.moveSpeed.id, 1250, 0));
        player.addPotionEffect(new PotionEffect(Potion.digSpeed.id, 600, 0));
        player.addPotionEffect(new PotionEffect(Potion.regeneration.id, 300, 0));
        }
        return is;
        } }
 
101
2
47
На счёт звука гипотетически можно так:

Java:
@Override
public ItemStack onItemUseFinish(ItemStack stack, World worldIn, EntityLivingBase entityLiving)
    {
        if (entityLiving instanceof EntityPlayer)
        {
            EntityPlayer entityplayer = (EntityPlayer)entityLiving;
            entityplayer.getFoodStats().addStats(this, stack);
            this.onFoodEaten(stack, worldIn, entityplayer);
            entityplayer.addStat(StatList.getObjectUseStats(this));

            if (entityplayer instanceof EntityPlayerMP)
            {
                CriteriaTriggers.CONSUME_ITEM.trigger((EntityPlayerMP)entityplayer, stack);
            }
        }

        stack.shrink(1);
        return stack;
    }
 
Сверху