Aujourd’hui, j’ai décidé de m’attaquer à cette entité (et les blocks qui fonctionnent avec) pour améliorer ce code que j’ai fait il y as presque un an.
Premièrement, j’ai changé la manière dont l’entité spawn car j’avais pris ça sur le code des blocks de sable/gravier, et je trouve ce code très moche (1: regarder si les conditions requises pour spawn l’entité sont validées, 2: spawn l’entité, 3: lors du premier tick de l’entité : regarder si les conditions sont encore valides et supprimer le block qui étais à la place de l’entité en fessant un simple check de block et no de BlockState (-> bug de changement de state sable normal/rouge…)).
Après beaucoup d’ajustements, il se trouve que ce que j’ai fait marche beaucoup mieux qu’avant : plus de block invisible pendant un tick ni de block rendu en double. Mais le fameux “bug” que j’ai présente dans se sujet est toujours présent.
Ensuite, je me suis attaqué à se bug ! Comme javais l’impression que cela ne venais pas de mon code (position qui change toute seul entre deux ticks ), je me demandais si cela ne pouvais pas venir de la fonction de registrer de l’entité, car je ne savais pas exactement à quoi correspondais les 3 arguments (trackingRange, updateFrequency et sendsVelocityUpdates). J’ai donc cherché quels étais les valeurs utilisées pour les entités de FallingBlock. J’ai copié les valeurs et la WOW !! Le bug a disparu ! Après quelques tests, j’ai compris que le paramètre trackingRange devais être mis à 20 pour ne pas avoir de problème (il était à 10 avant ce qui signifie 1 update tous les deux ticks, donc je ne vois pas trop pourquoi ça ne fonctionnais pas).
Donc je peux enfin passer ce sujet en résolu !