Résolu Problème de rendu d'entité custom
-
Bonjour tout le monde, je vous expose mon problème : Voila, j’ai essayé de faire une nouvelle TNT, mais j’ai des problèmes sur le rendu , lorsque j’active le block avec de la redstone ou avec un briquet, elle explose avec le bruit et détruit les blocs, mais il n’y a pas d’animations, que de l’air à la source de l’explosion : (Forge Dernier Build)
Code du block : http://pastebin.com/SW4b4jBf
Code de l’entité : http://pastebin.com/UwapiqdY
Rendu de l’entité : http://pastebin.com/w2qNetDj
Proxy : http://pastebin.com/AjH45KU6
Merci d’avance ! -
tes pastebin sont en privé… c’est pas facile de les voir ^^
Si j’ai bien compris quand tu l’allumes la TNT disparait mais explose bien au bout du temps donné?
De mémoir epour avoir déja essayé en modifiant le vanilla (no comment lol), il y a un endroit ou tu as du oublier d’assigner tel render à l’entité. vérifie, et modifie tes pastebin pour que l’on puisse les voir ^^ -
Okay je vérifie et je modifie les pastebin !
Edit : voila c’est fait ! -
Il me semble qu’il faut enregistrer l’entité dans ta classe principale avec EntityRegitry.regiterGlobalEntity.
-
Je vais essayer ça, quoique j’ai essayé tout à l’heure ça n’avait pas fonctionné
Edit : Je confirme, ça ne marche pas. Mais ce n’est pas un problème d’entity, puisqu’elle apparait et explose, sauf que quand elle apparait elle est invisible ! -
@‘AlphaSwittleTeam’:
Mais ce n’est pas un problème d’entity, puisqu’elle apparait et explose, sauf que quand elle apparait elle est invisible !
Si. Enregistrer une entité sert pour les paquets, pour rappel, il y a deux monde :
WorldClient (world.isRemote) qui s’occupe du rendu.
WorldServer (!world.isRemote) qui s’occupe de tout le reste.Il est logique que l’entité spawn sur le world server, puis le paquet envoie au client et le client fait le rendu. Et c’est la que ça coince, ton entité existe sur le world serveur (donc elle explose bien) mais pas sur le world client, donc elle ne se voit pas. C’est un problème de synchro, faut que je regarde ça plus en détail (d’ailleurs il y a le même problème avec les projectiles, j’avais prévu de faire un tutoriel sur les projectiles je vais essayer de faire ça au plus vite).
-
Merci de m’en informer, mais en attendant je fais quoi x) ?
-
Continuer à chercher de ton côté et donner la solution si tu trouve avant moi
-
Je n’ai malheursement pas la solution, je me rappelle que quand j’avais fais mon mod en vanilla au début, pour la TNT il avait fallu que j’enregistre dans les packets mon entité, c’est peut être une piste je n’en sais rien, plus exactement j’enregistrait dans le netLoginHandler je crois qui lui appellait le packet qu correspond. Désolé de ne pas pouvoir aidé plus.
Peut être devrais tu regarder le code d’IC2?
-
Je vais essayer merci de la piste !
@Robin4002 la course à la solution x) -
Trouvé :
Dans la fonction init de ta classe principale ajoute :EntityRegistry.registerModEntity(EntityPowderBarrel.class, "powderbarrel", 201, this.instance, 256, 1, true);
Dans la classe de ton entité :
public class EntityPowderBarrel extends Entity
devient :
public class EntityPowderBarrel extends Entity implements IEntityAdditionalSpawnData
Et ajoute (toujours dans la classe de l’entité) les deux fonctions :
@Override public void writeSpawnData(ByteArrayDataOutput data) { data.writeInt(this.fuse); } @Override public void readSpawnData(ByteArrayDataInput data) { this.fuse = data.readInt(); }
-
je suis curieux de savoir comme t’es venu l’idée de chercher ça?
-
Robin est un fan de débuggage
Et j’avais le même soucis pour un mod sur le quel je travail :3
-
Hum j’oublie pas que cette page existe, ça pouura me servir ^^
Edit: La touche entrée est trop pret du reste du clavier à cette heure ci je trouve, pas vous? -
Merci Robin Je t’aime Tu seras dans les crédits du mod !