Résolu Changer la résistance d'UNE dalle
-
Bonjour ! Comme vous le savez pour faire des slabs on à besoin de metadata et de deux autres classe (ex: BlockSlabs & ItemSlabs).
Je voudrais savoir si c’est possible que UNE seule dalle est la résistance à la TNT (dalle d’obsidienne) mais si en même temps je peut mettre d’autres dalles dans ces deux classes pour économiser de l’espace.
Voilà, tel est ma question !
-
Il me semble qu’il y a une méthode pour avoir la résistance à la tnt qui fournit en paramètre une entité donc grâce à cette méthode tu peux regarder le metadata du block. Minecraft aime utiliser les calculs binaires pour économiser de l’espaces mais çà rend très souvent le code incompréhensible.
-
Tu aurais une idée de cette méthode ou dans quoi la trouvais, j’ai regardé dans l’obsi et la tnt mais rien.
-
getExplosionResistance, fait Alt + shift + R puis “override/implement methods” et choisit la fonction getExplosionResistance
-
D’accord ! Je regarde sur le net un peu.
EDIT : J’ai trouvé ça et sa fonctionne mais je voudrais savoir si c’est bon
public float getExplosionResistance(Entity par1Entity, World world, int x, int y, int z, double explosionX, double explosionY, double explosionZ) { int mag1 = world.getBlockMetadata(x, y, z); switch (mag1) { case 0: mag1 = 0; return 50.0F; default: mag1 = 0; return 50.0F; } }
-
Ce code ne fait pas grand chose :
public float getExplosionResistance(Entity par1Entity, World world, int x, int y, int z, double explosionX, double explosionY, double explosionZ) { int mag1 = world.getBlockMetadata(x, y, z); // Tu récupères le metadata switch (mag1) // Tu regardes lequel c'est { case 0: // Si c'est le premier mag1 = 0; // Tu met le metadata à 0, ce qui ne sert à rien return 50.0F; // Puis tu retournes 50.0F default: // Sinon mag1 = 0; // Tu mets le metadata à 0, encore inutile return 50.0F; // Et tu retournes encore 50.0F donc çà renverra toujours la même valeur } }