Texture de trappe orientable
-
public int onBlockPlaced(World world, int x, int y, int z, int side, float hitX, float hitY, float hitZ, int metadata) {}
-
merci plaigon, donc j’avais trouvé la bonne fonction, les noms ont été remplacés pour mieux voir, mais je vois pas ou mettre
“world.getBlockMetadata(x, y, z);” …
-
Il ne faut pas utiliser onBlockAdded car ta superclasse (le extends) BlockTrapDoor le gère déjà, donc il faut que tu get la méta data dans getIcon pour savoir l’orientation qu’à enregistré BlockTrapDoor dans sa fonction onBlockAdded.
-
c’est honteux je sais, j’ai essayé quelque chose comme ça, sans succès :
if (world.getBlockMetadata(x, y, z) == 2) { world.getBlock(x - 1, y, z).getIcon(world, x - 1, y, z, side); } if (world.getBlockMetadata(x, y, z) == 3) { world.getBlock(x + 1, y, z).getIcon(world, x + 1, y, z, side); } if (world.getBlockMetadata(x, y, z) == 4) { world.getBlock(x + 1, y, z).getIcon(world, x, y, z - 1, side); } if (world.getBlockMetadata(x, y, z) == 5) { world.getBlock(x + 1, y, z).getIcon(world, x, y, z + 1, side); } -
Il faut juste que tu place ce code dans la fonction getIcon et que tu mettes des return devant les world.getBlock(….).getIcon(…); et ça sera bon.
-
voila ma class :
public IIcon getIcon(IBlockAccess world,int x, int y, int z, int side) { if (world.getBlockMetadata(x, y, z) == 2) { return world.getBlock(x - 1, y, z).getIcon(world, x - 1, y, z, side); } if (world.getBlockMetadata(x, y, z) == 3) { return world.getBlock(x + 1, y, z).getIcon(world, x + 1, y, z, side); } if (world.getBlockMetadata(x, y, z) == 4) { return world.getBlock(x + 1, y, z).getIcon(world, x , y, z - 1, side); } if (world.getBlockMetadata(x, y, z) == 5) { return world.getBlock(x + 1, y, z).getIcon(world, x + 1, y, z, side); } return world.getBlock(x + 1, y, z).getIcon(world, x , y, z - 1, side);je suis obligé d’avoir le dernier return sinon ça me met une erreur …
et du coup ça prend en compte que le dernier

-
Est-ce que tu as vérifié as quelle face correspond chaque méta data dans la classe BlockTrapDoor ?
Envoyé de mon RAINBOW LITE 4G en utilisant Tapatalk
-
le “==2” ? et tout ça ?
j’ai réussi, j’avais pas réfléchi car en gros j"ai changé les == 1 …. pour trouver lequel correspondait à quelle positionnement ^^
par contre je viens de voir qu’une fois la trappe levé, bah je perd la texture
-
Vérifie bien la méta data dans la classe BlockTrapDoor car il y a deux méta data à mettre dans chaque condition: une pour quand le trappe est ouverte et une autre quand elle est fermé. ( exemple if (world.getBlockMetadata(x, y, z) == 2 || world.getBlockMetadata(x, y, z) ==
)
En plus, je pence que tu t’est trompé pour tes 3 derniers return car il n’y à pas les mêmes argument en x, y et z pour le getBlock er le getIcon. -
oui je faisais des tests, ça c’est ce que j’ai de fonctionnel (je vais ajouter les deuxiemes metadata :
public IIcon getIcon(IBlockAccess world,int x, int y, int z, int side) { if ((world.getBlockMetadata(x, y, z) == 3) || (world.getBlockMetadata(x, y, z) == 7)) { return world.getBlock(x - 1, y, z).getIcon(world, x - 1, y, z, side); } if ((world.getBlockMetadata(x, y, z) == 0) || (world.getBlockMetadata(x, y, z) == 4)) { return world.getBlock(x, y, z + 1).getIcon(world, x , y, z + 1, side); } if ((world.getBlockMetadata(x, y, z) == 1) || (world.getBlockMetadata(x, y, z) == 5)) { return world.getBlock(x, y, z - 1).getIcon(world, x, y, z - 1, side); } return world.getBlock(x + 1, y, z).getIcon(world, x , y, z - 1, side); }voila c’est fini, tout marche parfaitement, merci beaucoup pour votre aide

-
Balise résolue à ne pas oublier
