Еда за 1 клик.

Версия Minecraft
1.7.10
459
13
35
Доброго времени суток.
Подскажите, как сделать так, что бы любая еда использовалась написанная мной за 1 клик?
 
2,932
44
598
Можно (Только это код для еды которую можно несколько раз употребить):
Java:
//В класс предмета
@Override
public ItemStack onEaten(ItemStack stack, World world, EntityPlayer player) {
        if (stack.getItemDamage() == 2) --stack.stackSize;
        stack.setItemDamage(stack.getItemDamage() + 1);
        player.getFoodStats().func_151686_a(this, stack);
        world.playSoundAtEntity(player, "random.burp", 0.5F, world.rand.nextFloat() * 0.1F + 0.9F);
        this.onFoodEaten(stack, world, player);
        return stack;
}
И еще в конструктор надо прописать setMaxDamage(1);

(Первое что под руку попалось, если не ошибаюсь это код от @MinecraftForge ;) )
 
459
13
35
Можно (Только это код для еды которую можно несколько раз употребить):
Java:
//В класс предмета
@Override
public ItemStack onEaten(ItemStack stack, World world, EntityPlayer player) {
        if (stack.getItemDamage() == 2) --stack.stackSize;
        stack.setItemDamage(stack.getItemDamage() + 1);
        player.getFoodStats().func_151686_a(this, stack);
        world.playSoundAtEntity(player, "random.burp", 0.5F, world.rand.nextFloat() * 0.1F + 0.9F);
        this.onFoodEaten(stack, world, player);
        return stack;
}
И еще в конструктор надо прописать setMaxDamage(1);

(Первое что под руку попалось, если не ошибаюсь это код от @MinecraftForge ;) )
странно, но почему-то не работает
 
2,932
44
598
Вообще-то нечего странного тут нет, это просто мой очередной говно код, советую тебе самому поискать на форуме информацию при помощи поиска, найти метод который отвечает за сытость и сделать так что бы твой предмет мог по правому клику выдавать эту самую сытость.

Или же если ты такой лентяй и сам нечего не хочешь искать, то жди утра когда придут эксперты которые тебе пальцем всю укажут и покажут ;)
 
459
13
35
Можно (Только это код для еды которую можно несколько раз употребить):
Java:
//В класс предмета
@Override
public ItemStack onEaten(ItemStack stack, World world, EntityPlayer player) {
        if (stack.getItemDamage() == 2) --stack.stackSize;
        stack.setItemDamage(stack.getItemDamage() + 1);
        player.getFoodStats().func_151686_a(this, stack);
        world.playSoundAtEntity(player, "random.burp", 0.5F, world.rand.nextFloat() * 0.1F + 0.9F);
        this.onFoodEaten(stack, world, player);
        return stack;
}
И еще в конструктор надо прописать setMaxDamage(1);

(Первое что под руку попалось, если не ошибаюсь это код от @MinecraftForge ;) )
возможно ты не так меня понял.
я имел ввиду, что бы еда использовалась без анимации, то бишь сразу.
1 пкм = использование еды и получение голода.
 
3,005
192
592
Попробуй переопределить метод getMaxItemUseDuration.
(Указав в возврате единицу)
~~~
И ты уверен, что все методы прописал ? (Или унаследовал от ItemFood)
 
1,355
109
232
Создаёшь итем, к нему onItemRightClick там восстанавливаешь игроку голод и убираешь предмет. Может быть и костыли, но лучше я не придумал.
UPD. Наляпол кое-что, может поможет тебе.

Java:
import net.minecraft.creativetab.CreativeTabs;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.potion.Potion;
import net.minecraft.potion.PotionEffect;
import net.minecraft.world.World;

public class Helping extends Item {
    protected Helping() {
        super();
        setUnlocalizedName("Helping");
        setCreativeTab(CreativeTabs.tabMisc);   
    }
    public ItemStack onItemRightClick(ItemStack is, World world, EntityPlayer player) {
        player.addPotionEffect(new PotionEffect(Potion.regeneration.id, 10, 1));
        --is.stackSize;
        return super.onItemRightClick(is, world, player);
        
    }
    
}
 
Последнее редактирование:

Eifel

Модератор
1,623
78
608
@Developer , полное цитирование предыдущего сообщения запрещено. А обходить этот запрет, флудя при этом точками, тем более. Последующая непокорность может привести к худшим последствиям. Настоятельно рекомендую ознакомиться с правилами.
 
3,005
192
592
459
13
35
Создаёшь итем, к нему onItemRightClick там восстанавливаешь игроку голод и убираешь предмет. Может быть и костыли, но лучше я не придумал.
UPD. Наляпол кое-что, может поможет тебе.

Java:
import net.minecraft.creativetab.CreativeTabs;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.potion.Potion;
import net.minecraft.potion.PotionEffect;
import net.minecraft.world.World;

public class Helping extends Item {
    protected Helping() {
        super();
        setUnlocalizedName("Helping");
        setCreativeTab(CreativeTabs.tabMisc);  
    }
    public ItemStack onItemRightClick(ItemStack is, World world, EntityPlayer player) {
        player.addPotionEffect(new PotionEffect(Potion.regeneration.id, 10, 1));
        --is.stackSize;
        return super.onItemRightClick(is, world, player);
       
    }
   
}
работает. но почему-то не регенит.
 
Сверху