Scanner les blocks allentour
-
Possible, je suis en 1.8
-
Désoler de déranger de nouveau mais j’aimerai savoir , comment je dois m’y prendre pour que le bloc exécute l’action que je veut , en permanence dès que le chunk est charger
-
Il faut que tu dises à Minecraft de mettre à jour le block, regarde le block BlockCrops. En revanche, si tu veux juste effectuer une fonction dès qu’un block alentour change, il y a la fonction onNeighborBlockChange.
-
non en gros je veut que mon block scan les block alentour dès que le chunk est charger
-
Il faut utiliser la fonction updateTick alors. Par contre ça va être assez lourd.
-
esplique quand meme
-
La fonction updateTick est appelée 10 fois par seconde, la plupart du temps ce n’est pas nécessaire de l’utiliser : il y a des event pour çà. Que veux-tu faire avec ?
-
je souhaite faire un block qui face pousser les plante qu’il y a autour
-
Alors, regarde comment le block BlockCrops est fait et baisse la fréquence de mise à jour.
-
c’est fait me je comprend pas –’ je sais même pas comment mit prendre . Il y a plein de problème : -comment faire pour que le bloc soit actif
-faire poussez les autre plante dans un secteur de 8X8X8
-… -
this.setTickRandomly(true); dans le constructeur pour indiquer que le jeu doit ticker ton block.
Et ensuite ré-écris la fonction updateTick et rajoute ce que tu veux dedans, mais évite de l’appeler tous les ticks si possible. -
public void updateTick(World p_149674_1_, int p_149674_2_, int p_149674_3_, int p_149674_4_, Random p_149674_5_){ }es-que sa équivaut a sa ?
public void updateTick(World world, int x, int y, int z, Random rand){ }Avec world , x , y , z pour la position de mon bloc ?
-
Ve sont des noms de variables, tu peux mettre tout ce que tu veux. Mais c’est mieux de respecter la convention java.
-
On pourrait même mettre :
public void updateTick(World world, int robinEstUnAdminTresPuissant, int ScarexCodeTresBien, int albanninouAEncoreBesoinDaide, Random rand){
ça serait la même chose.
Bon en général on met plutôt des noms de variable qui vont avec la situation. -
la question est pas si je peut les renommer mais si elle correspond bien a sa (si c’est bien les coordonnés de mon block)
-
Oui c’est ça. En général quand tu as world et 3 int après c’est toujours world, x, y, z
-
et le rand c’est quoi ?
-
Une instance de Random.
-
Du coup j’ai fait sa :
public void updateTick(World world, int x, int y, int z, Random rand){ Block block; Material Materiaux; for(int a = x -4;a!=8;a++){ for(int b = y -4;b!=8;b++){ for(int c = z-4;c!=8;c++){ block = world.getBlock(a,b,c); Materiaux = block.getMaterial(); if(Materiaux == Material.plants){ // fonction pour faire poussez la plante } } } } }mais je ne trouve pas la méthode pour faire pousser la plante
-
Regarde ce que fait le bonne meal quand on fait un clic droit (ItemDye)