Résolu Craft avec NBT data Tags
-
Bonjour,
voici mon problème, j’ai créé une certain nombre de blocs de décoration basé sur le bois, pour l’instant l’ensemble me prend déjà 11 ids et même si ces même id vont disparaître en 1.7, le nombre de class et le nombre d’emplacement de blocs occupé va doublé (oui j’ai calculé)Pour combler ce petit problème, j’aimerai passé par un tile entity qui enregistrerait un identifiant propre au block afin de lui attribuer les bonnes textures. Cette partie me semble assez facile à réaliser mais longue tout de même.
Pour pouvoir justement utilisé les tile entity il me faudrait la possibilité de pouvoir effectuer mon craft avec un pattern classique mais qui donnerai, l’id d’un seul block, et le nbt data tag.J’espère que quelqu’un pourra m’aider.
Je compléterai si nécessaire.
-
Je ne pense pas que ce soit possible… SAUF si chacun de tes blocs sont différents (pas le même id/nom - String ou int peu importe) et que tu les distingues.
Après, je peux me tromper ^^’
-
Oui chaque bloc actuellement à un nom différent, Il n’y en a pas deux identique que ce soit par le nom, les textures ou actuellement l’id et le metadata. mon objectif est de les réunir au seins d’un même id afin de pouvoir mieux le mettre à jour car doublé le nombre de classe et d’emplacement occupé c’est un peu embêtant.
Par exemple railcraft utilise un système similaire pour les escalier et les mur du mod
-
Tu peux faire une seule classe avec juste des variances selon le type du bloc
-
oui bien que les propriétés soit les mêmes pour toutes les blocs seules les textures change et pour certain l’orientation, c’ets tout. je veux fusionner mes 11 ids en 1 seule, ce que j’aimerai c’est la méthode pour les crafter car après une fois le tile entity établi je pense être capable de m’en sortir, afin de donner la bonne texture et le bon nom.
-
Normalement si tu as un tile entity, tu peux monter dans les metadatas, mais j’ai jamais testé.
Pour la recette avec tag, il suffit de faire :
ItemStack stack = new ItemStack(block, quantité, metadata);
stack.setTagCompound(new NBTTagCompound());
stack.stackTagCompound.setInteger(“nom”, 0);
GameRegistry.addRecipe(stack, ….Ensuite, n’oublie pas dans la méthode onBlockPlacedBy de récupérer ce tag, et de le remettre dans le drop dans la fonction getDrops.
-
Robin tu te rappelle que tu as dit u’un jour tu te pencherai sur les escaliers de railcraft pour voir comment il avait fait, c’est peut-être le moment?
Je testerait demain
-
Railcraft n’est pas open source, donc je peux pas. Et non ce n’est pas le moment, actuellement c’est le moment des tutoriels 1.7.
-
Est ce que ça peut m’aider : lien
J’ai essayer le code je monte au metadata 33
premier problème régler, reste le craftedit: le problème c’est que le tile entity me balance un très beau rapport d’erreur