Un item mangeable
-
Merci

-
Salut,
Quand tu dis " Si vous voulez que votre item puisse se boire, rajoutez : (…) return EnumAction.eat; ", faut pas plutôt remplacer par return EnumAction.drink; ?
Et tu pourrais rajouter la méthode pour garder le récipient? Je crois que c’est celle-ci :
public ItemStack onEaten(ItemStack par1ItemStack, World par2World, EntityPlayer par3EntityPlayer) { super.onEaten(par1ItemStack, par2World, par3EntityPlayer); return new ItemStack(bowlEmpty) }(d’ailleurs j’ai un petit problème avec cette méthode, impossible de remplacer bowlEmpty par un objet que j’ai moi-même créer sans avoir une erreur)
-
@‘Minecraftienne’:
public ItemStack onEaten(ItemStack par1ItemStack, World par2World, EntityPlayer par3EntityPlayer) { super.onEaten(par1ItemStack, par2World, par3EntityPlayer); return new ItemStack(bowlEmpty) }(d’ailleurs j’ai un petit problème avec cette méthode, impossible de remplacer bowlEmpty par un objet que j’ai moi-même créer sans avoir une erreur)
Hm… ça te mets quoi exactement comme erreur ?
-
Si je fais : return new ItemStack(ChopeDeBiereVide);
=> ChopeDeBiereVide cannot be resolved to a variableMais je vois pas pourquoi le bol vide est une variable 0_o Faut que je rajoute une méthode dans la classe de mon objet pour que les objets puissent s’empiler non?
-
Tu as raison minecraftienne, j’ai changé par “drink”, et pour récupérer le bol, il faut ajouter ceci :
public ItemStack onEaten(ItemStack par1ItemStack, World par2World, EntityPlayer par3EntityPlayer) { super.onEaten(par1ItemStack, par2World, par3EntityPlayer); return new ItemStack(taClassPrincipale.taChopeDeBiereVide); }Et remplace :
taClassPrincipale par tu sais quoi ^^ (ta class principale) , et taChopeDeBiereVide par ton item qui sera donné après avoir bût (surement) ta bière
-
Merci ça fonctionne

-
Derien

-
@‘Minecraftienne’:
Mais je vois pas pourquoi le bol vide est une variable 0_o Faut que je rajoute une méthode dans la classe de mon objet pour que les objets puissent s’empiler non?
La classe de ton Item est extends ItemFood et ItemFood est extends Item, comme les items vanilles sont déclarés dans Item.java, bowlEmpty est valide, tout comme this.bowlEmpty l’est aussi.
Donc pour les items de ton mod il faut bien mettre la classe principale devant.Voila pour l’explication

Ha, en passant :
https://github.com/MCNanotech/ModTutoriel/commit/1515e305c61b6f8c26cf3b1b32d9c3bc0e9d3887
J’ai aussi modifier un peu le tutoriel, j’ai ajouté l’enregistrement de l’item (qui reste optionnel), la texture, le nom et j’ai enlevé les importations inutiles dans la classe de l’item -
Très bon tutoriel, ça marche à merveille
J’aimerais savoir comment faire pour pouvoir manger l’item sans que notre barre de faim sois descendu, comme pour les pommes d’or par exemple (j’ai chercher et j’ai pas trouver :/) merci de vos réponses ! 
-
public ItemStack onItemRightClick(ItemStack stack, World world, EntityPlayer player) { player.setItemInUse(stack, this.getMaxItemUseDuration(stack)); return stack; }Je crois que c’est ça.
-
Merci pour la réponse robin, ça marche nickel ! Un tuto sur les générations bientôt ?

-
@‘robin4002’:
public ItemStack onItemRightClick(ItemStack stack, World world, EntityPlayer player) { player.setItemInUse(stack, this.getMaxItemUseDuration(stack)); return stack; }Je crois que c’est ça.
Y’a un autre code laaaaaargement plus simple, si je le retrouve x)
-
Impossible pour moi de mettre le setpotion effect…
Suis-je le seul à avoir se problème ? -
Quel erreur eclipse te donne ?
-
@‘robin4002’:
Quel erreur eclipse te donne ?
Aucune erreur, mais quand je créé mon item ainsi : ```java
StrangeCupcake = new ItemStrangeCupcake(6047, 7, 1, false).setUnlocalizedName(“StrangeCupcake”).setTextureName(“landcast:strangecupcake”).setCreativeTab(CreativeTabs.tabFood).setPotionEffect(Potion.confusion.id, 30, 0, 1.0F);Il me souligne le .setpotioneffect en disant qu'il n'existe pas… -
Pourtant cette fonction existe bien dans ItemFood, vérifie que ItemStrangeCupcake est extends ItemFood
-
Le set potion effect est aussi buggé chez moi, j’utilise un autre code plus simple (onEaten ou un autre truc dans le genre)
-
@‘robin4002’:
Pourtant cette fonction existe bien dans ItemFood, vérifie que ItemStrangeCupcake est extends ItemFood
Vérifié, il est bien en extends ItemFood…
-
C’est un problème de syntaxe. La fonction se trouve dans ItemFood, donc il le détecte pas. Il faut faire comme ça :
TutorialEgg = (new ItemTutorialEgg(TutorialEggID, 5, 4.5F, false)).setPotionEffect(Potion.regeneration.id, 5, 1, 1.0F).setUnlocalizedName("TutorialEgg").setTextureName("modtutoriel:ChocolateEgg");Attention, la fonction setPotionEffect doit être avant les fonctions qui sont dans Item.java (donc de préférence juste après la parenthèse.
@‘utybo’:
@‘robin4002’:
public ItemStack onItemRightClick(ItemStack stack, World world, EntityPlayer player) { player.setItemInUse(stack, this.getMaxItemUseDuration(stack)); return stack; }Je crois que c’est ça.
Y’a un autre code laaaaaargement plus simple, si je le retrouve x)
En effet, .setAlwaysEdible() je viens de voir ça avec la pomme d’or :
TutorialEgg = (new ItemTutorialEgg(TutorialEggID, 5, 4.5F, false)).setAlwaysEdible().setPotionEffect(Potion.regeneration.id, 5, 1, 1.0F).setUnlocalizedName("TutorialEgg").setTextureName("modtutoriel:ChocolateEgg");Je corrige le tutoriel, sinon d’autres vont rester bloqué :/.
-
Merci beaucoup !