Créer un bloc avec des metadatas
-
Non, pas besoin. Le paramètre metadata sert uniquement à faire des conditions pour droper quelque chose de différent en fonction du metadata, mais si tu n’as pas de metadata il suffit juste de ne pas mettre de condition et c’est bon.
-
ok merci
PS: sa y est c’est bon j’ai réussi a faire drop mes minerai en les minant, merci beaucoup pour vos réponse
-
Bonsoir ! Voilà je viens juste poser une petite question

Voilà, je suis débutant et je voudrais comprendre quelque chose, je ne comprends pas comment utiliser les metadata après.
Par exemple pour la génération de minerais à un moment il faut entrer un metadata :
this.addOreSpawn(…
Ce que je n’arrive pas à comprendre c’est que une fois que j’ai suivis le tutoriel comment définir les metadata ? Comment savoir quel numéro appartient à quel metadata ?
J’espère que vous allez arriver à comprendre ce que je veux dire car c’est très flou … x)
Merci d’avance à tous !

-
regarde la tableau :
public static String[] subBlock = new String[] {"block1", "block2", "block3", "block4"};“block1” est le metadata 0, “block2” est le metadata 1, pour faire simple leur position dans le tableau définie leur metadata.
Si ça ne répond pas à ta question, donne nous plus de détails sur ce que tu veux faire, que l’on puisse t’aider
-
@‘Phenix246’:
regarde la tableau :
public static String[] subBlock = new String[] {"block1", "block2", "block3", "block4"};:
“block1” est le metadata 0, “block2” est le metadata 1, pour faire simple leur position dans le tableau définie leur metadata.
Si ça ne répond pas à ta question, donne nous plus de détails sur ce que tu veux faire, que l’on puisse t’aider
C’était exactement cela !
Du coup au passage j’en profite :p, si je veux que mon Block1 drop un item que j’ai créé (par exemple une épée) comment je dois faire ?
Et aussi, imaginons que je créer encore une nouvelle sorte de bloc, je vais donc recréer des metadata, du coup comment je vais devoir faire, car si dans le tableau de mon block je suis l’ordre -> Block1 = metadata 0, block2 = metadata 1 et que je m’arrête au bloc 4 donc block4 = metadata 3, dans ma nouvelle classe pour ma deuxième sorte de bloc je reprends dans l’ordre ou je m’étais arrêté dans l’autre ? Du coup : le bloc1 = metadata 4 ?Merci encore pour ta réponse !

-
Non, si tu fais un autre bloc, ça reprend à 0. Chaque bloc a ces metadata.
Pour les drop il faut passer par la fonction getItemDropped -
@‘robin4002’:
Non, si tu fais un autre bloc, ça reprend à 0. Chaque bloc a ces metadata.
Pour les drop il faut passer par la fonction getItemDroppedD’accord d’accord !
Dernière question et merci d’ailleurs pour toutes ses réponses !
Du coup lors de la génération de minerais, dans la méthode :
(new WorldGenMinable(ModTutoriel.TutorialMetadata.blockID, 5, 12, Block.stone.blockID)).generate(world, rand, x + rand.nextInt(16), 16 + rand.nextInt(32), z + rand.nextInt(16));Ici on a
ModTutoriel.TutorialMetadata.blockIDQuand j’aurais finis de créer ma classe avec mes metadata, le blockId sera le nom du bloc définis dans le tableau et le metadata celui de celui-ci ?
Merci encore
-
vieux système en 1.7 les “.blockID” ont totalement disparu :
(new WorldGenMinable(ModTutoriel.TutorialMetadata, 5, 12, Blocks.stone)).generate(world, rand, x + rand.nextInt(16), 16 + rand.nextInt(32), z + rand.nextInt(16)); -
@‘Phenix246’:
vieux système en 1.7 les “.blockID” ont totalement disparu :
(new WorldGenMinable(ModTutoriel.TutorialMetadata, 5, 12, Blocks.stone)).generate(world, rand, x + rand.nextInt(16), 16 + rand.nextInt(32), z + rand.nextInt(16));Merci beaucoup !
Enfin grâce à vous j’ai réussi !Dernière dernière question après je n’embête plus !
Pour le drop Robin ma dit d’utiliser getItemDropped, j’ai essayé plusieurs chose mais je ne trouve pas comment dropper un block, par exemple if metata = 1 on return Monmod.Item1
-
public Item getItemDropped(int metadata, Random rand, int fortune) { return metadata == 1 ? Monmod.Item1 : Item.getItemFromBlock(this); } public int damageDropped(int metadata) { return metadata == 1 ? "damage" : 1; } public int quantityDropped(int metadata, int fortune, Random par3Random) { return "nombre d'items" }Je te donne en plus deux autre méthode dont tu peux avoir besoin (la damage de l’item que tu drop et la quantité dropé)
-
@‘Phenix246’:
public Item getItemDropped(int metadata, Random rand, int fortune) { return metadata == 1 ? Monmod.Item1 : Item.getItemFromBlock(this); } public int damageDropped(int metadata) { return metadata == 1 ? "damage" : 1; } public int quantityDropped(int metadata, int fortune, Random par3Random) { return "nombre d'items" }Je te donne en plus deux autre méthode dont tu peux avoir besoin (la damage de l’item que tu drop et la quantité dropé)
Merci encore pour toute ton aide !

-
Bonjour c’est possible d’utiliser les metadatas pour des blocks techne ?
-
oui bien sûr, mais comme tu utilise obligatoirement un tileEntity, ça ne sert pas à grand chose, après tout dépend de ce que tu veux faire, en tout cas oui tu peux les utiliser
-
Je voudrait que le bloc soit différent suivant ce qu’il y a autour
si a x+1, y, z il y a un block pipe alors metadata 1 par exemple -
oui tu peut très bien le faire
-
Bah je vais tenter parce que minecraft ne veut pas accepter ma condition

-
Bonjour,
Je voulais savoir si, pour récupérer le metadata du bloc et l’utiliser dans son TileEntity il fallait utiliser la méthode getMetadata() de ItemBlock <nom>?</nom> -
tu peux récupérer le damage de l’item (quelquechose comme getItemDamage()) ou le metadata du bloc (getBlockMetadata(x,y,z)) et ensuite l’utiliser dans ton TileEntity comme tu le souhaite
-
Non, absolument pas. Si tu veux le metadata du bloc utilise ce que phenix t’a donné. Et si tu es dans le tile entity il y a encore plus simple, utilise la variable metadata de la classe TileEntity
-
Merci, pour le getMetadata(x, y, z), ça marche, mais dans un contexte statique (comme pour la durée de vie d’un carburant), ça pose problème (et je vois pas comment utiliser les damages) : et c’est là qu’il me faudrait la fonction de la mort….