можно чуть-чуть кода?Сделай самый обычный метод и что бы когда её использовали через ПКМ она поднимала игроку голод.
//В класс предмета
@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);
странно, но почему-то не работаетМожно (Только это код для еды которую можно несколько раз употребить):
И еще в конструктор надо прописать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 )
Вообще-то нечего странного тут нет, это просто мой очередной говно код, советую тебе самому поискать на форуме информацию при помощи поиска, найти метод который отвечает за сытость и сделать так что бы твой предмет мог по правому клику выдавать эту самую сытость.странно
возможно ты не так меня понял.Можно (Только это код для еды которую можно несколько раз употребить):
И еще в конструктор надо прописать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 )
Я правильно тебя понял, только вот код тебе неправильный скинул(возможно ты не так меня понял.
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);
}
}
А просто к сытости прибавить по клику пкм?Попробуй переопределить метод getMaxItemUseDuration.
Это можно реализовать многими вариантами..к сытости прибавить по клику
работает. но почему-то не регенит.Создаёшь итем, к нему 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); } }