BoneMeal custom ??
-
Ta fonction onItemRightClick est bien appelée? Place un System.out.println(“ce que tu veux”)
-
Après la condition
if (block instanceof IGrowable)Tu ajoutes une condition pour tes propres plantes.
Du genre
if(block == ClassPrincipale.tonBlock)
{
// action (changer le metadata du bloc si c’est une petite plante, appeler le code de génération d’un arbre si c’est une pousse, etc …)
} -
Même si tu ma beaucoup aidé, je n’y arrive toujours pas, j’ai fait ce code :
Mais cela ne change pas rien.
if (block instanceof IGrowable) { IGrowable igrowable = (IGrowable)block; if(block == Principal.herbe){ if(igrowable.func_149851_a(world, p_77648_4, p_77648_5, p_77648_6, world.isRemote)){ if(!world.isRemote){ if(igrowable.func_149852_a(world, world.rand, p_77648_4, p_77648_5, p_77648_6)){ igrowable.func_149853_b(world, world.rand, p_77648_4, p_77648_5, p_77648_6); } } return true; } } } -
Je me suis mal exprimé en disant après la condition avec IGrowable
Il aurait fallut faire comme ça :if (block instanceof IGrowable) { IGrowable igrowable = (IGrowable)block; if (igrowable.func_149851_a(world, p_77648_4, p_77648_5, p_77648_6, world.isRemote)) { if (!world.isRemote) { if (igrowable.func_149852_a(world, world.rand, p_77648_4, p_77648_5, p_77648_6)) { igrowable.func_149853_b(world, world.rand, p_77648_4, p_77648_5, p_77648_6); } –itemstack.stackSize; } return true; } } else if(block == Principal.herbe) { //action ici, par exemple world.setBlockMetadataWithNotify(x, y, z, world.getBlockMetadata(x,y,z) + 1, 2); return true; } -
mais du coup je doit faire un return false juste au dessus puisque je ne veux pas les herbes + roses etc ?
edit
je n’ai rien plus rien ce fait, mon herbe n’apparait pas, et celle de minecraft aussi.
-
J’ai en effet oublié un return true.
-
Non rien ne marche.
Si tu aurait un code source, ou quelques lignes complète je prend avec plaisir ^^.
( Je n’aime pas tourner autour du pot pendant 5h voir + )
-
Quand j’envoie du code tout fait c’est lorsque je regardes de mon côté, je ne fais ça seulement en dernier recours et surtout quand j’ai le temps. Or là je n’ai pas le temps pour faire des tests de mon côté, et j’estime que tu peux encore chercher un peu aussi de ton côté.
-
Je te propose 2 méthodes :
1 - Mettre ta plante implements IGrowable, ne rien changer dans la classe de ta bonemeal et ré-écrire ces fonctions :- func_149851_a (retourne true si la plante est mature)
- func_149852_a (retourne true si la plante peut grandir, dans ton cas il vaut mieux mettre toujours true)
- func_149853_b (fonction appelée pour modifier la plante, c’est ici qu’il faut modifier le metadata)
PS : utilise Alt + shift + S puis “override/implement methods” pour éviter les erreurs dans les paramètres des fonctions
PS 2 : je te conseille cette méthode car elle est compatible avec les autres mods
2 - Faire comme Robin a dit : - ne rien changer dans la classe de ta plante
- rajouter un else if(block == tonBlock) et changer le metadata de ton block à cet endroit
-
Par contre s’il utilise la méthode 1 la poudre d’os de Minecraft pourra aussi faire pousser ses plantes, je ne vois pas l’intérêt de faire un engrais custom dans ce cas.
-
Ma plante de mon coter ne pousse pas.
Et après avoir essayé plusieurs fois, aucun succès.
Donc je pense la faire à la méthode d’un ami ^^ ( worldedit : //replace et hop ) -
@‘iFuSion34’:
Ma plante de mon coter ne pousse pas.
Et après avoir essayé plusieurs fois, aucun succès.
Donc je pense la faire à la méthode d’un ami ^^ ( worldedit : //replace et hop )Envoi ton code.
-
Merci de vouloir m’aider mais je suis partit sur une autre idée du coup ^^
Si un jour ça me prend de vouloir faire ca je continuerai ce sujet. Je le mais en résolu.Merci de vos aides .